Skip to content

Commit

Permalink
feat(javascript): assert algoliasearch bundle
Browse files Browse the repository at this point in the history
  • Loading branch information
shortcuts committed Oct 18, 2024
1 parent 368900d commit 6ab98d7
Show file tree
Hide file tree
Showing 9 changed files with 29 additions and 112 deletions.
3 changes: 2 additions & 1 deletion clients/algoliasearch-client-javascript/yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ __metadata:
languageName: unknown
linkType: soft

"@algolia/client-search@workspace:packages/client-search":
"@algolia/client-search@npm:5.9.0, @algolia/client-search@workspace:packages/client-search":
version: 0.0.0-use.local
resolution: "@algolia/client-search@workspace:packages/client-search"
dependencies:
Expand Down Expand Up @@ -2082,6 +2082,7 @@ __metadata:
"@algolia/client-insights": "npm:5.9.0"
"@algolia/client-personalization": "npm:5.9.0"
"@algolia/client-query-suggestions": "npm:5.9.0"
"@algolia/client-search": "npm:5.9.0"
"@algolia/ingestion": "npm:1.9.0"
"@algolia/monitoring": "npm:1.9.0"
"@algolia/recommend": "npm:5.9.0"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -165,14 +165,15 @@ private void setDefaultGeneratorOptions() {
List<Map<String, Object>> packages = Helpers.getClientConfigList("javascript", "clients");
for (Map<String, Object> pkg : packages) {
String name = ((String) pkg.get("output")).replace("clients/algoliasearch-client-javascript/packages/", "");
if (name.contains("search")) {
if (name.contains("algoliasearch")) {
continue;
}

var dependency = new HashMap<String, Object>();
dependency.put("dependencyName", Helpers.createClientName((String) pkg.get("name"), "javascript"));
dependency.put("dependencyPackage", "@algolia/" + name);
dependency.put("dependencyVersion", Helpers.getPackageJsonVersion(name));
dependency.put("withInitMethod", !name.contains("search"));
dependency.put(
"dependencyHasRegionalHosts",
!name.contains("search") && !name.contains("recommend") && !name.contains("monitoring")
Expand All @@ -181,7 +182,6 @@ private void setDefaultGeneratorOptions() {
dependencies.add(dependency);
}
additionalProperties.put("dependencies", dependencies);
additionalProperties.put("searchVersion", Helpers.getPackageJsonVersion("client-search"));

// Files used to generate the `lite` client
clientName = "lite" + Helpers.API_SUFFIX;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import com.algolia.codegen.AlgoliaJavascriptGenerator;
import com.algolia.codegen.exceptions.GeneratorException;
import com.algolia.codegen.utils.*;
import com.fasterxml.jackson.databind.JsonNode;
import java.util.*;
import org.openapitools.codegen.SupportingFile;

Expand Down Expand Up @@ -45,27 +44,7 @@ public void addSnippetsSupportingFiles(List<SupportingFile> supportingFiles, Str
@Override
public void addDataToBundle(Map<String, Object> bundle) throws GeneratorException {
bundle.put("utilsPackageVersion", Helpers.getPackageJsonVersion("client-common"));

List<Map<String, String>> clients = new ArrayList<>();
String importName = "";

Iterator<JsonNode> clientIterator = Helpers.getClientConfig("javascript").get("clients").elements();
while (clientIterator.hasNext()) {
JsonNode c = clientIterator.next();
String output = c.get("output").asText();
String packageName = output.substring(output.lastIndexOf("/") + 1);
if (!packageName.equals("algoliasearch")) {
packageName = "@algolia/" + packageName;
}

clients.add(Map.of("packageName", packageName, "packagePath", "link:../../../" + output.replace("#{cwd}/", "")));

if (c.get("name").asText().equals(client)) {
importName = packageName.replace("algoliasearch", "algoliasearch/lite");
}
}

bundle.put("packageDependencies", clients);
bundle.put("import", importName);
bundle.put("algoliasearchVersion", Helpers.getPackageJsonVersion("algoliasearch"));
bundle.put("initMethod", "init" + Helpers.capitalize(Helpers.camelize(client)));
}
}
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
"build": "yarn build:eslint && yarn scripts:build",
"build:eslint": "yarn workspace eslint-plugin-automation-custom build && yarn install",
"clean": "rm -rf **/dist **/build **/.build **/node_modules **/.gradle **/vendor **/bin **/obj **/__pycache__ || true",
"cli": "yarn workspace scripts start",
"cli": "cd scripts && yarn build:cli && yarn start",
"docker:setup": "./scripts/docker/setup.sh",
"fix:json": "eslint --ext=json . --fix",
"fix:mustache": "eslint --ext=mustache templates/**/tests/ --fix",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
// {{{generationBanner}}}

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

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

export type Algoliasearch = SearchClient & {
{{#dependencies}}
{{#withInitMethod}}
init{{#lambda.titlecase}}{{{dependencyName}}}{{/lambda.titlecase}}: (initOptions: InitClientOptions {{#dependencyHasRegionalHosts}}& {{#lambda.titlecase}}{{{dependencyName}}}RegionOptions{{/lambda.titlecase}}{{/dependencyHasRegionalHosts}}) => {{#lambda.titlecase}}{{{dependencyName}}}{{/lambda.titlecase}}Client;
{{/withInitMethod}}
{{/dependencies}}
};

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

{{#dependencies}}
{{#withInitMethod}}
init{{#lambda.titlecase}}{{{dependencyName}}}{{/lambda.titlecase}}: (initOptions: InitClientOptions {{#dependencyHasRegionalHosts}}& {{#lambda.titlecase}}{{{dependencyName}}}RegionOptions{{/lambda.titlecase}}{{/dependencyHasRegionalHosts}}): {{#lambda.titlecase}}{{{dependencyName}}}{{/lambda.titlecase}}Client => {
return {{{dependencyName}}}Client(initOptions.appId || appId, initOptions.apiKey || apiKey, {{#dependencyHasRegionalHosts}}initOptions.region,{{/dependencyHasRegionalHosts}}initOptions.options);
},
{{/withInitMethod}}

{{/dependencies}}
}
Expand Down
1 change: 0 additions & 1 deletion templates/javascript/clients/package.mustache
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,6 @@
{{#dependencies}}
"{{{dependencyPackage}}}": "{{{dependencyVersion}}}",
{{/dependencies}}
"@algolia/client-search": "{{searchVersion}}",
"@algolia/client-common": "{{utilsPackageVersion}}",
"@algolia/requester-browser-xhr": "{{utilsPackageVersion}}",
"@algolia/requester-node-http": "{{utilsPackageVersion}}",
Expand Down
4 changes: 1 addition & 3 deletions templates/javascript/tests/package.mustache
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,7 @@
"test": "tsc --noEmit && vitest run"
},
"dependencies": {
{{#packageDependencies}}
"{{{packageName}}}": "{{{packagePath}}}",
{{/packageDependencies}}
"algoliasearch": "link:../../../clients/algoliasearch-client-javascript/packages/algoliasearch",
"@algolia/client-common": "link:../../../clients/algoliasearch-client-javascript/packages/client-common",
"@algolia/requester-testing": "link:../../../clients/algoliasearch-client-javascript/packages/requester-testing"
},
Expand Down
5 changes: 3 additions & 2 deletions templates/javascript/tests/requests/requests.mustache
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
// {{generationBanner}}
import { describe, test, expect } from 'vitest';

import { {{client}} } from '{{{import}}}';
import { algoliasearch } from 'algoliasearch';
import { nodeEchoRequester } from '@algolia/requester-testing';
import type { EchoResponse } from '@algolia/requester-testing';
import type { RequestOptions } from '@algolia/client-common';

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

const client = {{client}}(appId, apiKey, {{#hasRegionalHost}}'{{{defaultRegion}}}', {{/hasRegionalHost}}{ requester: nodeEchoRequester() });
const algoliasearchClient = algoliasearch(appId, apiKey);
const client = algoliasearchClient.{{{initMethod}}}({ {{#hasRegionalHost}}region:'{{{defaultRegion}}}',{{/hasRegionalHost}} options: { requester: nodeEchoRequester() }});

{{#blocksRequests}}
describe('{{operationId}}', () => {
Expand Down
91 changes: 14 additions & 77 deletions tests/output/javascript/yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -5,66 +5,12 @@ __metadata:
version: 8
cacheKey: 10

"@algolia/client-abtesting@link:../../../clients/algoliasearch-client-javascript/packages/client-abtesting::locator=javascript-tests%40workspace%3A.":
version: 0.0.0-use.local
resolution: "@algolia/client-abtesting@link:../../../clients/algoliasearch-client-javascript/packages/client-abtesting::locator=javascript-tests%40workspace%3A."
languageName: node
linkType: soft

"@algolia/client-analytics@link:../../../clients/algoliasearch-client-javascript/packages/client-analytics::locator=javascript-tests%40workspace%3A.":
version: 0.0.0-use.local
resolution: "@algolia/client-analytics@link:../../../clients/algoliasearch-client-javascript/packages/client-analytics::locator=javascript-tests%40workspace%3A."
languageName: node
linkType: soft

"@algolia/client-common@link:../../../clients/algoliasearch-client-javascript/packages/client-common::locator=javascript-tests%40workspace%3A.":
version: 0.0.0-use.local
resolution: "@algolia/client-common@link:../../../clients/algoliasearch-client-javascript/packages/client-common::locator=javascript-tests%40workspace%3A."
languageName: node
linkType: soft

"@algolia/client-insights@link:../../../clients/algoliasearch-client-javascript/packages/client-insights::locator=javascript-tests%40workspace%3A.":
version: 0.0.0-use.local
resolution: "@algolia/client-insights@link:../../../clients/algoliasearch-client-javascript/packages/client-insights::locator=javascript-tests%40workspace%3A."
languageName: node
linkType: soft

"@algolia/client-personalization@link:../../../clients/algoliasearch-client-javascript/packages/client-personalization::locator=javascript-tests%40workspace%3A.":
version: 0.0.0-use.local
resolution: "@algolia/client-personalization@link:../../../clients/algoliasearch-client-javascript/packages/client-personalization::locator=javascript-tests%40workspace%3A."
languageName: node
linkType: soft

"@algolia/client-query-suggestions@link:../../../clients/algoliasearch-client-javascript/packages/client-query-suggestions::locator=javascript-tests%40workspace%3A.":
version: 0.0.0-use.local
resolution: "@algolia/client-query-suggestions@link:../../../clients/algoliasearch-client-javascript/packages/client-query-suggestions::locator=javascript-tests%40workspace%3A."
languageName: node
linkType: soft

"@algolia/client-search@link:../../../clients/algoliasearch-client-javascript/packages/client-search::locator=javascript-tests%40workspace%3A.":
version: 0.0.0-use.local
resolution: "@algolia/client-search@link:../../../clients/algoliasearch-client-javascript/packages/client-search::locator=javascript-tests%40workspace%3A."
languageName: node
linkType: soft

"@algolia/ingestion@link:../../../clients/algoliasearch-client-javascript/packages/ingestion::locator=javascript-tests%40workspace%3A.":
version: 0.0.0-use.local
resolution: "@algolia/ingestion@link:../../../clients/algoliasearch-client-javascript/packages/ingestion::locator=javascript-tests%40workspace%3A."
languageName: node
linkType: soft

"@algolia/monitoring@link:../../../clients/algoliasearch-client-javascript/packages/monitoring::locator=javascript-tests%40workspace%3A.":
version: 0.0.0-use.local
resolution: "@algolia/monitoring@link:../../../clients/algoliasearch-client-javascript/packages/monitoring::locator=javascript-tests%40workspace%3A."
languageName: node
linkType: soft

"@algolia/recommend@link:../../../clients/algoliasearch-client-javascript/packages/recommend::locator=javascript-tests%40workspace%3A.":
version: 0.0.0-use.local
resolution: "@algolia/recommend@link:../../../clients/algoliasearch-client-javascript/packages/recommend::locator=javascript-tests%40workspace%3A."
languageName: node
linkType: soft

"@algolia/requester-testing@link:../../../clients/algoliasearch-client-javascript/packages/requester-testing::locator=javascript-tests%40workspace%3A.":
version: 0.0.0-use.local
resolution: "@algolia/requester-testing@link:../../../clients/algoliasearch-client-javascript/packages/requester-testing::locator=javascript-tests%40workspace%3A."
Expand Down Expand Up @@ -408,12 +354,12 @@ __metadata:
languageName: node
linkType: hard

"@types/node@npm:22.7.4":
version: 22.7.4
resolution: "@types/node@npm:22.7.4"
"@types/node@npm:22.7.5":
version: 22.7.5
resolution: "@types/node@npm:22.7.5"
dependencies:
undici-types: "npm:~6.19.2"
checksum: 10/19ddab80c4eba2253c855ed67c9bbc47417183049d01e59010a738bd80d47338bab79fd1f44ae51516bd63a1db4bf21ddb38b16bf6401a2e93252068ec52e88b
checksum: 10/e8ba102f8c1aa7623787d625389be68d64e54fcbb76d41f6c2c64e8cf4c9f4a2370e7ef5e5f1732f3c57529d3d26afdcb2edc0101c5e413a79081449825c57ac
languageName: node
linkType: hard

Expand Down Expand Up @@ -1029,21 +975,12 @@ __metadata:
version: 0.0.0-use.local
resolution: "javascript-tests@workspace:."
dependencies:
"@algolia/client-abtesting": "link:../../../clients/algoliasearch-client-javascript/packages/client-abtesting"
"@algolia/client-analytics": "link:../../../clients/algoliasearch-client-javascript/packages/client-analytics"
"@algolia/client-common": "link:../../../clients/algoliasearch-client-javascript/packages/client-common"
"@algolia/client-insights": "link:../../../clients/algoliasearch-client-javascript/packages/client-insights"
"@algolia/client-personalization": "link:../../../clients/algoliasearch-client-javascript/packages/client-personalization"
"@algolia/client-query-suggestions": "link:../../../clients/algoliasearch-client-javascript/packages/client-query-suggestions"
"@algolia/client-search": "link:../../../clients/algoliasearch-client-javascript/packages/client-search"
"@algolia/ingestion": "link:../../../clients/algoliasearch-client-javascript/packages/ingestion"
"@algolia/monitoring": "link:../../../clients/algoliasearch-client-javascript/packages/monitoring"
"@algolia/recommend": "link:../../../clients/algoliasearch-client-javascript/packages/recommend"
"@algolia/requester-testing": "link:../../../clients/algoliasearch-client-javascript/packages/requester-testing"
"@types/node": "npm:22.7.4"
"@types/node": "npm:22.7.5"
algoliasearch: "link:../../../clients/algoliasearch-client-javascript/packages/algoliasearch"
dotenv: "npm:16.4.5"
typescript: "npm:5.6.2"
typescript: "npm:5.6.3"
vitest: "npm:2.1.2"
languageName: unknown
linkType: soft
Expand Down Expand Up @@ -1608,23 +1545,23 @@ __metadata:
languageName: node
linkType: hard

"typescript@npm:5.6.2":
version: 5.6.2
resolution: "typescript@npm:5.6.2"
"typescript@npm:5.6.3":
version: 5.6.3
resolution: "typescript@npm:5.6.3"
bin:
tsc: bin/tsc
tsserver: bin/tsserver
checksum: 10/f95365d4898f357823e93d334ecda9fcade54f009b397c7d05b7621cd9e865981033cf89ccde0f3e3a7b73b1fdbae18e92bc77db237b43e912f053fef0f9a53b
checksum: 10/c328e418e124b500908781d9f7b9b93cf08b66bf5936d94332b463822eea2f4e62973bfb3b8a745fdc038785cb66cf59d1092bac3ec2ac6a3e5854687f7833f1
languageName: node
linkType: hard

"typescript@patch:typescript@npm%3A5.6.2#optional!builtin<compat/typescript>":
version: 5.6.2
resolution: "typescript@patch:typescript@npm%3A5.6.2#optional!builtin<compat/typescript>::version=5.6.2&hash=b45daf"
"typescript@patch:typescript@npm%3A5.6.3#optional!builtin<compat/typescript>":
version: 5.6.3
resolution: "typescript@patch:typescript@npm%3A5.6.3#optional!builtin<compat/typescript>::version=5.6.3&hash=b45daf"
bin:
tsc: bin/tsc
tsserver: bin/tsserver
checksum: 10/060a7349adf698477b411be4ace470aee6c2c1bd99917fdf5d33697c17ec55c64fe724eb10399387530b50e9913b41528dd8bfcca0a5fc8f8bac63fbb4580a2e
checksum: 10/dc4bec403cd33a204b655b1152a096a08e7bad2c931cb59ef8ff26b6f2aa541bf98f09fc157958a60c921b1983a8dde9a85b692f9de60fa8f574fd131e3ae4dd
languageName: node
linkType: hard

Expand Down

0 comments on commit 6ab98d7

Please sign in to comment.