Skip to content

Commit 12dd498

Browse files
authored
Merge dcc746a into 681658d
2 parents 681658d + dcc746a commit 12dd498

File tree

16 files changed

+43
-140
lines changed

16 files changed

+43
-140
lines changed

generators/src/main/java/com/algolia/codegen/AlgoliaJavascriptGenerator.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -165,14 +165,15 @@ private void setDefaultGeneratorOptions() {
165165
List<Map<String, Object>> packages = Helpers.getClientConfigList("javascript", "clients");
166166
for (Map<String, Object> pkg : packages) {
167167
String name = ((String) pkg.get("output")).replace("clients/algoliasearch-client-javascript/packages/", "");
168-
if (name.contains("search")) {
168+
if (name.contains("algoliasearch")) {
169169
continue;
170170
}
171171

172172
var dependency = new HashMap<String, Object>();
173173
dependency.put("dependencyName", Helpers.createClientName((String) pkg.get("name"), "javascript"));
174174
dependency.put("dependencyPackage", "@algolia/" + name);
175175
dependency.put("dependencyVersion", Helpers.getPackageJsonVersion(name));
176+
dependency.put("withInitMethod", !name.contains("search"));
176177
dependency.put(
177178
"dependencyHasRegionalHosts",
178179
!name.contains("search") && !name.contains("recommend") && !name.contains("monitoring")
@@ -181,7 +182,6 @@ private void setDefaultGeneratorOptions() {
181182
dependencies.add(dependency);
182183
}
183184
additionalProperties.put("dependencies", dependencies);
184-
additionalProperties.put("searchVersion", Helpers.getPackageJsonVersion("client-search"));
185185

186186
// Files used to generate the `lite` client
187187
clientName = "lite" + Helpers.API_SUFFIX;

generators/src/main/java/com/algolia/codegen/cts/AlgoliaCTSGenerator.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,8 @@ public Map<String, Object> postProcessSupportingFileData(Map<String, Object> obj
147147

148148
// We can put whatever we want in the bundle, and it will be accessible in the template
149149
bundle.put("mode", mode);
150+
bundle.put("is" + Helpers.capitalize(client) + "Client", true);
151+
bundle.put("isSearchClient", client.contains("search")); // just so algoliasearch is treated as a search client too
150152
bundle.put("client", Helpers.createClientName(importClientName, language) + "Client");
151153
bundle.put("clientPrefix", Helpers.createClientName(importClientName, language));
152154
bundle.put("hasRegionalHost", hasRegionalHost);

generators/src/main/java/com/algolia/codegen/cts/manager/JavascriptCTSManager.java

Lines changed: 4 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import com.algolia.codegen.AlgoliaJavascriptGenerator;
44
import com.algolia.codegen.exceptions.GeneratorException;
55
import com.algolia.codegen.utils.*;
6-
import com.fasterxml.jackson.databind.JsonNode;
76
import java.util.*;
87
import org.openapitools.codegen.SupportingFile;
98

@@ -45,27 +44,9 @@ public void addSnippetsSupportingFiles(List<SupportingFile> supportingFiles, Str
4544
@Override
4645
public void addDataToBundle(Map<String, Object> bundle) throws GeneratorException {
4746
bundle.put("utilsPackageVersion", Helpers.getPackageJsonVersion("client-common"));
48-
49-
List<Map<String, String>> clients = new ArrayList<>();
50-
String importName = "";
51-
52-
Iterator<JsonNode> clientIterator = Helpers.getClientConfig("javascript").get("clients").elements();
53-
while (clientIterator.hasNext()) {
54-
JsonNode c = clientIterator.next();
55-
String output = c.get("output").asText();
56-
String packageName = output.substring(output.lastIndexOf("/") + 1);
57-
if (!packageName.equals("algoliasearch")) {
58-
packageName = "@algolia/" + packageName;
59-
}
60-
61-
clients.add(Map.of("packageName", packageName, "packagePath", "link:../../../" + output.replace("#{cwd}/", "")));
62-
63-
if (c.get("name").asText().equals(client)) {
64-
importName = packageName.replace("algoliasearch", "algoliasearch/lite");
65-
}
66-
}
67-
68-
bundle.put("packageDependencies", clients);
69-
bundle.put("import", importName);
47+
bundle.put("algoliasearchVersion", Helpers.getPackageJsonVersion("algoliasearch"));
48+
bundle.put("initMethod", "init" + Helpers.capitalize(Helpers.camelize(client)));
49+
bundle.put("clientName", client.equals("algoliasearch") ? "liteClient" : "algoliasearch");
50+
bundle.put("importPackage", client.equals("algoliasearch") ? "algoliasearch/lite" : "algoliasearch");
7051
}
7152
}

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
"build": "yarn build:eslint && yarn scripts:build",
1515
"build:eslint": "yarn workspace eslint-plugin-automation-custom build && yarn install",
1616
"clean": "rm -rf **/dist **/build **/.build **/node_modules **/.gradle **/vendor **/bin **/obj **/__pycache__ || true",
17-
"cli": "yarn workspace scripts start",
17+
"cli": "cd scripts && yarn build:cli && yarn start",
1818
"docker:setup": "./scripts/docker/setup.sh",
1919
"fix:json": "eslint --ext=json . --fix",
2020
"fix:mustache": "eslint --ext=mustache templates/**/tests/ --fix",

templates/javascript/clients/algoliasearch/builds/definition.mustache

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
// {{{generationBanner}}}
22

33
import type { ClientOptions } from '@algolia/client-common';
4-
import type { SearchClient } from '@algolia/client-search';
5-
import { searchClient } from '@algolia/client-search';
64

75
{{#dependencies}}
86
import { {{{dependencyName}}}Client } from '{{{dependencyPackage}}}';
@@ -23,7 +21,9 @@ export * from './models';
2321

2422
export type Algoliasearch = SearchClient & {
2523
{{#dependencies}}
26-
init{{#lambda.titlecase}}{{{dependencyName}}}{{/lambda.titlecase}}: (initOptions: InitClientOptions {{#dependencyHasRegionalHosts}}& {{#lambda.titlecase}}{{{dependencyName}}}RegionOptions{{/lambda.titlecase}}{{/dependencyHasRegionalHosts}}) => {{#lambda.titlecase}}{{{dependencyName}}}{{/lambda.titlecase}}Client;
24+
{{#withInitMethod}}
25+
init{{#lambda.titlecase}}{{{dependencyName}}}{{/lambda.titlecase}}: (initOptions{{^dependencyHasRegionalHosts}}?{{/dependencyHasRegionalHosts}}: InitClientOptions {{#dependencyHasRegionalHosts}}& {{#lambda.titlecase}}{{{dependencyName}}}RegionOptions{{/lambda.titlecase}}{{/dependencyHasRegionalHosts}}) => {{#lambda.titlecase}}{{{dependencyName}}}{{/lambda.titlecase}}Client;
26+
{{/withInitMethod}}
2727
{{/dependencies}}
2828
};
2929

@@ -49,9 +49,11 @@ export function algoliasearch(appId: string, apiKey: string, options?: ClientOpt
4949
},
5050

5151
{{#dependencies}}
52-
init{{#lambda.titlecase}}{{{dependencyName}}}{{/lambda.titlecase}}: (initOptions: InitClientOptions {{#dependencyHasRegionalHosts}}& {{#lambda.titlecase}}{{{dependencyName}}}RegionOptions{{/lambda.titlecase}}{{/dependencyHasRegionalHosts}}): {{#lambda.titlecase}}{{{dependencyName}}}{{/lambda.titlecase}}Client => {
52+
{{#withInitMethod}}
53+
init{{#lambda.titlecase}}{{{dependencyName}}}{{/lambda.titlecase}}: (initOptions: InitClientOptions {{#dependencyHasRegionalHosts}}& {{#lambda.titlecase}}{{{dependencyName}}}RegionOptions{{/lambda.titlecase}}{{/dependencyHasRegionalHosts}}{{^dependencyHasRegionalHosts}}={}{{/dependencyHasRegionalHosts}}): {{#lambda.titlecase}}{{{dependencyName}}}{{/lambda.titlecase}}Client => {
5354
return {{{dependencyName}}}Client(initOptions.appId || appId, initOptions.apiKey || apiKey, {{#dependencyHasRegionalHosts}}initOptions.region,{{/dependencyHasRegionalHosts}}initOptions.options);
5455
},
56+
{{/withInitMethod}}
5557

5658
{{/dependencies}}
5759
}

templates/javascript/clients/package.mustache

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,6 @@
123123
{{#dependencies}}
124124
"{{{dependencyPackage}}}": "{{{dependencyVersion}}}",
125125
{{/dependencies}}
126-
"@algolia/client-search": "{{searchVersion}}",
127126
"@algolia/client-common": "{{utilsPackageVersion}}",
128127
"@algolia/requester-browser-xhr": "{{utilsPackageVersion}}",
129128
"@algolia/requester-node-http": "{{utilsPackageVersion}}",
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
import { {{client}} } from '{{{import}}}';
1+
import { {{clientName}} } from '{{{importPackage}}}';
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
const client = {{client}}("ALGOLIA_APPLICATION_ID", "ALGOLIA_API_KEY", {{#hasRegionalHost}}'{{defaultRegion}}', {{/hasRegionalHost}});
1+
const client = {{{clientName}}}("ALGOLIA_APPLICATION_ID", "ALGOLIA_API_KEY"){{^isSearchClient}}.{{{initMethod}}}({{#hasRegionalHost}} {region: '{{defaultRegion}}'} {{/hasRegionalHost}}){{/isSearchClient}};

templates/javascript/snippets/package.mustache

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,7 @@
33
"version": "1.0.0",
44
"dependencies": {
55
"typescript": "5.6.3",
6-
"@algolia/client-abtesting": "link:../../../clients/algoliasearch-client-javascript/packages/client-abtesting",
7-
"@algolia/client-analytics": "link:../../../clients/algoliasearch-client-javascript/packages/client-analytics",
86
"@algolia/client-common": "link:../../../clients/algoliasearch-client-javascript/packages/client-common",
9-
"@algolia/client-insights": "link:../../../clients/algoliasearch-client-javascript/packages/client-insights",
10-
"@algolia/client-personalization": "link:../../../clients/algoliasearch-client-javascript/packages/client-personalization",
11-
"@algolia/client-query-suggestions": "link:../../../clients/algoliasearch-client-javascript/packages/client-query-suggestions",
12-
"@algolia/client-search": "link:../../../clients/algoliasearch-client-javascript/packages/client-search",
13-
"@algolia/ingestion": "link:../../../clients/algoliasearch-client-javascript/packages/ingestion",
14-
"@algolia/monitoring": "link:../../../clients/algoliasearch-client-javascript/packages/monitoring",
15-
"@algolia/recommend": "link:../../../clients/algoliasearch-client-javascript/packages/recommend",
167
"@algolia/requester-node-http": "link:../../../clients/algoliasearch-client-javascript/packages/requester-node-http",
178
"algoliasearch": "link:../../../clients/algoliasearch-client-javascript/packages/algoliasearch"
189
},

templates/javascript/tests/client/benchmark.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// {{generationBanner}}
22
import { describe, test, expect } from 'vitest';
33

4-
import { {{client}}, {{#lambda.titlecase}}{{client}}{{/lambda.titlecase}} } from '{{{import}}}';
4+
import { {{{clientName}}} } from '{{{importPackage}}}';
55

66
{{#blocksBenchmark}}
77
{{> tests/client/tests}}

templates/javascript/tests/client/client.mustache

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@
33
// @ts-nocheck Failing tests will have type errors, but we cannot suppress them even with @ts-expect-error because it doesn't work for a block of lines.
44
import { describe, test, expect } from 'vitest';
55

6-
import { {{client}}, {{#lambda.titlecase}}{{client}}{{/lambda.titlecase}} } from '{{{import}}}';
6+
import { {{{clientName}}} } from '{{{importPackage}}}';
77
import { nodeEchoRequester } from '@algolia/requester-testing';
88
import type { EchoResponse } from '@algolia/requester-testing';
99

1010
const appId = 'test-app-id';
1111
const apiKey = 'test-api-key';
1212

13-
function createClient(): {{#lambda.titlecase}}{{client}}{{/lambda.titlecase}} {
14-
return {{client}}(appId, apiKey, {{#hasRegionalHost}}'{{{defaultRegion}}}', {{/hasRegionalHost}}{ requester: nodeEchoRequester() });
13+
function createClient() {
14+
return {{{clientName}}}(appId, apiKey{{#isSearchClient}}, { requester: nodeEchoRequester() }{{/isSearchClient}}){{^isSearchClient}}.{{{initMethod}}}({ options: { requester: nodeEchoRequester() }, {{#hasRegionalHost}} region:'{{{defaultRegion}}}' {{/hasRegionalHost}} });{{/isSearchClient}};
1515
}
1616

1717
{{#blocksClient}}
@@ -20,14 +20,8 @@ function createClient(): {{#lambda.titlecase}}{{client}}{{/lambda.titlecase}} {
2020

2121
describe('init', () => {
2222
test('sets authMode', async () => {
23-
const qpClient = {{client}}('foo', 'bar', {{#hasRegionalHost}}'us',{{/hasRegionalHost}}{
24-
authMode: 'WithinQueryParameters',
25-
requester: nodeEchoRequester(),
26-
});
27-
const headerClient = {{client}}('foo', 'bar', {{#hasRegionalHost}}'us',{{/hasRegionalHost}}{
28-
authMode: 'WithinHeaders',
29-
requester: nodeEchoRequester(),
30-
});
23+
const qpClient = {{{clientName}}}('foo', 'bar'{{#isSearchClient}}, { requester: nodeEchoRequester(), authMode: 'WithinQueryParameters' }{{/isSearchClient}}){{^isSearchClient}}.{{{initMethod}}}({ options: { requester: nodeEchoRequester(), authMode: 'WithinQueryParameters' }, {{#hasRegionalHost}} region:'{{{defaultRegion}}}' {{/hasRegionalHost}} });{{/isSearchClient}};
24+
const headerClient = {{{clientName}}}('foo', 'bar'{{#isSearchClient}}, { requester: nodeEchoRequester(), authMode: 'WithinHeaders' }{{/isSearchClient}}){{^isSearchClient}}.{{{initMethod}}}({ options: { requester: nodeEchoRequester(), authMode: 'WithinHeaders' }, {{#hasRegionalHost}} region:'{{{defaultRegion}}}' {{/hasRegionalHost}} });{{/isSearchClient}};
3125

3226
const qpResult = (await qpClient.customGet({
3327
path: '1/foo',
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{{^autoCreateClient}}const client = {{/autoCreateClient}}{{client}}('{{parametersWithDataTypeMap.appId.value}}','{{parametersWithDataTypeMap.apiKey.value}}',{{#hasRegionalHost}}'{{parametersWithDataTypeMap.region.value}}',{{/hasRegionalHost}}{ {{#useEchoRequester}}requester: nodeEchoRequester(),{{/useEchoRequester}}{{#hasCustomHosts}}hosts:[{{#customHosts}}{ url: 'localhost', port: {{port}}, accept: 'readWrite', protocol: 'http' },{{/customHosts}}]{{/hasCustomHosts}} });
1+
{{^autoCreateClient}}const client = {{/autoCreateClient}}{{{clientName}}}('{{parametersWithDataTypeMap.appId.value}}', '{{parametersWithDataTypeMap.apiKey.value}}'{{#isSearchClient}}, { {{#useEchoRequester}}requester: nodeEchoRequester(),{{/useEchoRequester}}{{#hasCustomHosts}}hosts:[{{#customHosts}}{ url: 'localhost', port: {{port}}, accept: 'readWrite', protocol: 'http' },{{/customHosts}}]{{/hasCustomHosts}} }{{/isSearchClient}}){{^isSearchClient}}.{{{initMethod}}}({ options: { {{#useEchoRequester}}requester: nodeEchoRequester(),{{/useEchoRequester}} {{#hasCustomHosts}}hosts:[{{#customHosts}}{ url: 'localhost', port: {{port}}, accept: 'readWrite', protocol: 'http' },{{/customHosts}}]{{/hasCustomHosts}} }, {{#hasRegionalHost}} region:'{{{parametersWithDataTypeMap.region.value}}}' {{/hasRegionalHost}} }){{/isSearchClient}};

templates/javascript/tests/e2e/e2e.mustache

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { union } from '../helpers';
66
import * as dotenv from 'dotenv';
77

88
dotenv.config({path:'../../.env'});
9-
import { {{client}} } from '{{{import}}}';
9+
import { {{{clientName}}} } from '{{{importPackage}}}';
1010
import type { RequestOptions } from '@algolia/client-common';
1111

1212
if (!process.env.ALGOLIA_APPLICATION_ID) {
@@ -17,8 +17,7 @@ if (!process.env.{{e2eApiKey}}) {
1717
throw new Error("please provide an `{{e2eApiKey}}` env var for e2e tests");
1818
}
1919

20-
const client = {{client}}(process.env.ALGOLIA_APPLICATION_ID, process.env.{{e2eApiKey}}, {{#hasRegionalHost}}'{{{defaultRegion}}}'{{/hasRegionalHost}});
21-
20+
const client = {{{clientName}}}(process.env.ALGOLIA_APPLICATION_ID, process.env.{{e2eApiKey}}){{^isSearchClient}}.{{{initMethod}}}({{#hasRegionalHost}} {region:'{{{defaultRegion}}}'} {{/hasRegionalHost}}){{/isSearchClient}};
2221

2322
{{#blocksE2E}}
2423
describe('{{operationId}}', () => {

templates/javascript/tests/package.mustache

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,7 @@
55
"test": "tsc --noEmit && vitest run"
66
},
77
"dependencies": {
8-
{{#packageDependencies}}
9-
"{{{packageName}}}": "{{{packagePath}}}",
10-
{{/packageDependencies}}
8+
"algoliasearch": "link:../../../clients/algoliasearch-client-javascript/packages/algoliasearch",
119
"@algolia/client-common": "link:../../../clients/algoliasearch-client-javascript/packages/client-common",
1210
"@algolia/requester-testing": "link:../../../clients/algoliasearch-client-javascript/packages/requester-testing"
1311
},

templates/javascript/tests/requests/requests.mustache

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
// {{generationBanner}}
22
import { describe, test, expect } from 'vitest';
33

4-
import { {{client}} } from '{{{import}}}';
4+
import { {{{clientName}}} } from '{{{importPackage}}}';
55
import { nodeEchoRequester } from '@algolia/requester-testing';
66
import type { EchoResponse } from '@algolia/requester-testing';
77
import type { RequestOptions } from '@algolia/client-common';
88

99
const appId = process.env.ALGOLIA_APPLICATION_ID || 'test_app_id';
1010
const apiKey = process.env.ALGOLIA_SEARCH_KEY || 'test_api_key';
1111

12-
const client = {{client}}(appId, apiKey, {{#hasRegionalHost}}'{{{defaultRegion}}}', {{/hasRegionalHost}}{ requester: nodeEchoRequester() });
12+
const client = {{{clientName}}}(appId, apiKey{{#isSearchClient}}, { requester: nodeEchoRequester() }{{/isSearchClient}}){{^isSearchClient}}.{{{initMethod}}}({ options: { requester: nodeEchoRequester() }, {{#hasRegionalHost}} region:'{{{defaultRegion}}}' {{/hasRegionalHost}} });{{/isSearchClient}};
1313

1414
{{#blocksRequests}}
1515
describe('{{operationId}}', () => {

0 commit comments

Comments
 (0)