Skip to content

Commit 3b601be

Browse files
committed
remove packageName
1 parent 9fb7927 commit 3b601be

File tree

6 files changed

+33
-34
lines changed

6 files changed

+33
-34
lines changed

config/openapitools.json

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,72 +6,62 @@
66
"output": "#{cwd}/clients/algoliasearch-client-javascript/packages/client-search",
77
"reservedWordsMappings": "queryParameters=queryParameters,requestOptions=requestOptions",
88
"additionalProperties": {
9-
"packageName": "client-search",
109
"packageVersion": "0.5.0"
1110
}
1211
},
1312
"javascript-algoliasearch-lite": {
1413
"output": "#{cwd}/clients/algoliasearch-client-javascript/packages/algoliasearch-lite",
1514
"reservedWordsMappings": "queryParameters=queryParameters,requestOptions=requestOptions",
1615
"additionalProperties": {
17-
"packageName": "algoliasearch-lite",
1816
"packageVersion": "0.5.0"
1917
}
2018
},
2119
"javascript-recommend": {
2220
"output": "#{cwd}/clients/algoliasearch-client-javascript/packages/recommend",
2321
"reservedWordsMappings": "queryParameters=queryParameters",
2422
"additionalProperties": {
25-
"packageName": "recommend",
2623
"packageVersion": "0.5.0"
2724
}
2825
},
2926
"javascript-personalization": {
3027
"output": "#{cwd}/clients/algoliasearch-client-javascript/packages/client-personalization",
3128
"additionalProperties": {
32-
"packageName": "client-personalization",
3329
"packageVersion": "0.5.0"
3430
}
3531
},
3632
"javascript-analytics": {
3733
"output": "#{cwd}/clients/algoliasearch-client-javascript/packages/client-analytics",
3834
"additionalProperties": {
39-
"packageName": "client-analytics",
4035
"packageVersion": "0.5.0"
4136
}
4237
},
4338
"javascript-insights": {
4439
"output": "#{cwd}/clients/algoliasearch-client-javascript/packages/client-insights",
4540
"additionalProperties": {
46-
"packageName": "client-insights",
4741
"packageVersion": "0.5.0"
4842
}
4943
},
5044
"javascript-abtesting": {
5145
"output": "#{cwd}/clients/algoliasearch-client-javascript/packages/client-abtesting",
5246
"additionalProperties": {
53-
"packageName": "client-abtesting",
5447
"packageVersion": "0.5.0"
5548
}
5649
},
5750
"javascript-query-suggestions": {
5851
"output": "#{cwd}/clients/algoliasearch-client-javascript/packages/client-query-suggestions",
5952
"additionalProperties": {
60-
"packageName": "client-query-suggestions",
6153
"packageVersion": "0.5.0"
6254
}
6355
},
6456
"javascript-sources": {
6557
"output": "#{cwd}/clients/algoliasearch-client-javascript/packages/client-sources",
6658
"additionalProperties": {
67-
"packageName": "client-sources",
6859
"packageVersion": "0.5.0"
6960
}
7061
},
7162
"javascript-predict": {
7263
"output": "#{cwd}/clients/algoliasearch-client-javascript/packages/client-predict",
7364
"additionalProperties": {
74-
"packageName": "client-predict",
7565
"packageVersion": "0.5.0"
7666
}
7767
},

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

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,14 @@ public class JavaScriptCTSManager implements CTSManager {
1111

1212
private final String client;
1313
private final JsonNode openApiToolsConfig;
14+
private final String packageName;
1415

1516
public JavaScriptCTSManager(String client) {
1617
this.client = client;
1718
this.openApiToolsConfig = Utils.readJsonFile("config/openapitools.json").get("generator-cli").get("generators");
19+
20+
String output = this.openApiToolsConfig.get("javascript-" + client).get("output").asText();
21+
this.packageName = Utils.getClientConfigField("javascript", "npmNamespace") + "/" + output.substring(output.lastIndexOf('/') + 1);
1822
}
1923

2024
@Override
@@ -26,7 +30,7 @@ public void addSupportingFiles(List<SupportingFile> supportingFiles) {
2630
public void addDataToBundle(Map<String, Object> bundle) throws GeneratorException {
2731
bundle.put("packageDependencies", this.getPackageDependencies());
2832
bundle.put("utilsPackageVersion", Utils.getClientConfigField("javascript", "utilsPackageVersion"));
29-
bundle.put("import", openApiToolsConfig.get("javascript-" + client).get("additionalProperties").get("packageName").asText());
33+
bundle.put("import", this.packageName);
3034
}
3135

3236
private List<Map<String, String>> getPackageDependencies() {
@@ -38,8 +42,9 @@ private List<Map<String, String>> getPackageDependencies() {
3842
}
3943
JsonNode generator = field.getValue();
4044
JsonNode additionalProperties = generator.get("additionalProperties");
41-
String packageName = additionalProperties.get("packageName").asText();
45+
String output = generator.get("output").asText();
4246
String packageVersion = additionalProperties.get("packageVersion").asText();
47+
String packageName = output.substring(output.lastIndexOf('/') + 1);
4348

4449
Map<String, String> newEntry = new HashMap<>();
4550
newEntry.put("packageName", packageName);

scripts/buildClients.ts

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { CI, run } from './common';
2-
import { getLanguageFolder } from './config';
2+
import { getClientsConfigField, getLanguageFolder } from './config';
33
import { createSpinner } from './oraLog';
44
import type { Generator } from './types';
55

@@ -13,13 +13,18 @@ async function buildPerClient(
1313
verbose: boolean
1414
): Promise<void> {
1515
const spinner = createSpinner(`building ${key}`, verbose).start();
16+
const npmNamespace = getClientsConfigField(language, 'npmNamespace');
17+
1618
switch (language) {
1719
case 'javascript':
18-
await run(`yarn workspace ${additionalProperties?.packageName} clean`, {
19-
verbose,
20-
});
2120
await run(
22-
`SKIP_UTILS=true yarn workspace algoliasearch-client-javascript build ${additionalProperties?.packageName}`,
21+
`yarn workspace ${npmNamespace}/${additionalProperties.packageName} clean`,
22+
{
23+
verbose,
24+
}
25+
);
26+
await run(
27+
`SKIP_UTILS=true yarn workspace algoliasearch-client-javascript build ${npmNamespace}/${additionalProperties.packageName}`,
2328
{ verbose }
2429
);
2530
break;

scripts/common.ts

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ export const ROOT_DIR = path.resolve(process.cwd(), '..');
3535
export const ROOT_ENV_PATH = path.resolve(ROOT_DIR, '.env');
3636

3737
export const GENERATORS: Record<string, Generator> = {
38-
// Default `algoliasearch` package as it's built similarly to generated clients
38+
// Default `algoliasearch` package as it's an aggregation of generated clients
3939
'javascript-algoliasearch': {
4040
language: 'javascript',
4141
client: 'algoliasearch',
@@ -49,12 +49,23 @@ export const GENERATORS: Record<string, Generator> = {
4949

5050
// Build `GENERATORS` from the openapitools file
5151
Object.entries(openapiConfig['generator-cli'].generators).forEach(
52-
([key, gen]) => {
52+
([key, { output, ...gen }]) => {
53+
const language = key.slice(0, key.indexOf('-')) as Language;
54+
5355
GENERATORS[key] = {
56+
additionalProperties: {},
5457
...gen,
55-
output: gen.output.replace('#{cwd}/', ''),
56-
...splitGeneratorKey(key),
58+
output: output.replace('#{cwd}/', ''),
59+
client: key.slice(key.indexOf('-') + 1),
60+
language,
61+
key,
5762
};
63+
64+
if (language === 'javascript') {
65+
GENERATORS[key].additionalProperties.packageName = output.substring(
66+
output.lastIndexOf('/') + 1
67+
);
68+
}
5869
}
5970
);
6071

@@ -76,17 +87,6 @@ export const CLIENTS = CLIENTS_JS.filter(
7687
(client) => client !== 'algoliasearch'
7788
);
7889

79-
/**
80-
* Takes a generator key in the form 'language-client' and returns the Generator object.
81-
*/
82-
export function splitGeneratorKey(
83-
generatorKey: string
84-
): Pick<Generator, 'client' | 'key' | 'language'> {
85-
const language = generatorKey.slice(0, generatorKey.indexOf('-')) as Language;
86-
const client = generatorKey.slice(generatorKey.indexOf('-') + 1);
87-
return { language, client, key: generatorKey };
88-
}
89-
9090
export function createGeneratorKey({
9191
language,
9292
client,

scripts/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ export type Generator = Record<string, any> & {
2323
language: Language;
2424
client: string;
2525
key: string;
26-
additionalProperties?: AdditionalProperties;
26+
additionalProperties: AdditionalProperties;
2727
};
2828

2929
export type AdditionalProperties = Partial<{

website/docs/contributing/add-new-api-client.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@ Below are the options you need to **make sure to define for your client**, other
6666
| Option | File | Language | Description |
6767
| --------------------- | :-------------------: | :---------------------: | -------------------------------------------------------------------------------------------------------------------- |
6868
| `output` | `openapitools.json` | All | The output path of the client. |
69-
| `packageName` | `openapitools.json` | JavaScript | Name of the API package, used in [CTS](/docs/contributing/testing/common-test-suite). |
7069
| `packageVersion` | `openapitools.json` | JavaScript | The version you'd like to publish the first iteration of the generated client. It will be automatically incremented. |
7170
| `utilsPackageVersion` | `clients.config.json` | JavaScript | The version of the utils package. Every utils package should have synchronized version. |
7271
| `packageVersion` | `clients.config.json` | All (except JavaScript) | The version you'd like to publish the first iteration of the generated client. It will be automatically incremented. |

0 commit comments

Comments
 (0)