diff --git a/generators/src/main/java/com/algolia/codegen/cts/guides/GuidesGenerator.java b/generators/src/main/java/com/algolia/codegen/cts/guides/GuidesGenerator.java index dfba20f69a5..54495455548 100644 --- a/generators/src/main/java/com/algolia/codegen/cts/guides/GuidesGenerator.java +++ b/generators/src/main/java/com/algolia/codegen/cts/guides/GuidesGenerator.java @@ -39,11 +39,14 @@ public void addSupportingFiles(List supportingFiles, String outp File templates = new File("templates/" + language + "/guides/" + client); for (File f : templates.listFiles()) { + String fileName = f.getName().replace(".mustache", ""); + + if (language.equals("swift")) { + fileName = Helpers.capitalize(fileName) + "/main"; + } + supportingFiles.add( - new SupportingFile( - "guides/" + client + "/" + f.getName(), - "guides/" + language + outputFolder + f.getName().replace(".mustache", "") + extension - ) + new SupportingFile("guides/" + client + "/" + f.getName(), "guides/" + language + outputFolder + fileName + extension) ); } } @@ -54,6 +57,14 @@ public void run(Map models, Map bundle.put("isSearchClient", true); } bundle.put("isSyncClient", true); - // nothing to do here, the mustache uses dynamicSnippets lambda + + if (language.equals("swift")) { + File templates = new File("templates/" + language + "/guides/" + client); + bundle.put( + "guides", + Arrays.stream(templates.listFiles()).map(File::getName).map(name -> Helpers.capitalize(name.replace(".mustache", ""))).toArray() + ); + } + // no data to add to the bundle, the mustache uses dynamicSnippets lambda } } diff --git a/templates/swift/guides/Package.mustache b/templates/swift/guides/Package.mustache index 45d09281c2c..c9975b2b6ee 100644 --- a/templates/swift/guides/Package.mustache +++ b/templates/swift/guides/Package.mustache @@ -3,6 +3,13 @@ import PackageDescription +let dependencies: [Target.Dependency] = [{{#packageList}} + .product( + name: "{{{.}}}", + package: "algoliasearch-client-swift" + ),{{/packageList}} +] + let package = Package( name: "AlgoliaSearchClientGuides", platforms: [ @@ -15,14 +22,12 @@ let package = Package( .package(path: "../../clients/algoliasearch-client-swift") ], targets: [ - .executableTarget( - name: "AlgoliaSearchClientGuides", - dependencies: [{{#packageList}} - .product( - name: "{{{.}}}", - package: "algoliasearch-client-swift" - ),{{/packageList}} - ] - ) + {{#guides}} + .executableTarget( + name: "{{{.}}}", + dependencies: dependencies, + path: "Sources/{{{.}}}" + ), + {{/guides}} ] ) diff --git a/templates/swift/guides/search/saveObjectsMovies.mustache b/templates/swift/guides/search/saveObjectsMovies.mustache index 5d1aec37c85..8661d1e6283 100644 --- a/templates/swift/guides/search/saveObjectsMovies.mustache +++ b/templates/swift/guides/search/saveObjectsMovies.mustache @@ -6,7 +6,7 @@ import Foundation import Core {{> snippets/import}} -func saveObjectsMovies() async throws { +Task { let url = URL(string: "https://dashboard.algolia.com/sample_datasets/movie.json")! var data: Data? = nil #if os(Linux) // For linux interop @@ -22,7 +22,11 @@ func saveObjectsMovies() async throws { do { // Save records in Algolia index {{#dynamicSnippet}}saveObjectsMovies{{/dynamicSnippet}} + exit(EXIT_SUCCESS) } catch { print(error.localizedDescription) + exit(EXIT_FAILURE) } -} \ No newline at end of file +} + +RunLoop.current.run() \ No newline at end of file