Skip to content

Commit 4cfd030

Browse files
committed
fix(swift): guide gen
1 parent 6cf9d12 commit 4cfd030

File tree

3 files changed

+35
-15
lines changed

3 files changed

+35
-15
lines changed

generators/src/main/java/com/algolia/codegen/cts/guides/GuidesGenerator.java

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,14 @@ public void addSupportingFiles(List<SupportingFile> supportingFiles, String outp
3939

4040
File templates = new File("templates/" + language + "/guides/" + client);
4141
for (File f : templates.listFiles()) {
42+
String fileName = f.getName().replace(".mustache", "");
43+
44+
if (language.equals("swift")) {
45+
fileName = Helpers.capitalize(fileName) + "/main";
46+
}
47+
4248
supportingFiles.add(
43-
new SupportingFile(
44-
"guides/" + client + "/" + f.getName(),
45-
"guides/" + language + outputFolder + f.getName().replace(".mustache", "") + extension
46-
)
49+
new SupportingFile("guides/" + client + "/" + f.getName(), "guides/" + language + outputFolder + fileName + extension)
4750
);
4851
}
4952
}
@@ -53,6 +56,14 @@ public void run(Map<String, CodegenModel> models, Map<String, CodegenOperation>
5356
if (this.client.equals("search")) {
5457
bundle.put("isSearchClient", true);
5558
}
59+
60+
if (language.equals("swift")) {
61+
File templates = new File("templates/" + language + "/guides/" + client);
62+
bundle.put(
63+
"guides",
64+
Arrays.stream(templates.listFiles()).map(File::getName).map(name -> Helpers.capitalize(name.replace(".mustache", ""))).toArray()
65+
);
66+
}
5667
// nothing to do here, the mustache uses dynamicSnippets lambda
5768
}
5869
}

templates/swift/guides/Package.mustache

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,13 @@
33

44
import PackageDescription
55

6+
let dependencies: [Target.Dependency] = [{{#packageList}}
7+
.product(
8+
name: "{{{.}}}",
9+
package: "algoliasearch-client-swift"
10+
),{{/packageList}}
11+
]
12+
613
let package = Package(
714
name: "AlgoliaSearchClientGuides",
815
platforms: [
@@ -15,14 +22,12 @@ let package = Package(
1522
.package(path: "../../clients/algoliasearch-client-swift")
1623
],
1724
targets: [
18-
.executableTarget(
19-
name: "AlgoliaSearchClientGuides",
20-
dependencies: [{{#packageList}}
21-
.product(
22-
name: "{{{.}}}",
23-
package: "algoliasearch-client-swift"
24-
),{{/packageList}}
25-
]
26-
)
25+
{{#guides}}
26+
.executableTarget(
27+
name: "{{{.}}}",
28+
dependencies: dependencies,
29+
path: "Sources/{{{.}}}"
30+
),
31+
{{/guides}}
2732
]
2833
)

templates/swift/guides/search/saveObjectsMovies.mustache

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import Foundation
66
import Core
77
{{> snippets/import}}
88

9-
func saveObjectsMovies() async throws {
9+
Task {
1010
let url = URL(string: "https://dashboard.algolia.com/sample_datasets/movie.json")!
1111
var data: Data? = nil
1212
#if os(Linux) // For linux interop
@@ -22,7 +22,11 @@ func saveObjectsMovies() async throws {
2222
do {
2323
// Save records in Algolia index
2424
{{#dynamicSnippet}}saveObjectsMovies{{/dynamicSnippet}}
25+
exit(EXIT_SUCCESS)
2526
} catch {
2627
print(error.localizedDescription)
28+
exit(EXIT_FAILURE)
2729
}
28-
}
30+
}
31+
32+
RunLoop.current.run()

0 commit comments

Comments
 (0)