Skip to content

Commit

Permalink
fix(cts): generate lock and package.json for javascript (#1721)
Browse files Browse the repository at this point in the history
  • Loading branch information
shortcuts committed Jul 10, 2023
1 parent e51e5cf commit 8827b72
Show file tree
Hide file tree
Showing 4 changed files with 534 additions and 513 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,18 +15,47 @@ public JavaScriptCTSManager(String client) {
}

@Override
public void addSupportingFiles(List<SupportingFile> supportingFiles) {}
public void addSupportingFiles(List<SupportingFile> supportingFiles) {
supportingFiles.add(new SupportingFile("package.mustache", "", "package.json"));
}

@Override
public void addDataToBundle(Map<String, Object> bundle) throws GeneratorException {
String npmNamespace = Utils.getClientConfigField("javascript", "npmNamespace");

bundle.put("utilsPackageVersion", Utils.getClientConfigField("javascript", "utilsPackageVersion"));
bundle.put("npmNamespace", Utils.getClientConfigField("javascript", "npmNamespace"));
bundle.put("npmNamespace", npmNamespace);

JsonNode openApiToolsConfig = Utils.readJsonFile("config/openapitools.json").get("generator-cli").get("generators");
Iterator<Map.Entry<String, JsonNode>> fields = openApiToolsConfig.fields();
List<Map<String, String>> clients = new ArrayList<>();

while (fields.hasNext()) {
Map.Entry<String, JsonNode> field = fields.next();

if (!field.getKey().startsWith("javascript-")) {
continue;
}

Map<String, String> client = new HashMap<>();
JsonNode additionalProperties = field.getValue().get("additionalProperties");
String packageName = additionalProperties.get("packageName").asText();

client.put("packagePath", "link:../../../clients/algoliasearch-client-javascript/packages/" + packageName);

if (!packageName.equals("algoliasearch")) {
packageName = npmNamespace + "/" + packageName;
}

client.put("packageName", packageName);

clients.add(client);
}

String output = openApiToolsConfig.get("javascript-" + client).get("output").asText();
String clientName = output.substring(output.lastIndexOf('/') + 1);
String npmNamespace = Utils.getClientConfigField("javascript", "npmNamespace");

bundle.put("packageDependencies", clients);

if (clientName.equals("algoliasearch")) {
bundle.put("import", "algoliasearch/lite");
Expand Down
5 changes: 5 additions & 0 deletions scripts/cts/generate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,11 @@ export async function ctsGenerateMany(generators: Generator[]): Promise<void> {
if (!getTestOutputFolder(lang)) {
continue;
}

if (lang === 'javascript') {
await run('yarn install', { cwd: 'tests/output/javascript' });
}

await formatter(lang, toAbsolutePath(`tests/output/${lang}`));
}
}
10 changes: 5 additions & 5 deletions templates/javascript/tests/package.mustache
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@
"name": "javascript-tests",
"version": "1.0.0",
"scripts": {
"test": "jest"
"test": "jest --passWithNoTests"
},
"dependencies": {
{{#packageDependencies}}
"{{{npmNamespace}}}/{{{packageName}}}": "{{packageVersion}}",
"{{{packageName}}}": "{{{packagePath}}}",
{{/packageDependencies}}
"{{{npmNamespace}}}/client-common": "{{utilsPackageVersion}}",
"{{{npmNamespace}}}/requester-node-http": "{{utilsPackageVersion}}"
"{{{npmNamespace}}}/client-common": "link:../../../clients/algoliasearch-client-javascript/packages/client-common",
"{{{npmNamespace}}}/requester-node-http": "link:../../../clients/algoliasearch-client-javascript/packages/requester-node-http"
},
"devDependencies": {
"@types/jest": "29.5.2",
Expand All @@ -19,4 +19,4 @@
"ts-node": "10.9.1",
"typescript": "5.0.4"
}
}
}
Loading

0 comments on commit 8827b72

Please sign in to comment.