diff --git a/.github/.cache_version b/.github/.cache_version index 5abd5bed95..50c496d20c 100644 --- a/.github/.cache_version +++ b/.github/.cache_version @@ -1 +1 @@ -8.0.3.1 +8.0.4 diff --git a/.gitignore b/.gitignore index 662cf6f91d..656b6e5e54 100644 --- a/.gitignore +++ b/.gitignore @@ -24,6 +24,7 @@ dist .openapi-generator +clients/algoliasearch-client-javascript/packages/*/.openapi-generator-ignore tests/output/*/.openapi-generator-ignore generators/bin diff --git a/clients/algoliasearch-client-java-2/algoliasearch-core/com/algolia/model/search/AroundRadiusOneOf.java b/clients/algoliasearch-client-java-2/algoliasearch-core/com/algolia/model/search/AroundRadiusOneOf.java deleted file mode 100644 index af3c0c7a14..0000000000 --- a/clients/algoliasearch-client-java-2/algoliasearch-core/com/algolia/model/search/AroundRadiusOneOf.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.algolia.model.search; - -import com.google.gson.TypeAdapter; -import com.google.gson.annotations.JsonAdapter; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; -import java.io.IOException; - -/** Gets or Sets aroundRadius_oneOf */ -@JsonAdapter(AroundRadiusOneOf.Adapter.class) -public enum AroundRadiusOneOf { - ALL("all"); - - private final String value; - - AroundRadiusOneOf(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - @Override - public String toString() { - return String.valueOf(value); - } - - public static AroundRadiusOneOf fromValue(String value) { - for (AroundRadiusOneOf b : AroundRadiusOneOf.values()) { - if (b.value.equals(value)) { - return b; - } - } - throw new IllegalArgumentException("Unexpected value '" + value + "'"); - } - - public static class Adapter extends TypeAdapter { - - @Override - public void write( - final JsonWriter jsonWriter, - final AroundRadiusOneOf enumeration - ) throws IOException { - jsonWriter.value(enumeration.getValue()); - } - - @Override - public AroundRadiusOneOf read(final JsonReader jsonReader) - throws IOException { - String value = jsonReader.nextString(); - return AroundRadiusOneOf.fromValue(value); - } - } -} diff --git a/clients/algoliasearch-client-javascript/packages/algoliasearch-lite/.openapi-generator-ignore b/clients/algoliasearch-client-javascript/packages/algoliasearch-lite/.openapi-generator-ignore deleted file mode 100644 index a6fb9df9d1..0000000000 --- a/clients/algoliasearch-client-javascript/packages/algoliasearch-lite/.openapi-generator-ignore +++ /dev/null @@ -1,8 +0,0 @@ -# OpenAPI Generator Ignore -# Generated by openapi-generator https://github.com/openapitools/openapi-generator - -# Use this file to prevent files from being overwritten by the generator. -# The patterns follow closely to .gitignore or .dockerignore. - -git_push.sh -.gitignore diff --git a/clients/algoliasearch-client-javascript/packages/algoliasearch-lite/model/models.ts b/clients/algoliasearch-client-javascript/packages/algoliasearch-lite/model/models.ts deleted file mode 100644 index e7fe0cff8f..0000000000 --- a/clients/algoliasearch-client-javascript/packages/algoliasearch-lite/model/models.ts +++ /dev/null @@ -1,76 +0,0 @@ -export * from './acl'; -export * from './action'; -export * from './addApiKeyResponse'; -export * from './advancedSyntaxFeatures'; -export * from './alternativesAsExact'; -export * from './anchoring'; -export * from './apiKey'; -export * from './aroundRadius'; -export * from './aroundRadiusAll'; -export * from './attributeOrBuiltInOperation'; -export * from './automaticFacetFilter'; -export * from './baseBrowseResponse'; -export * from './baseIndexSettings'; -export * from './baseSearchParams'; -export * from './baseSearchResponse'; -export * from './baseSearchResponseFacetsStats'; -export * from './browseResponse'; -export * from './builtInOperation'; -export * from './builtInOperationType'; -export * from './condition'; -export * from './consequence'; -export * from './consequenceHide'; -export * from './consequenceParams'; -export * from './createdAtObject'; -export * from './dictionaryAction'; -export * from './dictionaryEntry'; -export * from './dictionaryEntryState'; -export * from './dictionaryLanguage'; -export * from './dictionaryType'; -export * from './errorBase'; -export * from './exactOnSingleWordQuery'; -export * from './highlightResult'; -export * from './hit'; -export * from './indexSettings'; -export * from './indexSettingsAsSearchParams'; -export * from './indice'; -export * from './key'; -export * from './languages'; -export * from './listIndicesResponse'; -export * from './logType'; -export * from './matchLevel'; -export * from './multipleQueries'; -export * from './multipleQueriesParams'; -export * from './multipleQueriesResponse'; -export * from './multipleQueriesStrategy'; -export * from './multipleQueriesType'; -export * from './operationType'; -export * from './params'; -export * from './promote'; -export * from './queryType'; -export * from './rankingInfo'; -export * from './rankingInfoMatchedGeoLocation'; -export * from './removeWordsIfNoResults'; -export * from './requiredSearchParams'; -export * from './rule'; -export * from './scopeType'; -export * from './searchForFacetValuesRequest'; -export * from './searchForFacetValuesResponse'; -export * from './searchForFacetValuesResponseFacetHits'; -export * from './searchHits'; -export * from './searchParams'; -export * from './searchParamsObject'; -export * from './searchParamsString'; -export * from './searchResponse'; -export * from './searchSynonymsResponse'; -export * from './snippetResult'; -export * from './source'; -export * from './standardEntries'; -export * from './synonymHit'; -export * from './synonymHitHighlightResult'; -export * from './synonymType'; -export * from './taskStatus'; -export * from './timeRange'; -export * from './typoTolerance'; -export * from './updatedRuleResponse'; -export * from './userId'; diff --git a/clients/algoliasearch-client-javascript/packages/client-abtesting/.openapi-generator-ignore b/clients/algoliasearch-client-javascript/packages/client-abtesting/.openapi-generator-ignore deleted file mode 100644 index a6fb9df9d1..0000000000 --- a/clients/algoliasearch-client-javascript/packages/client-abtesting/.openapi-generator-ignore +++ /dev/null @@ -1,8 +0,0 @@ -# OpenAPI Generator Ignore -# Generated by openapi-generator https://github.com/openapitools/openapi-generator - -# Use this file to prevent files from being overwritten by the generator. -# The patterns follow closely to .gitignore or .dockerignore. - -git_push.sh -.gitignore diff --git a/clients/algoliasearch-client-javascript/packages/client-abtesting/model/models.ts b/clients/algoliasearch-client-javascript/packages/client-abtesting/model/models.ts deleted file mode 100644 index 8dbeb28b0b..0000000000 --- a/clients/algoliasearch-client-javascript/packages/client-abtesting/model/models.ts +++ /dev/null @@ -1,10 +0,0 @@ -export * from './aBTest'; -export * from './aBTestResponse'; -export * from './abTestsVariant'; -export * from './abTestsVariantSearchParams'; -export * from './addABTestsRequest'; -export * from './addABTestsVariant'; -export * from './customSearchParams'; -export * from './errorBase'; -export * from './listABTestsResponse'; -export * from './variant'; diff --git a/clients/algoliasearch-client-javascript/packages/client-analytics/.openapi-generator-ignore b/clients/algoliasearch-client-javascript/packages/client-analytics/.openapi-generator-ignore deleted file mode 100644 index a6fb9df9d1..0000000000 --- a/clients/algoliasearch-client-javascript/packages/client-analytics/.openapi-generator-ignore +++ /dev/null @@ -1,8 +0,0 @@ -# OpenAPI Generator Ignore -# Generated by openapi-generator https://github.com/openapitools/openapi-generator - -# Use this file to prevent files from being overwritten by the generator. -# The patterns follow closely to .gitignore or .dockerignore. - -git_push.sh -.gitignore diff --git a/clients/algoliasearch-client-javascript/packages/client-analytics/model/models.ts b/clients/algoliasearch-client-javascript/packages/client-analytics/model/models.ts deleted file mode 100644 index 889eb5df0e..0000000000 --- a/clients/algoliasearch-client-javascript/packages/client-analytics/model/models.ts +++ /dev/null @@ -1,41 +0,0 @@ -export * from './direction'; -export * from './errorBase'; -export * from './getAverageClickPositionResponse'; -export * from './getAverageClickPositionResponseDates'; -export * from './getClickPositionsResponse'; -export * from './getClickPositionsResponsePositions'; -export * from './getClickThroughRateResponse'; -export * from './getClickThroughRateResponseDates'; -export * from './getConversationRateResponse'; -export * from './getConversationRateResponseDates'; -export * from './getNoClickRateResponse'; -export * from './getNoClickRateResponseDates'; -export * from './getNoResultsRateResponse'; -export * from './getNoResultsRateResponseDates'; -export * from './getSearchesCountResponse'; -export * from './getSearchesCountResponseDates'; -export * from './getSearchesNoClicksResponse'; -export * from './getSearchesNoClicksResponseSearches'; -export * from './getSearchesNoResultsResponse'; -export * from './getSearchesNoResultsResponseSearches'; -export * from './getStatusResponse'; -export * from './getTopCountriesResponse'; -export * from './getTopCountriesResponseCountries'; -export * from './getTopFilterAttribute'; -export * from './getTopFilterAttributesResponse'; -export * from './getTopFilterForAttribute'; -export * from './getTopFilterForAttributeResponse'; -export * from './getTopFiltersNoResultsResponse'; -export * from './getTopFiltersNoResultsValue'; -export * from './getTopFiltersNoResultsValues'; -export * from './getTopHitsResponse'; -export * from './getTopSearchesResponse'; -export * from './getUsersCountResponse'; -export * from './orderBy'; -export * from './topHitsResponse'; -export * from './topHitsResponseHits'; -export * from './topHitsResponseWithAnalytics'; -export * from './topHitsResponseWithAnalyticsHits'; -export * from './topSearchesResponse'; -export * from './topSearchesResponseWithAnalytics'; -export * from './topSearchesResponseWithAnalyticsSearches'; diff --git a/clients/algoliasearch-client-javascript/packages/client-insights/.openapi-generator-ignore b/clients/algoliasearch-client-javascript/packages/client-insights/.openapi-generator-ignore deleted file mode 100644 index a6fb9df9d1..0000000000 --- a/clients/algoliasearch-client-javascript/packages/client-insights/.openapi-generator-ignore +++ /dev/null @@ -1,8 +0,0 @@ -# OpenAPI Generator Ignore -# Generated by openapi-generator https://github.com/openapitools/openapi-generator - -# Use this file to prevent files from being overwritten by the generator. -# The patterns follow closely to .gitignore or .dockerignore. - -git_push.sh -.gitignore diff --git a/clients/algoliasearch-client-javascript/packages/client-insights/model/models.ts b/clients/algoliasearch-client-javascript/packages/client-insights/model/models.ts deleted file mode 100644 index e3ed4b12f4..0000000000 --- a/clients/algoliasearch-client-javascript/packages/client-insights/model/models.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * from './errorBase'; -export * from './eventType'; -export * from './insightEvent'; -export * from './insightEvents'; -export * from './pushEventsResponse'; diff --git a/clients/algoliasearch-client-javascript/packages/client-personalization/.openapi-generator-ignore b/clients/algoliasearch-client-javascript/packages/client-personalization/.openapi-generator-ignore deleted file mode 100644 index a6fb9df9d1..0000000000 --- a/clients/algoliasearch-client-javascript/packages/client-personalization/.openapi-generator-ignore +++ /dev/null @@ -1,8 +0,0 @@ -# OpenAPI Generator Ignore -# Generated by openapi-generator https://github.com/openapitools/openapi-generator - -# Use this file to prevent files from being overwritten by the generator. -# The patterns follow closely to .gitignore or .dockerignore. - -git_push.sh -.gitignore diff --git a/clients/algoliasearch-client-javascript/packages/client-personalization/model/models.ts b/clients/algoliasearch-client-javascript/packages/client-personalization/model/models.ts deleted file mode 100644 index 834a84cd28..0000000000 --- a/clients/algoliasearch-client-javascript/packages/client-personalization/model/models.ts +++ /dev/null @@ -1,7 +0,0 @@ -export * from './deleteUserProfileResponse'; -export * from './errorBase'; -export * from './eventScoring'; -export * from './facetScoring'; -export * from './getUserTokenResponse'; -export * from './personalizationStrategyParams'; -export * from './setPersonalizationStrategyResponse'; diff --git a/clients/algoliasearch-client-javascript/packages/client-predict/.openapi-generator-ignore b/clients/algoliasearch-client-javascript/packages/client-predict/.openapi-generator-ignore deleted file mode 100644 index a6fb9df9d1..0000000000 --- a/clients/algoliasearch-client-javascript/packages/client-predict/.openapi-generator-ignore +++ /dev/null @@ -1,8 +0,0 @@ -# OpenAPI Generator Ignore -# Generated by openapi-generator https://github.com/openapitools/openapi-generator - -# Use this file to prevent files from being overwritten by the generator. -# The patterns follow closely to .gitignore or .dockerignore. - -git_push.sh -.gitignore diff --git a/clients/algoliasearch-client-javascript/packages/client-predict/model/models.ts b/clients/algoliasearch-client-javascript/packages/client-predict/model/models.ts deleted file mode 100644 index d2e7b5ac21..0000000000 --- a/clients/algoliasearch-client-javascript/packages/client-predict/model/models.ts +++ /dev/null @@ -1,13 +0,0 @@ -export * from './affinities'; -export * from './errorBase'; -export * from './fetchUserProfileResponse'; -export * from './funnelStage'; -export * from './modelsToRetrieve'; -export * from './params'; -export * from './predictions'; -export * from './predictionsAffinities'; -export * from './predictionsFunnelStage'; -export * from './predictionsOrderValue'; -export * from './properties'; -export * from './segments'; -export * from './typesToRetrieve'; diff --git a/clients/algoliasearch-client-javascript/packages/client-query-suggestions/.openapi-generator-ignore b/clients/algoliasearch-client-javascript/packages/client-query-suggestions/.openapi-generator-ignore deleted file mode 100644 index a6fb9df9d1..0000000000 --- a/clients/algoliasearch-client-javascript/packages/client-query-suggestions/.openapi-generator-ignore +++ /dev/null @@ -1,8 +0,0 @@ -# OpenAPI Generator Ignore -# Generated by openapi-generator https://github.com/openapitools/openapi-generator - -# Use this file to prevent files from being overwritten by the generator. -# The patterns follow closely to .gitignore or .dockerignore. - -git_push.sh -.gitignore diff --git a/clients/algoliasearch-client-javascript/packages/client-query-suggestions/model/models.ts b/clients/algoliasearch-client-javascript/packages/client-query-suggestions/model/models.ts deleted file mode 100644 index 4887f5e58e..0000000000 --- a/clients/algoliasearch-client-javascript/packages/client-query-suggestions/model/models.ts +++ /dev/null @@ -1,12 +0,0 @@ -export * from './errorBase'; -export * from './indexName'; -export * from './logFile'; -export * from './logLevel'; -export * from './querySuggestionsIndex'; -export * from './querySuggestionsIndexParam'; -export * from './querySuggestionsIndexWithIndexParam'; -export * from './sourceIndex'; -export * from './sourceIndexExternal'; -export * from './sourceIndiceWithReplicas'; -export * from './status'; -export * from './sucessResponse'; diff --git a/clients/algoliasearch-client-javascript/packages/client-search/.openapi-generator-ignore b/clients/algoliasearch-client-javascript/packages/client-search/.openapi-generator-ignore deleted file mode 100644 index a6fb9df9d1..0000000000 --- a/clients/algoliasearch-client-javascript/packages/client-search/.openapi-generator-ignore +++ /dev/null @@ -1,8 +0,0 @@ -# OpenAPI Generator Ignore -# Generated by openapi-generator https://github.com/openapitools/openapi-generator - -# Use this file to prevent files from being overwritten by the generator. -# The patterns follow closely to .gitignore or .dockerignore. - -git_push.sh -.gitignore diff --git a/clients/algoliasearch-client-javascript/packages/client-search/model/aroundRadiusOneOf.ts b/clients/algoliasearch-client-javascript/packages/client-search/model/aroundRadiusOneOf.ts deleted file mode 100644 index b737491ab2..0000000000 --- a/clients/algoliasearch-client-javascript/packages/client-search/model/aroundRadiusOneOf.ts +++ /dev/null @@ -1 +0,0 @@ -export type AroundRadiusOneOf = 'all'; diff --git a/clients/algoliasearch-client-javascript/packages/client-search/model/models.ts b/clients/algoliasearch-client-javascript/packages/client-search/model/models.ts deleted file mode 100644 index d5bfe99fad..0000000000 --- a/clients/algoliasearch-client-javascript/packages/client-search/model/models.ts +++ /dev/null @@ -1,119 +0,0 @@ -export * from './acl'; -export * from './action'; -export * from './addApiKeyResponse'; -export * from './advancedSyntaxFeatures'; -export * from './alternativesAsExact'; -export * from './anchoring'; -export * from './apiKey'; -export * from './aroundRadius'; -export * from './aroundRadiusAll'; -export * from './assignUserIdParams'; -export * from './attributeOrBuiltInOperation'; -export * from './automaticFacetFilter'; -export * from './baseBrowseResponse'; -export * from './baseIndexSettings'; -export * from './baseSearchParams'; -export * from './baseSearchResponse'; -export * from './baseSearchResponseFacetsStats'; -export * from './batchAssignUserIdsParams'; -export * from './batchDictionaryEntriesParams'; -export * from './batchDictionaryEntriesRequest'; -export * from './batchOperation'; -export * from './batchParams'; -export * from './batchResponse'; -export * from './batchWriteParams'; -export * from './browseRequest'; -export * from './browseResponse'; -export * from './builtInOperation'; -export * from './builtInOperationType'; -export * from './condition'; -export * from './consequence'; -export * from './consequenceHide'; -export * from './consequenceParams'; -export * from './createdAtObject'; -export * from './createdAtResponse'; -export * from './deleteApiKeyResponse'; -export * from './deleteSourceResponse'; -export * from './deletedAtResponse'; -export * from './dictionaryAction'; -export * from './dictionaryEntry'; -export * from './dictionaryEntryState'; -export * from './dictionaryLanguage'; -export * from './dictionarySettingsParams'; -export * from './dictionaryType'; -export * from './errorBase'; -export * from './exactOnSingleWordQuery'; -export * from './getDictionarySettingsResponse'; -export * from './getLogsResponse'; -export * from './getLogsResponseInnerQueries'; -export * from './getLogsResponseLogs'; -export * from './getObjectsParams'; -export * from './getObjectsResponse'; -export * from './getTaskResponse'; -export * from './getTopUserIdsResponse'; -export * from './highlightResult'; -export * from './hit'; -export * from './indexSettings'; -export * from './indexSettingsAsSearchParams'; -export * from './indice'; -export * from './key'; -export * from './languages'; -export * from './listApiKeysResponse'; -export * from './listClustersResponse'; -export * from './listIndicesResponse'; -export * from './listUserIdsResponse'; -export * from './logType'; -export * from './matchLevel'; -export * from './multipleBatchOperation'; -export * from './multipleBatchResponse'; -export * from './multipleGetObjectsParams'; -export * from './multipleQueries'; -export * from './multipleQueriesParams'; -export * from './multipleQueriesResponse'; -export * from './multipleQueriesStrategy'; -export * from './multipleQueriesType'; -export * from './operationIndexParams'; -export * from './operationType'; -export * from './params'; -export * from './promote'; -export * from './queryType'; -export * from './rankingInfo'; -export * from './rankingInfoMatchedGeoLocation'; -export * from './removeUserIdResponse'; -export * from './removeWordsIfNoResults'; -export * from './replaceSourceResponse'; -export * from './requiredSearchParams'; -export * from './rule'; -export * from './saveObjectResponse'; -export * from './saveSynonymResponse'; -export * from './scopeType'; -export * from './searchDictionaryEntriesParams'; -export * from './searchForFacetValuesRequest'; -export * from './searchForFacetValuesResponse'; -export * from './searchForFacetValuesResponseFacetHits'; -export * from './searchHits'; -export * from './searchParams'; -export * from './searchParamsObject'; -export * from './searchParamsString'; -export * from './searchResponse'; -export * from './searchRulesParams'; -export * from './searchRulesResponse'; -export * from './searchSynonymsResponse'; -export * from './searchUserIdsParams'; -export * from './searchUserIdsResponse'; -export * from './searchUserIdsResponseHighlightResult'; -export * from './searchUserIdsResponseHits'; -export * from './snippetResult'; -export * from './source'; -export * from './standardEntries'; -export * from './synonymHit'; -export * from './synonymHitHighlightResult'; -export * from './synonymType'; -export * from './taskStatus'; -export * from './timeRange'; -export * from './typoTolerance'; -export * from './updateApiKeyResponse'; -export * from './updatedAtResponse'; -export * from './updatedAtWithObjectIdResponse'; -export * from './updatedRuleResponse'; -export * from './userId'; diff --git a/clients/algoliasearch-client-javascript/packages/client-sources/.openapi-generator-ignore b/clients/algoliasearch-client-javascript/packages/client-sources/.openapi-generator-ignore deleted file mode 100644 index a6fb9df9d1..0000000000 --- a/clients/algoliasearch-client-javascript/packages/client-sources/.openapi-generator-ignore +++ /dev/null @@ -1,8 +0,0 @@ -# OpenAPI Generator Ignore -# Generated by openapi-generator https://github.com/openapitools/openapi-generator - -# Use this file to prevent files from being overwritten by the generator. -# The patterns follow closely to .gitignore or .dockerignore. - -git_push.sh -.gitignore diff --git a/clients/algoliasearch-client-javascript/packages/client-sources/model/models.ts b/clients/algoliasearch-client-javascript/packages/client-sources/model/models.ts deleted file mode 100644 index b978f79272..0000000000 --- a/clients/algoliasearch-client-javascript/packages/client-sources/model/models.ts +++ /dev/null @@ -1,12 +0,0 @@ -export * from './authenticationType'; -export * from './errorBase'; -export * from './method'; -export * from './operationType'; -export * from './postIngestUrlResponse'; -export * from './postURLJob'; -export * from './postURLJobAuth'; -export * from './postURLJobInput'; -export * from './postURLJobTarget'; -export * from './productType'; -export * from './task'; -export * from './taskType'; diff --git a/clients/algoliasearch-client-javascript/packages/recommend/.openapi-generator-ignore b/clients/algoliasearch-client-javascript/packages/recommend/.openapi-generator-ignore deleted file mode 100644 index a6fb9df9d1..0000000000 --- a/clients/algoliasearch-client-javascript/packages/recommend/.openapi-generator-ignore +++ /dev/null @@ -1,8 +0,0 @@ -# OpenAPI Generator Ignore -# Generated by openapi-generator https://github.com/openapitools/openapi-generator - -# Use this file to prevent files from being overwritten by the generator. -# The patterns follow closely to .gitignore or .dockerignore. - -git_push.sh -.gitignore diff --git a/clients/algoliasearch-client-javascript/packages/recommend/model/aroundRadiusOneOf.ts b/clients/algoliasearch-client-javascript/packages/recommend/model/aroundRadiusOneOf.ts deleted file mode 100644 index b737491ab2..0000000000 --- a/clients/algoliasearch-client-javascript/packages/recommend/model/aroundRadiusOneOf.ts +++ /dev/null @@ -1 +0,0 @@ -export type AroundRadiusOneOf = 'all'; diff --git a/clients/algoliasearch-client-javascript/packages/recommend/model/models.ts b/clients/algoliasearch-client-javascript/packages/recommend/model/models.ts deleted file mode 100644 index c7d68933bc..0000000000 --- a/clients/algoliasearch-client-javascript/packages/recommend/model/models.ts +++ /dev/null @@ -1,33 +0,0 @@ -export * from './advancedSyntaxFeatures'; -export * from './alternativesAsExact'; -export * from './aroundRadius'; -export * from './aroundRadiusAll'; -export * from './baseRecommendRequest'; -export * from './baseRecommendationRequest'; -export * from './baseSearchParams'; -export * from './baseSearchResponse'; -export * from './baseSearchResponseFacetsStats'; -export * from './baseTrendingRequest'; -export * from './errorBase'; -export * from './exactOnSingleWordQuery'; -export * from './getRecommendationsParams'; -export * from './getRecommendationsResponse'; -export * from './highlightResult'; -export * from './indexSettingsAsSearchParams'; -export * from './matchLevel'; -export * from './queryType'; -export * from './rankingInfo'; -export * from './rankingInfoMatchedGeoLocation'; -export * from './recommendHit'; -export * from './recommendHits'; -export * from './recommendationModels'; -export * from './recommendationRequest'; -export * from './recommendationsRequest'; -export * from './recommendationsResponse'; -export * from './removeWordsIfNoResults'; -export * from './requiredSearchParams'; -export * from './searchParamsObject'; -export * from './snippetResult'; -export * from './trendingModels'; -export * from './trendingRequest'; -export * from './typoTolerance'; diff --git a/clients/algoliasearch-client-php/lib/Model/Recommend/AroundRadiusOneOf.php b/clients/algoliasearch-client-php/lib/Model/Recommend/AroundRadiusOneOf.php deleted file mode 100644 index b30297eb62..0000000000 --- a/clients/algoliasearch-client-php/lib/Model/Recommend/AroundRadiusOneOf.php +++ /dev/null @@ -1,30 +0,0 @@ - client) { + String spec = (String) client.get("pathPrefix"); + String apiName = spec + "Api"; + + additionalProperties.put("apiName", apiName); + additionalProperties.put("capitalizedApiName", Utils.capitalize(apiName)); + additionalProperties.put("userAgent", Utils.capitalize(spec)); + } + + /** Provides an opportunity to inspect and modify operation data before the code is generated. */ + @Override + public Map postProcessOperationsWithModels( + Map objs, + List allModels + ) { + Map results = super.postProcessOperationsWithModels( + objs, + allModels + ); + Map client = (Map) results.get( + "operations" + ); + + setDefaultGeneratorOptions(client); + + return results; + } + @Override public CodegenOperation fromOperation( String path, diff --git a/generators/src/main/java/com/algolia/codegen/AlgoliaPhpGenerator.java b/generators/src/main/java/com/algolia/codegen/AlgoliaPhpGenerator.java index e1a2fb3096..7745eebf6c 100644 --- a/generators/src/main/java/com/algolia/codegen/AlgoliaPhpGenerator.java +++ b/generators/src/main/java/com/algolia/codegen/AlgoliaPhpGenerator.java @@ -3,7 +3,9 @@ import io.swagger.v3.oas.models.Operation; import io.swagger.v3.oas.models.servers.Server; import java.util.List; +import java.util.Map; import org.openapitools.codegen.CodegenOperation; +import org.openapitools.codegen.SupportingFile; import org.openapitools.codegen.languages.PhpClientCodegen; public class AlgoliaPhpGenerator extends PhpClientCodegen { @@ -24,4 +26,58 @@ public CodegenOperation fromOperation( super.fromOperation(path, httpMethod, operation, servers) ); } + + /** Set default generator options */ + public void setDefaultGeneratorOptions(Map client) { + String spec = (String) client.get("pathPrefix"); + + if (spec.equals("search") || spec.equals("recommend")) { + additionalProperties.put("useCache", true); + } + + additionalProperties.put( + "configClassname", + Utils.createClientName(spec, "php") + "Config" + ); + } + + /** Provides an opportunity to inspect and modify operation data before the code is generated. */ + @Override + public Map postProcessOperationsWithModels( + Map objs, + List allModels + ) { + Map results = super.postProcessOperationsWithModels( + objs, + allModels + ); + Map client = (Map) results.get( + "operations" + ); + + setDefaultGeneratorOptions(client); + + return results; + } + + @Override + public void processOpts() { + super.processOpts(); + + // generator specific options + setParameterNamingConvention("camelCase"); + + // Remove base template as we want to change its path + supportingFiles.removeIf(file -> + file.getTemplateFile().equals("Configuration.mustache") + ); + + supportingFiles.add( + new SupportingFile( + "Configuration.mustache", + "lib/Configuration", + "Configuration.php" + ) + ); + } } diff --git a/generators/src/main/java/com/algolia/codegen/Utils.java b/generators/src/main/java/com/algolia/codegen/Utils.java index 1639d0f49c..6613c88f9e 100644 --- a/generators/src/main/java/com/algolia/codegen/Utils.java +++ b/generators/src/main/java/com/algolia/codegen/Utils.java @@ -27,4 +27,23 @@ public static CodegenOperation specifyCustomRequest(CodegenOperation ope) { } return ope; } + + /** Returns the client name for the given language */ + public static String createClientName(String client, String language) { + String[] clientParts = client.split("-"); + String clientName = ""; + if (language.equals("javascript")) { + // do not capitalize the first part + clientName = clientParts[0].toLowerCase(); + for (int i = 1; i < clientParts.length; i++) { + clientName += capitalize(clientParts[i]); + } + } else { + for (int i = 0; i < clientParts.length; i++) { + clientName += capitalize(clientParts[i]); + } + } + + return clientName; + } } diff --git a/generators/src/main/java/com/algolia/codegen/cts/AlgoliaCtsGenerator.java b/generators/src/main/java/com/algolia/codegen/cts/AlgoliaCtsGenerator.java index 48a5602ec1..75cf619dae 100644 --- a/generators/src/main/java/com/algolia/codegen/cts/AlgoliaCtsGenerator.java +++ b/generators/src/main/java/com/algolia/codegen/cts/AlgoliaCtsGenerator.java @@ -131,7 +131,7 @@ public Map postProcessSupportingFileData( // We can put whatever we want in the bundle, and it will be accessible in the // template - bundle.put("client", createClientName()); + bundle.put("client", Utils.createClientName(client, language) + "Api"); bundle.put("import", createImportName()); bundle.put("hasRegionalHost", hasRegionalHost); bundle.put("lambda", lambda); @@ -234,24 +234,6 @@ private HashMap buildOperations( return result; } - private String createClientName() { - String[] clientParts = client.split("-"); - String clientName = ""; - if (language.equals("javascript")) { - // do not capitalize the first part - clientName = clientParts[0]; - for (int i = 1; i < clientParts.length; i++) { - clientName += Utils.capitalize(clientParts[i]); - } - } else { - for (int i = 0; i < clientParts.length; i++) { - clientName += Utils.capitalize(clientParts[i]); - } - } - - return clientName + "Api"; - } - private String createImportName() { if (!language.equals("java")) { return this.packageName; diff --git a/openapitools.json b/openapitools.json index d6cc06cdab..b30c1f449b 100644 --- a/openapitools.json +++ b/openapitools.json @@ -4,91 +4,75 @@ "version": "5.4.0", "generators": { "javascript-search": { - "generatorName": "algolia-javascript", - "templateDir": "#{cwd}/templates/javascript/", "config": "#{cwd}/openapitools.json", - "apiPackage": "src", - "output": "#{cwd}/clients/algoliasearch-client-javascript/packages/client-search", - "glob": "specs/bundled/search.yml", "gitHost": "algolia", "gitUserId": "algolia", + "glob": "specs/bundled/search.yml", + "templateDir": "#{cwd}/templates/javascript/", + "generatorName": "algolia-javascript", + "apiPackage": "src", + "output": "#{cwd}/clients/algoliasearch-client-javascript/packages/client-search", "gitRepoId": "algoliasearch-client-javascript", "reservedWordsMappings": "queryParameters=queryParameters,requestOptions=requestOptions", "additionalProperties": { - "modelPropertyNaming": "original", - "supportsES6": true, "npmName": "@experimental-api-clients-automation/client-search", "buildFile": "client-search", - "apiName": "search", - "capitalizedApiName": "Search", "packageVersion": "0.0.5", "packageName": "@experimental-api-clients-automation/client-search", "utilsPackageVersion": "0.0.5" } }, "javascript-algoliasearch-lite": { - "generatorName": "algolia-javascript", - "templateDir": "#{cwd}/templates/javascript/", "config": "#{cwd}/openapitools.json", - "apiPackage": "src", - "output": "#{cwd}/clients/algoliasearch-client-javascript/packages/algoliasearch-lite", - "glob": "specs/bundled/algoliasearch-lite.yml", "gitHost": "algolia", "gitUserId": "algolia", + "glob": "specs/bundled/algoliasearch-lite.yml", + "templateDir": "#{cwd}/templates/javascript/", + "generatorName": "algolia-javascript", + "apiPackage": "src", + "output": "#{cwd}/clients/algoliasearch-client-javascript/packages/algoliasearch-lite", "gitRepoId": "algoliasearch-client-javascript", "reservedWordsMappings": "queryParameters=queryParameters,requestOptions=requestOptions", "additionalProperties": { - "modelPropertyNaming": "original", - "supportsES6": true, "npmName": "@experimental-api-clients-automation/algoliasearch-lite", "buildFile": "algoliasearch-lite", - "apiName": "algoliasearchLite", - "capitalizedApiName": "AlgoliasearchLite", "packageVersion": "0.0.5", "packageName": "@experimental-api-clients-automation/algoliasearch-lite", "utilsPackageVersion": "0.0.5" } }, "javascript-recommend": { - "generatorName": "algolia-javascript", - "templateDir": "#{cwd}/templates/javascript/", "config": "#{cwd}/openapitools.json", - "apiPackage": "src", - "output": "#{cwd}/clients/algoliasearch-client-javascript/packages/recommend", - "glob": "specs/bundled/recommend.yml", "gitHost": "algolia", "gitUserId": "algolia", + "glob": "specs/bundled/recommend.yml", + "templateDir": "#{cwd}/templates/javascript/", + "generatorName": "algolia-javascript", + "apiPackage": "src", + "output": "#{cwd}/clients/algoliasearch-client-javascript/packages/recommend", "gitRepoId": "algoliasearch-client-javascript", "reservedWordsMappings": "queryParameters=queryParameters", "additionalProperties": { - "modelPropertyNaming": "original", - "supportsES6": true, "npmName": "@experimental-api-clients-automation/recommend", "buildFile": "recommend", - "apiName": "recommend", - "capitalizedApiName": "Recommend", "packageVersion": "0.0.5", "packageName": "@experimental-api-clients-automation/recommend", "utilsPackageVersion": "0.0.5" } }, "javascript-personalization": { - "generatorName": "algolia-javascript", - "templateDir": "#{cwd}/templates/javascript/", "config": "#{cwd}/openapitools.json", - "apiPackage": "src", - "output": "#{cwd}/clients/algoliasearch-client-javascript/packages/client-personalization", - "glob": "specs/bundled/personalization.yml", "gitHost": "algolia", "gitUserId": "algolia", + "glob": "specs/bundled/personalization.yml", + "templateDir": "#{cwd}/templates/javascript/", + "generatorName": "algolia-javascript", + "apiPackage": "src", + "output": "#{cwd}/clients/algoliasearch-client-javascript/packages/client-personalization", "gitRepoId": "algoliasearch-client-javascript", "additionalProperties": { - "modelPropertyNaming": "original", - "supportsES6": true, "npmName": "@experimental-api-clients-automation/client-personalization", "buildFile": "client-personalization", - "apiName": "personalization", - "capitalizedApiName": "Personalization", "packageVersion": "0.0.5", "packageName": "@experimental-api-clients-automation/client-personalization", "hasRegionalHost": true, @@ -99,22 +83,18 @@ } }, "javascript-analytics": { - "generatorName": "algolia-javascript", - "templateDir": "#{cwd}/templates/javascript/", "config": "#{cwd}/openapitools.json", - "apiPackage": "src", - "output": "#{cwd}/clients/algoliasearch-client-javascript/packages/client-analytics", - "glob": "specs/bundled/analytics.yml", "gitHost": "algolia", "gitUserId": "algolia", + "glob": "specs/bundled/analytics.yml", + "templateDir": "#{cwd}/templates/javascript/", + "generatorName": "algolia-javascript", + "apiPackage": "src", + "output": "#{cwd}/clients/algoliasearch-client-javascript/packages/client-analytics", "gitRepoId": "algoliasearch-client-javascript", "additionalProperties": { - "modelPropertyNaming": "original", - "supportsES6": true, "npmName": "@experimental-api-clients-automation/client-analytics", "buildFile": "client-analytics", - "apiName": "analytics", - "capitalizedApiName": "Analytics", "packageVersion": "0.0.5", "packageName": "@experimental-api-clients-automation/client-analytics", "fallbackToAliasHost": true, @@ -126,22 +106,18 @@ } }, "javascript-insights": { - "generatorName": "algolia-javascript", - "templateDir": "#{cwd}/templates/javascript/", "config": "#{cwd}/openapitools.json", - "apiPackage": "src", - "output": "#{cwd}/clients/algoliasearch-client-javascript/packages/client-insights", - "glob": "specs/bundled/insights.yml", "gitHost": "algolia", "gitUserId": "algolia", + "glob": "specs/bundled/insights.yml", + "templateDir": "#{cwd}/templates/javascript/", + "generatorName": "algolia-javascript", + "apiPackage": "src", + "output": "#{cwd}/clients/algoliasearch-client-javascript/packages/client-insights", "gitRepoId": "algoliasearch-client-javascript", "additionalProperties": { - "modelPropertyNaming": "original", - "supportsES6": true, "npmName": "@experimental-api-clients-automation/client-insights", "buildFile": "client-insights", - "apiName": "insights", - "capitalizedApiName": "Insights", "packageVersion": "0.0.5", "packageName": "@experimental-api-clients-automation/client-insights", "fallbackToAliasHost": true, @@ -153,22 +129,18 @@ } }, "javascript-abtesting": { - "generatorName": "algolia-javascript", - "templateDir": "#{cwd}/templates/javascript/", "config": "#{cwd}/openapitools.json", - "apiPackage": "src", - "output": "#{cwd}/clients/algoliasearch-client-javascript/packages/client-abtesting", - "glob": "specs/bundled/abtesting.yml", "gitHost": "algolia", "gitUserId": "algolia", + "glob": "specs/bundled/abtesting.yml", + "templateDir": "#{cwd}/templates/javascript/", + "generatorName": "algolia-javascript", + "apiPackage": "src", + "output": "#{cwd}/clients/algoliasearch-client-javascript/packages/client-abtesting", "gitRepoId": "algoliasearch-client-javascript", "additionalProperties": { - "modelPropertyNaming": "original", - "supportsES6": true, "npmName": "@experimental-api-clients-automation/client-abtesting", "buildFile": "client-abtesting", - "apiName": "abtesting", - "capitalizedApiName": "Abtesting", "packageVersion": "0.0.5", "packageName": "@experimental-api-clients-automation/client-abtesting", "hasRegionalHost": true, @@ -180,22 +152,18 @@ } }, "javascript-query-suggestions": { - "generatorName": "algolia-javascript", - "templateDir": "#{cwd}/templates/javascript/", "config": "#{cwd}/openapitools.json", - "apiPackage": "src", - "output": "#{cwd}/clients/algoliasearch-client-javascript/packages/client-query-suggestions", - "glob": "specs/bundled/query-suggestions.yml", "gitHost": "algolia", "gitUserId": "algolia", + "glob": "specs/bundled/query-suggestions.yml", + "templateDir": "#{cwd}/templates/javascript/", + "generatorName": "algolia-javascript", + "apiPackage": "src", + "output": "#{cwd}/clients/algoliasearch-client-javascript/packages/client-query-suggestions", "gitRepoId": "algoliasearch-client-javascript", "additionalProperties": { - "modelPropertyNaming": "original", - "supportsES6": true, "npmName": "@experimental-api-clients-automation/client-query-suggestions", "buildFile": "client-query-suggestions", - "apiName": "querySuggestions", - "capitalizedApiName": "QuerySuggestions", "packageVersion": "0.0.5", "packageName": "@experimental-api-clients-automation/client-query-suggestions", "hasRegionalHost": true, @@ -206,22 +174,18 @@ } }, "javascript-sources": { - "generatorName": "algolia-javascript", - "templateDir": "#{cwd}/templates/javascript/", "config": "#{cwd}/openapitools.json", - "apiPackage": "src", - "output": "#{cwd}/clients/algoliasearch-client-javascript/packages/client-sources", - "glob": "specs/bundled/sources.yml", "gitHost": "algolia", "gitUserId": "algolia", + "glob": "specs/bundled/sources.yml", + "templateDir": "#{cwd}/templates/javascript/", + "generatorName": "algolia-javascript", + "apiPackage": "src", + "output": "#{cwd}/clients/algoliasearch-client-javascript/packages/client-sources", "gitRepoId": "algoliasearch-client-javascript", "additionalProperties": { - "modelPropertyNaming": "original", - "supportsES6": true, "npmName": "@experimental-api-clients-automation/client-sources", "buildFile": "client-sources", - "apiName": "sources", - "capitalizedApiName": "Sources", "packageVersion": "0.0.5", "packageName": "@experimental-api-clients-automation/client-sources", "hasRegionalHost": true, @@ -232,22 +196,18 @@ } }, "javascript-predict": { - "generatorName": "algolia-javascript", - "templateDir": "#{cwd}/templates/javascript/", "config": "#{cwd}/openapitools.json", - "apiPackage": "src", - "output": "#{cwd}/clients/algoliasearch-client-javascript/packages/client-predict", - "glob": "specs/bundled/predict.yml", "gitHost": "algolia", "gitUserId": "algolia", + "glob": "specs/bundled/predict.yml", + "templateDir": "#{cwd}/templates/javascript/", + "generatorName": "algolia-javascript", + "apiPackage": "src", + "output": "#{cwd}/clients/algoliasearch-client-javascript/packages/client-predict", "gitRepoId": "algoliasearch-client-javascript", "additionalProperties": { - "modelPropertyNaming": "original", - "supportsES6": true, "npmName": "@experimental-api-clients-automation/client-predict", "buildFile": "client-predict", - "apiName": "predict", - "capitalizedApiName": "Predict", "packageVersion": "0.0.5", "packageName": "@experimental-api-clients-automation/client-predict", "experimentalHost": "predict-api-oslcbws3zq-ew.a.run.app", @@ -255,9 +215,12 @@ } }, "java-search": { - "generatorName": "algolia-java", - "templateDir": "#{cwd}/templates/java/", "config": "#{cwd}/openapitools.json", + "gitHost": "algolia", + "gitUserId": "algolia", + "glob": "specs/bundled/search.yml", + "templateDir": "#{cwd}/templates/java/", + "generatorName": "algolia-java", "output": "#{cwd}/clients/algoliasearch-client-java-2", "artifactId": "algoliasearch-client-java-2", "groupId": "com.algolia", @@ -265,22 +228,19 @@ "invokerPackage": "com.algolia", "modelPackage": "com.algolia.model.search", "library": "okhttp-gson", - "glob": "specs/bundled/search.yml", - "gitHost": "algolia", - "gitUserId": "algolia", "gitRepoId": "algoliasearch-client-java-2", "additionalProperties": { - "sourceFolder": "algoliasearch-core", - "java8": true, - "dateLibrary": "java8", "packageName": "algoliasearch-client-java-2", "packageVersion": "0.0.1" } }, "java-recommend": { - "generatorName": "algolia-java", - "templateDir": "#{cwd}/templates/java/", "config": "#{cwd}/openapitools.json", + "gitHost": "algolia", + "gitUserId": "algolia", + "glob": "specs/bundled/recommend.yml", + "templateDir": "#{cwd}/templates/java/", + "generatorName": "algolia-java", "output": "#{cwd}/clients/algoliasearch-client-java-2", "artifactId": "algoliasearch-client-java-2", "groupId": "com.algolia", @@ -288,22 +248,19 @@ "invokerPackage": "com.algolia", "modelPackage": "com.algolia.model.recommend", "library": "okhttp-gson", - "glob": "specs/bundled/recommend.yml", - "gitHost": "algolia", - "gitUserId": "algolia", "gitRepoId": "algoliasearch-client-java-2", "additionalProperties": { - "sourceFolder": "algoliasearch-core", - "java8": true, - "dateLibrary": "java8", "packageName": "algoliasearch-client-java-2", "packageVersion": "0.0.1" } }, "java-personalization": { - "generatorName": "algolia-java", - "templateDir": "#{cwd}/templates/java/", "config": "#{cwd}/openapitools.json", + "gitHost": "algolia", + "gitUserId": "algolia", + "glob": "specs/bundled/personalization.yml", + "templateDir": "#{cwd}/templates/java/", + "generatorName": "algolia-java", "output": "#{cwd}/clients/algoliasearch-client-java-2", "artifactId": "algoliasearch-client-java-2", "groupId": "com.algolia", @@ -311,14 +268,8 @@ "invokerPackage": "com.algolia", "modelPackage": "com.algolia.model.personalization", "library": "okhttp-gson", - "glob": "specs/bundled/personalization.yml", - "gitHost": "algolia", - "gitUserId": "algolia", "gitRepoId": "algoliasearch-client-java-2", "additionalProperties": { - "sourceFolder": "algoliasearch-core", - "java8": true, - "dateLibrary": "java8", "packageName": "algoliasearch-client-java-2", "packageVersion": "0.0.1", "hasRegionalHost": true, @@ -328,9 +279,12 @@ } }, "java-analytics": { - "generatorName": "algolia-java", - "templateDir": "#{cwd}/templates/java/", "config": "#{cwd}/openapitools.json", + "gitHost": "algolia", + "gitUserId": "algolia", + "glob": "specs/bundled/analytics.yml", + "templateDir": "#{cwd}/templates/java/", + "generatorName": "algolia-java", "output": "#{cwd}/clients/algoliasearch-client-java-2", "artifactId": "algoliasearch-client-java-2", "groupId": "com.algolia", @@ -338,14 +292,8 @@ "invokerPackage": "com.algolia", "modelPackage": "com.algolia.model.analytics", "library": "okhttp-gson", - "glob": "specs/bundled/analytics.yml", - "gitHost": "algolia", - "gitUserId": "algolia", "gitRepoId": "algoliasearch-client-java-2", "additionalProperties": { - "sourceFolder": "algoliasearch-core", - "java8": true, - "dateLibrary": "java8", "packageName": "algoliasearch-client-java-2", "packageVersion": "0.0.1", "hasRegionalHost": true, @@ -356,9 +304,12 @@ } }, "java-insights": { - "generatorName": "algolia-java", - "templateDir": "#{cwd}/templates/java/", "config": "#{cwd}/openapitools.json", + "gitHost": "algolia", + "gitUserId": "algolia", + "glob": "specs/bundled/insights.yml", + "templateDir": "#{cwd}/templates/java/", + "generatorName": "algolia-java", "output": "#{cwd}/clients/algoliasearch-client-java-2", "artifactId": "algoliasearch-client-java-2", "groupId": "com.algolia", @@ -366,14 +317,8 @@ "invokerPackage": "com.algolia", "modelPackage": "com.algolia.model.insights", "library": "okhttp-gson", - "glob": "specs/bundled/insights.yml", - "gitHost": "algolia", - "gitUserId": "algolia", "gitRepoId": "algoliasearch-client-java-2", "additionalProperties": { - "sourceFolder": "algoliasearch-core", - "java8": true, - "dateLibrary": "java8", "packageName": "algoliasearch-client-java-2", "packageVersion": "0.0.1", "hasRegionalHost": true, @@ -384,9 +329,12 @@ } }, "java-abtesting": { - "generatorName": "algolia-java", - "templateDir": "#{cwd}/templates/java/", "config": "#{cwd}/openapitools.json", + "gitHost": "algolia", + "gitUserId": "algolia", + "glob": "specs/bundled/abtesting.yml", + "templateDir": "#{cwd}/templates/java/", + "generatorName": "algolia-java", "output": "#{cwd}/clients/algoliasearch-client-java-2", "artifactId": "algoliasearch-client-java-2", "groupId": "com.algolia", @@ -394,14 +342,8 @@ "invokerPackage": "com.algolia", "modelPackage": "com.algolia.model.abtesting", "library": "okhttp-gson", - "glob": "specs/bundled/abtesting.yml", - "gitHost": "algolia", - "gitUserId": "algolia", "gitRepoId": "algoliasearch-client-java-2", "additionalProperties": { - "sourceFolder": "algoliasearch-core", - "java8": true, - "dateLibrary": "java8", "packageName": "algoliasearch-client-java-2", "packageVersion": "0.0.1", "hasRegionalHost": true, @@ -412,9 +354,12 @@ } }, "java-query-suggestions": { - "generatorName": "algolia-java", - "templateDir": "#{cwd}/templates/java/", "config": "#{cwd}/openapitools.json", + "gitHost": "algolia", + "gitUserId": "algolia", + "glob": "specs/bundled/query-suggestions.yml", + "templateDir": "#{cwd}/templates/java/", + "generatorName": "algolia-java", "output": "#{cwd}/clients/algoliasearch-client-java-2", "artifactId": "algoliasearch-client-java-2", "groupId": "com.algolia", @@ -422,14 +367,8 @@ "invokerPackage": "com.algolia", "modelPackage": "com.algolia.model.querySuggestions", "library": "okhttp-gson", - "glob": "specs/bundled/query-suggestions.yml", - "gitHost": "algolia", - "gitUserId": "algolia", "gitRepoId": "algoliasearch-client-java-2", "additionalProperties": { - "sourceFolder": "algoliasearch-core", - "java8": true, - "dateLibrary": "java8", "packageName": "algoliasearch-client-java-2", "packageVersion": "0.0.1", "hasRegionalHost": true, @@ -439,9 +378,12 @@ } }, "java-predict": { - "generatorName": "algolia-java", - "templateDir": "#{cwd}/templates/java/", "config": "#{cwd}/openapitools.json", + "gitHost": "algolia", + "gitUserId": "algolia", + "glob": "specs/bundled/predict.yml", + "templateDir": "#{cwd}/templates/java/", + "generatorName": "algolia-java", "output": "#{cwd}/clients/algoliasearch-client-java-2", "artifactId": "algoliasearch-client-java-2", "groupId": "com.algolia", @@ -449,73 +391,59 @@ "invokerPackage": "com.algolia", "modelPackage": "com.algolia.model.predict", "library": "okhttp-gson", - "glob": "specs/bundled/predict.yml", - "gitHost": "algolia", - "gitUserId": "algolia", "gitRepoId": "algoliasearch-client-java-2", "additionalProperties": { - "sourceFolder": "algoliasearch-core", - "java8": true, - "dateLibrary": "java8", "packageName": "algoliasearch-client-java-2", "packageVersion": "0.0.1", "experimentalHost": "predict-api-oslcbws3zq-ew.a.run.app" } }, "php-search": { - "generatorName": "algolia-php", - "templateDir": "#{cwd}/templates/php/", "config": "#{cwd}/openapitools.json", - "output": "#{cwd}/clients/algoliasearch-client-php", - "glob": "specs/bundled/search.yml", "gitHost": "algolia", "gitUserId": "algolia", + "glob": "specs/bundled/search.yml", + "templateDir": "#{cwd}/templates/php/", + "generatorName": "algolia-php", + "output": "#{cwd}/clients/algoliasearch-client-php", "gitRepoId": "algoliasearch-client-php", "invokerPackage": "Algolia\\AlgoliaSearch", "modelPackage": "Model\\Search", "additionalProperties": { - "configClassname": "SearchConfig", - "useCache": true, - "variableNamingConvention": "camelCase", "packageName": "algoliasearch-client-php", "packageVersion": "0.0.1" } }, "php-recommend": { - "generatorName": "algolia-php", - "templateDir": "#{cwd}/templates/php/", "config": "#{cwd}/openapitools.json", - "output": "#{cwd}/clients/algoliasearch-client-php", - "glob": "specs/bundled/recommend.yml", "gitHost": "algolia", "gitUserId": "algolia", + "glob": "specs/bundled/recommend.yml", + "templateDir": "#{cwd}/templates/php/", + "generatorName": "algolia-php", + "output": "#{cwd}/clients/algoliasearch-client-php", "gitRepoId": "algoliasearch-client-php", "invokerPackage": "Algolia\\AlgoliaSearch", "modelPackage": "Model\\Recommend", "additionalProperties": { - "configClassname": "RecommendConfig", - "useCache": true, - "variableNamingConvention": "camelCase", "packageName": "algoliasearch-client-php", "packageVersion": "0.0.1" } }, "php-personalization": { - "generatorName": "algolia-php", - "templateDir": "#{cwd}/templates/php/", "config": "#{cwd}/openapitools.json", - "output": "#{cwd}/clients/algoliasearch-client-php", - "glob": "specs/bundled/personalization.yml", "gitHost": "algolia", "gitUserId": "algolia", + "glob": "specs/bundled/personalization.yml", + "templateDir": "#{cwd}/templates/php/", + "generatorName": "algolia-php", + "output": "#{cwd}/clients/algoliasearch-client-php", "gitRepoId": "algoliasearch-client-php", "invokerPackage": "Algolia\\AlgoliaSearch", "modelPackage": "Model\\Personalization", "additionalProperties": { - "configClassname": "PersonalizationConfig", "hasRegionalHost": true, "allowedRegions": "us-eu", - "variableNamingConvention": "camelCase", "packageName": "algoliasearch-client-php", "packageVersion": "0.0.1", "isEuHost": true, @@ -524,21 +452,19 @@ } }, "php-analytics": { - "generatorName": "algolia-php", - "templateDir": "#{cwd}/templates/php/", "config": "#{cwd}/openapitools.json", - "output": "#{cwd}/clients/algoliasearch-client-php", - "glob": "specs/bundled/analytics.yml", "gitHost": "algolia", "gitUserId": "algolia", + "glob": "specs/bundled/analytics.yml", + "templateDir": "#{cwd}/templates/php/", + "generatorName": "algolia-php", + "output": "#{cwd}/clients/algoliasearch-client-php", "gitRepoId": "algoliasearch-client-php", "invokerPackage": "Algolia\\AlgoliaSearch", "modelPackage": "Model\\Analytics", "additionalProperties": { - "configClassname": "AnalyticsConfig", "hasRegionalHost": true, "allowedRegions": "us-de", - "variableNamingConvention": "camelCase", "packageName": "algoliasearch-client-php", "packageVersion": "0.0.1", "fallbackToAliasHost": true, @@ -548,21 +474,19 @@ } }, "php-insights": { - "generatorName": "algolia-php", - "templateDir": "#{cwd}/templates/php/", "config": "#{cwd}/openapitools.json", - "output": "#{cwd}/clients/algoliasearch-client-php", - "glob": "specs/bundled/insights.yml", "gitHost": "algolia", "gitUserId": "algolia", + "glob": "specs/bundled/insights.yml", + "templateDir": "#{cwd}/templates/php/", + "generatorName": "algolia-php", + "output": "#{cwd}/clients/algoliasearch-client-php", "gitRepoId": "algoliasearch-client-php", "invokerPackage": "Algolia\\AlgoliaSearch", "modelPackage": "Model\\Insights", "additionalProperties": { - "configClassname": "InsightsConfig", "hasRegionalHost": true, "allowedRegions": "us-de", - "variableNamingConvention": "camelCase", "packageName": "algoliasearch-client-php", "packageVersion": "0.0.1", "fallbackToAliasHost": true, @@ -572,21 +496,19 @@ } }, "php-abtesting": { - "generatorName": "algolia-php", - "templateDir": "#{cwd}/templates/php/", "config": "#{cwd}/openapitools.json", - "output": "#{cwd}/clients/algoliasearch-client-php", - "glob": "specs/bundled/abtesting.yml", "gitHost": "algolia", "gitUserId": "algolia", + "glob": "specs/bundled/abtesting.yml", + "templateDir": "#{cwd}/templates/php/", + "generatorName": "algolia-php", + "output": "#{cwd}/clients/algoliasearch-client-php", "gitRepoId": "algoliasearch-client-php", "invokerPackage": "Algolia\\AlgoliaSearch", "modelPackage": "Model\\Abtesting", "additionalProperties": { - "configClassname": "AbtestingConfig", "hasRegionalHost": true, "allowedRegions": "us-de", - "variableNamingConvention": "camelCase", "packageName": "algoliasearch-client-php", "packageVersion": "0.0.1", "fallbackToAliasHost": true, @@ -596,21 +518,19 @@ } }, "php-query-suggestions": { - "generatorName": "algolia-php", - "templateDir": "#{cwd}/templates/php/", "config": "#{cwd}/openapitools.json", - "output": "#{cwd}/clients/algoliasearch-client-php", - "glob": "specs/bundled/query-suggestions.yml", "gitHost": "algolia", "gitUserId": "algolia", + "glob": "specs/bundled/query-suggestions.yml", + "templateDir": "#{cwd}/templates/php/", + "generatorName": "algolia-php", + "output": "#{cwd}/clients/algoliasearch-client-php", "gitRepoId": "algoliasearch-client-php", "invokerPackage": "Algolia\\AlgoliaSearch", "modelPackage": "Model\\QuerySuggestions", "additionalProperties": { - "configClassname": "QuerySuggestionsConfig", "hasRegionalHost": true, "allowedRegions": "us-eu", - "variableNamingConvention": "camelCase", "packageName": "algoliasearch-client-php", "packageVersion": "0.0.1", "isEuHost": true, diff --git a/scripts/buildSpecs.ts b/scripts/buildSpecs.ts index 32476279e6..dfd3aeb9de 100644 --- a/scripts/buildSpecs.ts +++ b/scripts/buildSpecs.ts @@ -4,7 +4,7 @@ import yaml from 'js-yaml'; import { checkForCache, exists, run, toAbsolutePath } from './common'; import { createSpinner } from './oraLog'; -import type { Spec } from './pre-gen/setHostsOptions'; +import type { Spec } from './types'; const ALGOLIASEARCH_LITE_OPERATIONS = [ 'search', diff --git a/scripts/ci/createMatrix.ts b/scripts/ci/createMatrix.ts index 56a5815846..5c62d34204 100644 --- a/scripts/ci/createMatrix.ts +++ b/scripts/ci/createMatrix.ts @@ -74,12 +74,11 @@ async function getClientMatrix({ // Extra informations for the PHP matrix in order to properly scope the // GitHub action cache if (language === 'php') { - matchedGenerator.config = additionalProperties.configClassname; - matchedGenerator.api = additionalProperties.configClassname.replace( - 'Config', - 'Api' - ); - matchedGenerator.capitalizedName = createClientName(client, 'php'); + const clientName = createClientName(client, 'php'); + + matchedGenerator.config = `${clientName}Config`; + matchedGenerator.api = `${clientName}Api`; + matchedGenerator.capitalizedName = clientName; } matrix.client.push(matchedGenerator); diff --git a/scripts/generate.ts b/scripts/generate.ts index 4931458e34..6c6ae34897 100644 --- a/scripts/generate.ts +++ b/scripts/generate.ts @@ -1,69 +1,15 @@ -import path from 'path'; - import { buildSpecs } from './buildSpecs'; -import { - buildCustomGenerators, - CI, - run, - runIfExists, - toAbsolutePath, -} from './common'; -import { - getCustomGenerator, - getLanguageFolder, - getLanguageModelFolder, -} from './config'; -import { createClientName } from './cts/utils'; +import { buildCustomGenerators, CI, run } from './common'; +import { getCustomGenerator, getLanguageFolder } from './config'; import { formatter } from './formatter'; import { createSpinner } from './oraLog'; -import { setHostsOptions } from './pre-gen/setHostsOptions'; +import { removeExistingModel, setDefaultGeneratorOptions } from './pre-gen'; import type { Generator } from './types'; -/** - * Remove `model` folder for the current language and client. - */ -async function removeExistingModel( - { language, client, output }: Generator, - verbose?: boolean -): Promise { - const baseModelFolder = getLanguageModelFolder(language); - - let clientModel = ''; - switch (language) { - case 'java': - clientModel = client; - break; - case 'php': - clientModel = createClientName(client, 'php'); - break; - default: - break; - } - - await run( - `rm -rf ${toAbsolutePath( - path.resolve('..', output, baseModelFolder, clientModel) - )}`, - { - verbose, - } - ); -} - async function preGen(gen: Generator, verbose?: boolean): Promise { - // Run bash pre-gen script - await runIfExists( - `./scripts/pre-gen/${gen.language}.sh`, - `${gen.output} ${gen.key}`, - { - verbose, - } - ); - - await removeExistingModel(gen); + await removeExistingModel(gen, verbose); - // Updates `openapitools.json` file based on the spec `servers` - await setHostsOptions({ client: gen.client, key: gen.key }); + await setDefaultGeneratorOptions(gen); } async function generateClient( @@ -83,15 +29,6 @@ async function generateClient( ); } -async function postGen( - { language, key, output }: Generator, - verbose?: boolean -): Promise { - await runIfExists(`./scripts/post-gen/${language}.sh`, `${output} ${key}`, { - verbose, - }); -} - export async function generate( generators: Generator[], verbose: boolean @@ -128,9 +65,6 @@ export async function generate( await run('YARN_ENABLE_IMMUTABLE_INSTALLS=false yarn', { verbose }); } - spinner.text = `post-gen ${gen.key}`; - await postGen(gen, verbose); - if (CI && gen.language === 'javascript') { // because the CI is parallelized, run the formatter for each client await formatter(gen.language, gen.output, verbose); diff --git a/scripts/post-gen/javascript.sh b/scripts/post-gen/javascript.sh deleted file mode 100755 index 1f85a47272..0000000000 --- a/scripts/post-gen/javascript.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash - -# Break on non-zero code -set -e - -DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null && pwd)" -# Move to the root (easier to locate other scripts) -cd ${DIR}/../.. - - -FOLDER=$1 -GENERATOR=$2 - -# Generator does not allow new files, so we use existing ones to generate -# our `node` and `browser` build files. -destination=$FOLDER/builds - -mkdir -p $destination - -mv $FOLDER/api.ts $destination/node.ts -mv $FOLDER/src/apis.ts $destination/browser.ts - -buildFile=$(cat openapitools.json | jq -r --arg generator "$GENERATOR" '."generator-cli".generators[$generator].additionalProperties.buildFile' | sed 's/#{cwd}\///g') - -echo -e "// eslint-disable-next-line import/no-commonjs,import/extensions\nmodule.exports = require('./dist/$buildFile.cjs.node.js');" > $FOLDER/index.js -echo -e "// eslint-disable-next-line import/no-unresolved\nexport * from './dist/builds/node';" > $FOLDER/index.d.ts diff --git a/scripts/post-gen/php.sh b/scripts/post-gen/php.sh deleted file mode 100755 index 7ebcb5aa15..0000000000 --- a/scripts/post-gen/php.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash -set -e - -DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null && pwd)" -# Move to the root (easier to locate other scripts) -cd ${DIR}/../.. - -FOLDER=$1 - -#Move Configuration file -mv ./$FOLDER/lib/Configuration.php ./$FOLDER/lib/Configuration/ - diff --git a/scripts/pre-gen/setHostsOptions.ts b/scripts/pre-gen/getHostsOptions.ts similarity index 53% rename from scripts/pre-gen/setHostsOptions.ts rename to scripts/pre-gen/getHostsOptions.ts index 6a27f7cdfe..e2b19b77a6 100644 --- a/scripts/pre-gen/setHostsOptions.ts +++ b/scripts/pre-gen/getHostsOptions.ts @@ -1,65 +1,22 @@ -import { readFile, stat, writeFile } from 'fs/promises'; +import { readFile } from 'fs/promises'; import { URL } from 'url'; import yaml from 'js-yaml'; import { exists, toAbsolutePath } from '../common'; -import type { Generator } from '../types'; - -type Server = { - url: string; - variables?: { - [k: string]: { - enum?: string[]; - default: string; - }; - }; -}; - -type Tag = { - name: string; - description: string; -}; - -type Paths = Record>; - -export type Spec = { - servers: Server[]; - tags: Tag[]; - paths: Paths; -}; - -type AdditionalProperties = Partial<{ - hasRegionalHost: boolean; - fallbackToAliasHost: boolean; - isEuHost: boolean; - isDeHost: boolean; - host: string; - topLevelDomain: string; - /** - * Client name needs to be explicitly set, no variables required in the host. - */ - experimentalHost: string; -}>; - -export async function setHostsOptions({ +import type { AdditionalProperties, Generator, Spec } from '../types'; + +/** + * Retrieve hosts options from the bundled spec file to define them + * in the `additionalProperties` of a generator. + * + * Those options are used to determine which host method should be generated + * in the template. + */ +export async function getHostsOptions({ client, - key: generator, -}: Pick): Promise { - const openapitoolsPath = toAbsolutePath('openapitools.json'); - if (!(await stat(openapitoolsPath))) { - throw new Error( - `File not found ${openapitoolsPath}.\nMake sure your run scripts from the root directory using yarn workspace.` - ); - } - const openapitools = JSON.parse(await readFile(openapitoolsPath, 'utf-8')); - - const generatorOptions = openapitools['generator-cli'].generators[generator]; - - if (!generator || !generatorOptions) { - throw new Error(`Generator not found: ${generator}`); - } - + key, +}: Pick): Promise { const specPath = toAbsolutePath(`specs/bundled/${client}.yml`); if (!(await exists(specPath))) { @@ -117,16 +74,8 @@ export async function setHostsOptions({ additionalProperties.topLevelDomain = host.split('.').pop(); } - generatorOptions.additionalProperties = { - ...generatorOptions.additionalProperties, - ...additionalProperties, - }; - - await writeFile( - openapitoolsPath, - JSON.stringify(openapitools, null, 2).concat('\n') - ); + return additionalProperties; } catch (e) { - throw new Error(`Error reading yaml file ${generator}: ${e}`); + throw new Error(`Error reading yaml file ${key}: ${e}`); } } diff --git a/scripts/pre-gen/index.ts b/scripts/pre-gen/index.ts new file mode 100644 index 0000000000..cb2119fc23 --- /dev/null +++ b/scripts/pre-gen/index.ts @@ -0,0 +1,2 @@ +export * from './removeExistingModel'; +export * from './setDefaultGeneratorOptions'; diff --git a/scripts/pre-gen/removeExistingModel.ts b/scripts/pre-gen/removeExistingModel.ts new file mode 100644 index 0000000000..65aa96e1d2 --- /dev/null +++ b/scripts/pre-gen/removeExistingModel.ts @@ -0,0 +1,37 @@ +import path from 'path'; + +import { run, toAbsolutePath } from '../common'; +import { getLanguageModelFolder } from '../config'; +import { createClientName } from '../cts/utils'; +import type { Generator } from '../types'; + +/** + * Remove `model` folder for the current language and client. + */ +export async function removeExistingModel( + { language, client, output }: Generator, + verbose?: boolean +): Promise { + const baseModelFolder = getLanguageModelFolder(language); + + let clientModel = ''; + switch (language) { + case 'java': + clientModel = client; + break; + case 'php': + clientModel = createClientName(client, 'php'); + break; + default: + break; + } + + await run( + `rm -rf ${toAbsolutePath( + path.resolve('..', output, baseModelFolder, clientModel) + )}`, + { + verbose, + } + ); +} diff --git a/scripts/pre-gen/setDefaultGeneratorOptions.ts b/scripts/pre-gen/setDefaultGeneratorOptions.ts new file mode 100644 index 0000000000..c4b55001d2 --- /dev/null +++ b/scripts/pre-gen/setDefaultGeneratorOptions.ts @@ -0,0 +1,67 @@ +import { readFile, stat, writeFile } from 'fs/promises'; + +import clientsConfig from '../../config/clients.config.json'; +import { toAbsolutePath } from '../common'; +import type { Generator } from '../types'; + +import { getHostsOptions } from './getHostsOptions'; + +const AVAILABLE_CUSTOM_GEN = Object.entries(clientsConfig).reduce( + (clients, [lang, clientOptions]) => { + if (clientOptions.customGenerator) { + return [...new Set([...clients, lang])]; + } + + return clients; + }, + [] as string[] +); + +/** + * Sets default generator options to the openapitools.json config file. + * + * Defaults options are used to + * - Set the hosts option based on the `servers` of input spec. + * - Set config path. + */ +export async function setDefaultGeneratorOptions({ + language, + client, + key, +}: Generator): Promise { + const openapitoolsPath = toAbsolutePath('openapitools.json'); + if (!(await stat(openapitoolsPath))) { + throw new Error( + `File not found ${openapitoolsPath}.\nMake sure your run scripts from the root directory using yarn workspace.` + ); + } + const openapitools = JSON.parse(await readFile(openapitoolsPath, 'utf-8')); + const generatorOptions = openapitools['generator-cli'].generators[key]; + + if (!key || !generatorOptions) { + throw new Error(`Generator not found: ${key}`); + } + + const hostsOptions = await getHostsOptions({ client, key }); + + openapitools['generator-cli'].generators[key] = { + config: '#{cwd}/openapitools.json', + gitHost: 'algolia', + gitUserId: 'algolia', + glob: `specs/bundled/${client}.yml`, + templateDir: `#{cwd}/templates/${language}/`, + generatorName: AVAILABLE_CUSTOM_GEN.includes(language) + ? `algolia-${language}` + : generatorOptions.generatorName, + ...generatorOptions, + additionalProperties: { + ...generatorOptions.additionalProperties, + ...hostsOptions, + }, + }; + + await writeFile( + openapitoolsPath, + JSON.stringify(openapitools, null, 2).concat('\n') + ); +} diff --git a/scripts/types.ts b/scripts/types.ts index 31aff2867a..bf5052b488 100644 --- a/scripts/types.ts +++ b/scripts/types.ts @@ -1,5 +1,27 @@ import type config from '../config/clients.config.json'; +export type Generator = Record & { + language: string; + client: string; + key: string; + additionalProperties: AdditionalProperties; +}; + +export type AdditionalProperties = Partial<{ + packageName: string; + hasRegionalHost: boolean; + fallbackToAliasHost: boolean; + isEuHost: boolean; + isDeHost: boolean; + host: string; + topLevelDomain: string; + /** + * Client name needs to be explicitly set, no variables required in the host. + */ + experimentalHost: string; +}> & + Record; + export type CheckForCacheOptions = { job: string; folder: string; @@ -13,16 +35,6 @@ export type CheckForCache = { hash: string; }; -export type Generator = Record & { - language: string; - client: string; - key: string; - additionalProperties: Record & { - packageName: string; - hasRegionalHost?: boolean; - }; -}; - export type RunOptions = { errorMessage?: string; verbose?: boolean; @@ -30,3 +42,35 @@ export type RunOptions = { }; export type Language = keyof typeof config; + +export type Spec = { + servers: Server[]; + tags: Tag[]; + paths: Path[]; +}; + +/** + * Server of a spec. + */ +type Server = { + url: string; + variables?: { + [k: string]: { + enum?: string[]; + default: string; + }; + }; +}; + +/** + * Global tag of a spec. + */ +type Tag = { + name: string; + description: string; +}; + +/** + * Paths of a spec. + */ +type Path = Record>; diff --git a/templates/javascript/api-single.mustache b/templates/javascript/api-single.mustache index 83a0c2909b..f5e242eb0e 100644 --- a/templates/javascript/api-single.mustache +++ b/templates/javascript/api-single.mustache @@ -17,7 +17,7 @@ import type { import { {{classname}} } from '{{filename}}'; {{/imports}} -export * from '../model/models'; +export * from '../model'; export const apiClientVersion = '{{packageVersion}}'; {{#operations}} @@ -83,7 +83,7 @@ function getDefaultHosts(region{{#fallbackToAliasHost}}?{{/fallbackToAliasHost}} {{/hasRegionalHost}} // eslint-disable-next-line @typescript-eslint/explicit-function-return-type -export function create{{capitalizedApiName}}Api(options: CreateClientOptions{{#hasRegionalHost}} & {region{{#fallbackToAliasHost}}?{{/fallbackToAliasHost}}: Region }{{/hasRegionalHost}}) { +export function create{{capitalizedApiName}}(options: CreateClientOptions{{#hasRegionalHost}} & {region{{#fallbackToAliasHost}}?{{/fallbackToAliasHost}}: Region }{{/hasRegionalHost}}) { const auth = createAuth(options.appId, options.apiKey, options.authMode); const transporter = createTransporter({ hosts: options?.hosts ?? getDefaultHosts({{^hasRegionalHost}}{{^experimentalHost}}options.appId{{/experimentalHost}}{{/hasRegionalHost}}{{#hasRegionalHost}}options.region{{/hasRegionalHost}}), @@ -97,7 +97,7 @@ export function create{{capitalizedApiName}}Api(options: CreateClientOptions{{#h baseQueryParameters: auth.queryParameters(), userAgent: getUserAgent({ userAgents: options.userAgents, - client: '{{{capitalizedApiName}}}', + client: '{{{userAgent}}}', version: apiClientVersion, }), timeouts: options.timeouts, @@ -254,7 +254,7 @@ export function create{{capitalizedApiName}}Api(options: CreateClientOptions{{#h }; } -export type {{capitalizedApiName}}Api = ReturnType; +export type {{capitalizedApiName}} = ReturnType; {{#operation}} {{#allParams.0}} diff --git a/templates/javascript/api-all.mustache b/templates/javascript/browser.mustache similarity index 76% rename from templates/javascript/api-all.mustache rename to templates/javascript/browser.mustache index b89289ccec..af39da090b 100644 --- a/templates/javascript/api-all.mustache +++ b/templates/javascript/browser.mustache @@ -1,22 +1,21 @@ -{{! This file will be renamed and moved to `builds/browser.ts` after generating the client }} import type { InitClientOptions } from '@experimental-api-clients-automation/client-common'; import { createMemoryCache, createFallbackableCache, createBrowserLocalStorageCache } from '@experimental-api-clients-automation/client-common'; import { createXhrRequester } from '@experimental-api-clients-automation/requester-browser-xhr'; -import { create{{capitalizedApiName}}Api, apiClientVersion } from '../src/{{apiName}}Api'; -import type { {{capitalizedApiName}}Api } from '../src/{{apiName}}Api'; +import { create{{capitalizedApiName}}, apiClientVersion } from '../src/{{apiName}}'; +import type { {{capitalizedApiName}} } from '../src/{{apiName}}'; {{#hasRegionalHost}} -import type { Region } from '../src/{{apiName}}Api'; +import type { Region } from '../src/{{apiName}}'; {{/hasRegionalHost}} -export * from '../src/{{apiName}}Api'; +export * from '../src/{{apiName}}'; -export function {{apiName}}Api( +export function {{apiName}}( appId: string, apiKey: string,{{#hasRegionalHost}}region{{#fallbackToAliasHost}}?{{/fallbackToAliasHost}}: Region,{{/hasRegionalHost}} options?: InitClientOptions -): {{capitalizedApiName}}Api { +): {{capitalizedApiName}} { if (!appId) { throw new Error("`appId` is missing."); } @@ -33,7 +32,7 @@ export function {{apiName}}Api( {{/fallbackToAliasHost}} {{/hasRegionalHost}} - return create{{capitalizedApiName}}Api({ + return create{{capitalizedApiName}}({ appId, apiKey,{{#hasRegionalHost}}region,{{/hasRegionalHost}} timeouts: { diff --git a/templates/javascript/index.d.mustache b/templates/javascript/index.d.mustache new file mode 100644 index 0000000000..8b0a7c887a --- /dev/null +++ b/templates/javascript/index.d.mustache @@ -0,0 +1,2 @@ +// eslint-disable-next-line import/no-unresolved +export * from './dist/builds/node'; diff --git a/templates/javascript/index.mustache b/templates/javascript/index.mustache new file mode 100644 index 0000000000..beb3e4bed0 --- /dev/null +++ b/templates/javascript/index.mustache @@ -0,0 +1,2 @@ +// eslint-disable-next-line import/no-commonjs,import/extensions +module.exports = require('./dist/{{buildFile}}.cjs.node.js'); diff --git a/templates/javascript/models.mustache b/templates/javascript/modelBarrel.mustache similarity index 100% rename from templates/javascript/models.mustache rename to templates/javascript/modelBarrel.mustache diff --git a/templates/javascript/api.mustache b/templates/javascript/node.mustache similarity index 74% rename from templates/javascript/api.mustache rename to templates/javascript/node.mustache index ae2e1780dd..3edb262482 100644 --- a/templates/javascript/api.mustache +++ b/templates/javascript/node.mustache @@ -1,22 +1,21 @@ -{{! This file will be renamed and moved to `builds/node.ts` after generating the client }} import type { InitClientOptions } from '@experimental-api-clients-automation/client-common'; import { createMemoryCache, createNullCache } from '@experimental-api-clients-automation/client-common'; import { createHttpRequester } from '@experimental-api-clients-automation/requester-node-http'; -import { create{{capitalizedApiName}}Api } from '../src/{{apiName}}Api'; -import type { {{capitalizedApiName}}Api } from '../src/{{apiName}}Api'; +import { create{{capitalizedApiName}} } from '../src/{{apiName}}'; +import type { {{capitalizedApiName}} } from '../src/{{apiName}}'; {{#hasRegionalHost}} -import type { Region } from '../src/{{apiName}}Api'; +import type { Region } from '../src/{{apiName}}'; {{/hasRegionalHost}} -export * from '../src/{{apiName}}Api'; +export * from '../src/{{apiName}}'; -export function {{apiName}}Api( +export function {{apiName}}( appId: string, apiKey: string,{{#hasRegionalHost}}region{{#fallbackToAliasHost}}?{{/fallbackToAliasHost}}: Region,{{/hasRegionalHost}} options?: InitClientOptions -): {{capitalizedApiName}}Api { +): {{capitalizedApiName}} { if (!appId) { throw new Error("`appId` is missing."); } @@ -33,7 +32,7 @@ export function {{apiName}}Api( {{/fallbackToAliasHost}} {{/hasRegionalHost}} - return create{{capitalizedApiName}}Api({ + return create{{capitalizedApiName}}({ appId, apiKey,{{#hasRegionalHost}}region,{{/hasRegionalHost}} timeouts: {