@accelbyte/codegen 2.0.0 → 2.1.0-experimental.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -12
- package/dist/accelbyte-codegen.js +109 -115
- package/dist/accelbyte-codegen.js.map +1 -1
- package/dist/accelbyte-codegen.mjs +109 -115
- package/dist/accelbyte-codegen.mjs.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -90,18 +90,7 @@ if it is successful the result will look like this, and the WebSDK code should b
|
|
|
90
90
|
```
|
|
91
91
|
----------
|
|
92
92
|
Generating API: { title: 'justice-iam-service', version: '7.4.0' }
|
|
93
|
-
!!!! Missing x-version
|
|
94
|
-
description: 'Justice IAM Service',
|
|
95
|
-
title: 'justice-iam-service',
|
|
96
|
-
contact: {
|
|
97
|
-
name: 'Engineering Team at AccelByte',
|
|
98
|
-
url: 'https://accelbyte.io',
|
|
99
|
-
email: 'engineering@accelbyte.io'
|
|
100
|
-
},
|
|
101
|
-
version: '7.4.0',
|
|
102
|
-
gitHash: '7.4.0'
|
|
103
|
-
}
|
|
104
|
-
|
|
93
|
+
!!!! Missing x-version ...
|
|
105
94
|
COMPLETED
|
|
106
95
|
----------
|
|
107
96
|
```
|
|
@@ -72,9 +72,6 @@ class CliParser {
|
|
|
72
72
|
static getResolvedSwaggersOutputPath = () => {
|
|
73
73
|
return path__namespace.resolve(CliParser.getSwaggersOutputPath());
|
|
74
74
|
};
|
|
75
|
-
static isAdmin = () => {
|
|
76
|
-
return CliParser.instance().argv.admin;
|
|
77
|
-
};
|
|
78
75
|
static getSnippetOutputPath = () => {
|
|
79
76
|
return CliParser.instance().argv.snippetOutput;
|
|
80
77
|
};
|
|
@@ -103,7 +100,9 @@ const generateImports = (body, importStatements, makeNewImportVarMap2, getImport
|
|
|
103
100
|
}
|
|
104
101
|
}
|
|
105
102
|
}
|
|
106
|
-
const generatedImports = Object.keys(usedImportVarMap).sort().map((moduleSource) =>
|
|
103
|
+
const generatedImports = Object.keys(usedImportVarMap).sort().map((moduleSource) => {
|
|
104
|
+
return `import { ${usedImportVarMap[moduleSource].sort().join(", ")} } from '${moduleSource}'`;
|
|
105
|
+
}).join("\n");
|
|
107
106
|
return `${generatedImports}
|
|
108
107
|
${importStatements.sort().join("\n")}`;
|
|
109
108
|
};
|
|
@@ -149,12 +148,10 @@ export function ${className}(sdk: AccelbyteSDK, args?: ApiArgs) {
|
|
|
149
148
|
`;
|
|
150
149
|
};
|
|
151
150
|
|
|
152
|
-
const VersionBumpType = zod.z.enum(["CUTOFF", "RELEASE", "HOTFIX"]);
|
|
151
|
+
const VersionBumpType = zod.z.enum(["CUTOFF", "RELEASE", "HOTFIX", "BREAKING"]);
|
|
153
152
|
class VersionHelpers {
|
|
154
153
|
static getNextVersion = ({
|
|
155
|
-
codegenVersion,
|
|
156
154
|
serviceVersion,
|
|
157
|
-
predefinedMajorVersion,
|
|
158
155
|
versionBumpType,
|
|
159
156
|
sdkVersion,
|
|
160
157
|
nextPrereleaseId
|
|
@@ -168,12 +165,8 @@ class VersionHelpers {
|
|
|
168
165
|
throw new Error(`process.env.PRERELEASE_ID should be empty when process.env.VERSION_BUMP_TYPE is "HOTFIX" or "PRELEASE".`);
|
|
169
166
|
}
|
|
170
167
|
}
|
|
171
|
-
const codegenSemvers = semver.parse(codegenVersion);
|
|
172
168
|
const serviceSemvers = semver.parse(serviceVersion);
|
|
173
169
|
const sdkSemvers = semver.parse(sdkVersion);
|
|
174
|
-
if (codegenSemvers === null) {
|
|
175
|
-
throw new Error(`Invalid codegen version: ${codegenVersion}`);
|
|
176
|
-
}
|
|
177
170
|
if (serviceSemvers === null) {
|
|
178
171
|
throw new Error(`Invalid service version: ${serviceVersion}`);
|
|
179
172
|
}
|
|
@@ -181,11 +174,16 @@ class VersionHelpers {
|
|
|
181
174
|
throw new Error(`Invalid sdk version: ${sdkVersion}`);
|
|
182
175
|
}
|
|
183
176
|
const { major: currentMajor, minor: currentMinor, patch: currentPatch, prerelease: currentPrerelease } = sdkSemvers;
|
|
184
|
-
|
|
185
|
-
const shouldResetVersion = nextMajor !== currentMajor;
|
|
177
|
+
let nextMajor = currentMajor;
|
|
186
178
|
let nextMinor = currentMinor;
|
|
187
179
|
let nextPatch = currentPatch;
|
|
188
180
|
switch (versionBumpType) {
|
|
181
|
+
case VersionBumpType.Enum.BREAKING: {
|
|
182
|
+
nextMajor++;
|
|
183
|
+
nextMinor = 0;
|
|
184
|
+
nextPatch = 0;
|
|
185
|
+
break;
|
|
186
|
+
}
|
|
189
187
|
case VersionBumpType.Enum.CUTOFF: {
|
|
190
188
|
nextMinor++;
|
|
191
189
|
nextPatch = 0;
|
|
@@ -198,17 +196,13 @@ class VersionHelpers {
|
|
|
198
196
|
break;
|
|
199
197
|
}
|
|
200
198
|
}
|
|
201
|
-
if (shouldResetVersion) {
|
|
202
|
-
nextMinor = 0;
|
|
203
|
-
nextPatch = 0;
|
|
204
|
-
}
|
|
205
199
|
let nextVersion = [
|
|
206
|
-
|
|
200
|
+
nextMajor,
|
|
207
201
|
nextMinor,
|
|
208
202
|
nextPatch
|
|
209
203
|
].join(".");
|
|
210
204
|
if (nextPrereleaseId) {
|
|
211
|
-
if (nextMinor !== currentMinor
|
|
205
|
+
if (nextMinor !== currentMinor) {
|
|
212
206
|
nextVersion += `-${nextPrereleaseId}.0`;
|
|
213
207
|
} else {
|
|
214
208
|
if (currentPrerelease.length)
|
|
@@ -220,8 +214,6 @@ class VersionHelpers {
|
|
|
220
214
|
};
|
|
221
215
|
}
|
|
222
216
|
|
|
223
|
-
const codegenPackageJsonPath = path.join(__dirname, "../package.json");
|
|
224
|
-
const codegenPackageJSON = JSON.parse(fs.readFileSync(codegenPackageJsonPath, "utf-8"));
|
|
225
217
|
const UNDEFINED_SWAGGER_SEMVER = "0.0.0";
|
|
226
218
|
const REMOVED_KEYWORDS = [
|
|
227
219
|
"/admin/",
|
|
@@ -317,7 +309,7 @@ class ParserUtils {
|
|
|
317
309
|
return null;
|
|
318
310
|
}
|
|
319
311
|
const type = ParserUtils.parseRefType($ref);
|
|
320
|
-
return `import { ${type} } from '
|
|
312
|
+
return `import { ${type} } from '../../generated-definitions/${type}.js'`;
|
|
321
313
|
};
|
|
322
314
|
static parseRefType = ($ref) => {
|
|
323
315
|
let ref = $ref.replace(".", "/");
|
|
@@ -509,7 +501,7 @@ class ParserUtils {
|
|
|
509
501
|
static writeApiFile(distDir, apiName, apiBuffer, imports, returnMethods) {
|
|
510
502
|
const newImports = [];
|
|
511
503
|
imports.forEach((el, index) => {
|
|
512
|
-
newImports.push(el.replace("
|
|
504
|
+
newImports.push(el.replace("../../generated-definitions", "../generated-definitions"));
|
|
513
505
|
});
|
|
514
506
|
const fileContent = templateApiClass(apiName, apiBuffer, newImports, returnMethods);
|
|
515
507
|
fs.writeFileSync(`${distDir}/${apiName}.ts`, ParserUtils.prependCopyrightHeader(fileContent));
|
|
@@ -527,9 +519,9 @@ class ParserUtils {
|
|
|
527
519
|
ParserUtils.mkdirIfNotExist(distDir);
|
|
528
520
|
fs.writeFileSync(path.join(distDir, `${name}.ts`), ParserUtils.prependCopyrightHeader(buffer));
|
|
529
521
|
}
|
|
530
|
-
static writeAllImportsFile(distDir, buffer
|
|
522
|
+
static writeAllImportsFile(distDir, buffer) {
|
|
531
523
|
ParserUtils.mkdirIfNotExist(distDir);
|
|
532
|
-
fs.writeFileSync(path.join(distDir,
|
|
524
|
+
fs.writeFileSync(path.join(distDir, "all-imports.ts"), ParserUtils.prependCopyrightHeader(buffer));
|
|
533
525
|
}
|
|
534
526
|
static syncPackageVersion(apiInfo, skipVersionSync, prereleaseId) {
|
|
535
527
|
if (skipVersionSync)
|
|
@@ -537,9 +529,7 @@ class ParserUtils {
|
|
|
537
529
|
const currDir = process.cwd();
|
|
538
530
|
const { packageJSON, pathToPackageJSON } = ParserUtils.getPackageJSONInfo(currDir);
|
|
539
531
|
const nextSemver = VersionHelpers.getNextVersion({
|
|
540
|
-
codegenVersion: codegenPackageJSON.version,
|
|
541
532
|
serviceVersion: apiInfo["x-version"] || apiInfo.version || UNDEFINED_SWAGGER_SEMVER,
|
|
542
|
-
predefinedMajorVersion: packageJSON.predefinedMajorVersion || 0,
|
|
543
533
|
versionBumpType: process.env.VERSION_BUMP_TYPE,
|
|
544
534
|
sdkVersion: packageJSON.version,
|
|
545
535
|
nextPrereleaseId: prereleaseId
|
|
@@ -950,8 +940,9 @@ const templateApiIndex = (serviceName, serviceNameTitle, apiList) => {
|
|
|
950
940
|
let imports = "";
|
|
951
941
|
let returnStatement = "";
|
|
952
942
|
for (const cl of apiList) {
|
|
943
|
+
const dir = cl.toLowerCase().includes("admin") ? "generated-admin" : "generated-public";
|
|
953
944
|
imports += `
|
|
954
|
-
import { ${cl} } from './${
|
|
945
|
+
import { ${cl} } from './${dir}/${cl}.js'`;
|
|
955
946
|
returnStatement += `
|
|
956
947
|
${cl}, `;
|
|
957
948
|
}
|
|
@@ -1352,7 +1343,7 @@ class SwaggerReaderHelpers {
|
|
|
1352
1343
|
tagToClassImportsRecord[className] = tagToClassImportsRecord[className] ? tagToClassImportsRecord[className] : {};
|
|
1353
1344
|
if (responseClass) {
|
|
1354
1345
|
const importTypeClass = ParserUtils.parseRefType(responseClass);
|
|
1355
|
-
tagToClassImportsRecord[className][importTypeClass] = `import { ${importTypeClass} } from '
|
|
1346
|
+
tagToClassImportsRecord[className][importTypeClass] = `import { ${importTypeClass} } from '../../generated-definitions/${importTypeClass}.js'`;
|
|
1356
1347
|
}
|
|
1357
1348
|
if (responseClass && responseClass.endsWith("Array")) {
|
|
1358
1349
|
arrayDefinitions.push(responseClass);
|
|
@@ -1417,39 +1408,30 @@ class SwaggerReaderHelpers {
|
|
|
1417
1408
|
}
|
|
1418
1409
|
|
|
1419
1410
|
class CodeGenerator {
|
|
1420
|
-
static
|
|
1421
|
-
static
|
|
1422
|
-
static getGeneratedAdminFolder = () => `${CliParser.getOutputPath()}/generated-admin`;
|
|
1411
|
+
static srcFolder = () => CliParser.getOutputPath();
|
|
1412
|
+
static getGeneratedFolder = (isAdmin) => isAdmin ? `${CodeGenerator.srcFolder()}/generated-admin` : `${CodeGenerator.srcFolder()}/generated-public`;
|
|
1423
1413
|
static getGeneratedSnippetsFolder = () => `${CliParser.getSnippetOutputPath()}/generated-snippets`;
|
|
1424
|
-
static
|
|
1414
|
+
static prepareDirs = (DIST_DEFINITION_DIR, DIST_DIR, DIST_DIR_ENDPOINTS) => {
|
|
1415
|
+
ParserUtils.mkdirIfNotExist(DIST_DEFINITION_DIR);
|
|
1416
|
+
ParserUtils.mkdirIfNotExist(DIST_DIR(true));
|
|
1417
|
+
ParserUtils.mkdirIfNotExist(DIST_DIR(false));
|
|
1418
|
+
ParserUtils.mkdirIfNotExist(DIST_DIR_ENDPOINTS(true));
|
|
1419
|
+
ParserUtils.mkdirIfNotExist(DIST_DIR_ENDPOINTS(false));
|
|
1420
|
+
};
|
|
1425
1421
|
static main = async (nameArray) => {
|
|
1426
1422
|
const serviceName = nameArray[0];
|
|
1427
1423
|
const sdkName = nameArray[1];
|
|
1428
1424
|
const swaggerFile = nameArray[2];
|
|
1429
1425
|
const parser = new SwaggerParser();
|
|
1430
|
-
const generatedFolder = CliParser.isAdmin() ? CodeGenerator.getGeneratedAdminFolder() : CodeGenerator.getGeneratedPublicFolder();
|
|
1431
|
-
const DIST_DIR = `${generatedFolder}/${serviceName}`;
|
|
1432
|
-
const DIST_ENDPOINTS_DIR = path.join(DIST_DIR, "endpoints");
|
|
1433
|
-
const DIST_DEFINITION_DIR = path.join(DIST_DIR, "definitions");
|
|
1434
1426
|
const swaggerFilePath = `${CliParser.getSwaggersOutputPath()}/${swaggerFile}`;
|
|
1435
1427
|
const api = await parser.parse(swaggerFilePath);
|
|
1428
|
+
const serviceNameTitle = ParserUtils.convertDashesToTitleCase(serviceName);
|
|
1436
1429
|
const indexImportsSet = /* @__PURE__ */ new Set();
|
|
1437
1430
|
const apiInfo = { ...api.info, "x-version": api["x-version"]?.version };
|
|
1438
1431
|
console.log("----------\nGenerating API:", { title: apiInfo.title, version: apiInfo.version });
|
|
1439
|
-
ParserUtils.mkdirIfNotExist(DIST_DIR);
|
|
1440
|
-
ParserUtils.mkdirIfNotExist(DIST_DEFINITION_DIR);
|
|
1441
|
-
ParserUtils.mkdirIfNotExist(DIST_ENDPOINTS_DIR);
|
|
1442
1432
|
ParserUtils.syncPackageVersion(apiInfo, CliParser.skipVersionSync(), process.env.PRERELEASE_ID);
|
|
1433
|
+
ParserUtils.writeXVersion(CodeGenerator.srcFolder(), api["x-version"], api.info);
|
|
1443
1434
|
const parsedInformation = await SwaggerReaderHelpers.parseAllEndpoints({ api, sdkName, serviceName });
|
|
1444
|
-
const parsedInformationByType = CliParser.isAdmin() ? parsedInformation.admin : parsedInformation.public;
|
|
1445
|
-
const {
|
|
1446
|
-
arrayDefinitions,
|
|
1447
|
-
tagToClassImportsRecord,
|
|
1448
|
-
tagToEndpointClassesRecord,
|
|
1449
|
-
tagToSdkClientRecord,
|
|
1450
|
-
tagToSdkFunctionNamesRecord,
|
|
1451
|
-
tagToSdkImportsRecord
|
|
1452
|
-
} = parsedInformationByType;
|
|
1453
1435
|
if (CliParser.getSnippetOutputPath()) {
|
|
1454
1436
|
try {
|
|
1455
1437
|
ParserUtils.writeSnippetFile(CodeGenerator.getGeneratedSnippetsFolder(), api.info.title, JSON.stringify({
|
|
@@ -1460,55 +1442,69 @@ class CodeGenerator {
|
|
|
1460
1442
|
console.log("Generating snippets", err);
|
|
1461
1443
|
}
|
|
1462
1444
|
}
|
|
1463
|
-
const
|
|
1464
|
-
const
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
|
|
1474
|
-
|
|
1475
|
-
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
|
|
1479
|
-
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
const
|
|
1499
|
-
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
|
|
1504
|
-
|
|
1505
|
-
|
|
1506
|
-
|
|
1507
|
-
|
|
1508
|
-
|
|
1509
|
-
|
|
1510
|
-
|
|
1511
|
-
|
|
1445
|
+
const DIST_DIR = (isAdmin) => `${CodeGenerator.getGeneratedFolder(isAdmin)}`;
|
|
1446
|
+
const DIST_DIR_ENDPOINTS = (isAdmin) => path.join(DIST_DIR(isAdmin), "endpoints");
|
|
1447
|
+
const DIST_DEFINITION_DIR = path.join(CodeGenerator.srcFolder(), "generated-definitions");
|
|
1448
|
+
const targetSrcFolder = `${CodeGenerator.srcFolder()}/`;
|
|
1449
|
+
CodeGenerator.prepareDirs(DIST_DEFINITION_DIR, DIST_DIR, DIST_DIR_ENDPOINTS);
|
|
1450
|
+
const mainApiList = [];
|
|
1451
|
+
const generatePublicOrAdmin = (isAdmin) => {
|
|
1452
|
+
const parsedInformationByType = isAdmin ? parsedInformation.admin : parsedInformation.public;
|
|
1453
|
+
const {
|
|
1454
|
+
arrayDefinitions,
|
|
1455
|
+
tagToClassImportsRecord,
|
|
1456
|
+
tagToEndpointClassesRecord,
|
|
1457
|
+
tagToSdkClientRecord,
|
|
1458
|
+
tagToSdkFunctionNamesRecord,
|
|
1459
|
+
tagToSdkImportsRecord
|
|
1460
|
+
} = parsedInformationByType;
|
|
1461
|
+
const writeApiEndpointFiles = (isAdminEndpoint) => {
|
|
1462
|
+
const apiList = [];
|
|
1463
|
+
for (const tag in tagToEndpointClassesRecord) {
|
|
1464
|
+
const { className, classGenName } = ParserUtils.generateClassName(tag, isAdminEndpoint);
|
|
1465
|
+
const classBuffer = tagToEndpointClassesRecord[tag];
|
|
1466
|
+
const imports = [.../* @__PURE__ */ new Set([...tagToSdkImportsRecord[tag], ...Object.values(tagToClassImportsRecord[className])])];
|
|
1467
|
+
const apiImports = [.../* @__PURE__ */ new Set([...tagToSdkImportsRecord[tag], ...Object.values(tagToClassImportsRecord[className])])];
|
|
1468
|
+
apiImports.push(`import { ${classGenName} } from './endpoints/${classGenName}.js'`);
|
|
1469
|
+
ParserUtils.writeClassFile(DIST_DIR_ENDPOINTS(isAdminEndpoint), classGenName, classBuffer, imports);
|
|
1470
|
+
const apiBuffer = tagToSdkClientRecord[tag];
|
|
1471
|
+
const { apiGenName } = ParserUtils.generateApiName(tag, isAdminEndpoint);
|
|
1472
|
+
ParserUtils.writeApiFile(DIST_DIR(isAdminEndpoint), apiGenName, apiBuffer, apiImports, tagToSdkFunctionNamesRecord[tag]);
|
|
1473
|
+
apiList.push(apiGenName);
|
|
1474
|
+
indexImportsSet.add(ParserUtils.getRelativePathToWebSdkSrcFolder(path.join(DIST_DIR_ENDPOINTS(isAdminEndpoint), `${classGenName}`), targetSrcFolder));
|
|
1475
|
+
indexImportsSet.add(ParserUtils.getRelativePathToWebSdkSrcFolder(path.join(DIST_DIR(isAdminEndpoint), `${apiGenName}`), targetSrcFolder));
|
|
1476
|
+
}
|
|
1477
|
+
mainApiList.push(...apiList);
|
|
1478
|
+
indexImportsSet.add(ParserUtils.getRelativePathToWebSdkSrcFolder(path.join(CodeGenerator.srcFolder(), serviceNameTitle), targetSrcFolder));
|
|
1479
|
+
};
|
|
1480
|
+
const writeDefinitions = (api2) => {
|
|
1481
|
+
const duplicates = /* @__PURE__ */ new Map();
|
|
1482
|
+
const definitions = api2?.components?.schemas || api2.definitions;
|
|
1483
|
+
for (const ref in definitions) {
|
|
1484
|
+
const definition = definitions[ref];
|
|
1485
|
+
const fileName = ParserUtils.parseRefType(ref);
|
|
1486
|
+
const fileExist = fs.existsSync(path.join(DIST_DEFINITION_DIR, `${fileName}.ts`));
|
|
1487
|
+
if (fileExist) {
|
|
1488
|
+
const duplicateName = ParserUtils.toCamelCaseWord(ref).replace(".", "").replace(".", "");
|
|
1489
|
+
duplicates.set(ref, duplicateName);
|
|
1490
|
+
}
|
|
1491
|
+
const { buffer } = new TemplateZod().render(fileName, definition, /* @__PURE__ */ new Map());
|
|
1492
|
+
ParserUtils.writeDefinitionFile(DIST_DEFINITION_DIR, fileName, buffer);
|
|
1493
|
+
indexImportsSet.add(ParserUtils.getRelativePathToWebSdkSrcFolder(path.join(DIST_DEFINITION_DIR, fileName), targetSrcFolder));
|
|
1494
|
+
}
|
|
1495
|
+
for (const arrayClass of arrayDefinitions) {
|
|
1496
|
+
const buffer = new TemplateZodArray().render(arrayClass);
|
|
1497
|
+
ParserUtils.writeDefinitionFile(DIST_DEFINITION_DIR, arrayClass, buffer);
|
|
1498
|
+
indexImportsSet.add(ParserUtils.getRelativePathToWebSdkSrcFolder(path.join(DIST_DEFINITION_DIR, arrayClass), targetSrcFolder));
|
|
1499
|
+
}
|
|
1500
|
+
};
|
|
1501
|
+
writeApiEndpointFiles(isAdmin);
|
|
1502
|
+
writeDefinitions(api);
|
|
1503
|
+
};
|
|
1504
|
+
generatePublicOrAdmin(true);
|
|
1505
|
+
generatePublicOrAdmin(false);
|
|
1506
|
+
const apiIndexBuff = templateApiIndex(serviceName, serviceNameTitle, mainApiList);
|
|
1507
|
+
ParserUtils.writeApiMainFile(CodeGenerator.srcFolder(), serviceNameTitle, apiIndexBuff);
|
|
1512
1508
|
console.log("\nCOMPLETED\n----------\n\n");
|
|
1513
1509
|
return indexImportsSet;
|
|
1514
1510
|
};
|
|
@@ -1575,17 +1571,7 @@ class SwaggerDownloader {
|
|
|
1575
1571
|
};
|
|
1576
1572
|
}
|
|
1577
1573
|
|
|
1578
|
-
|
|
1579
|
-
CliParser.createInstance(yargs2);
|
|
1580
|
-
SwaggerDownloader.main();
|
|
1581
|
-
}).command("generate-code", "Generate code based on downloaded swagger files", async (yargs2) => {
|
|
1582
|
-
yargs2.check(({ output }) => {
|
|
1583
|
-
if (!output?.trim()) {
|
|
1584
|
-
throw new Error("output is required for generate-code");
|
|
1585
|
-
}
|
|
1586
|
-
return true;
|
|
1587
|
-
});
|
|
1588
|
-
CliParser.createInstance(yargs2);
|
|
1574
|
+
const generateSdk = async () => {
|
|
1589
1575
|
const arrayOfSets = await Promise.all(CliParser.getConfigFile().map((config) => CodeGenerator.main(config)));
|
|
1590
1576
|
const indexImportsSet = /* @__PURE__ */ new Set();
|
|
1591
1577
|
const filenamesSet = /* @__PURE__ */ new Set();
|
|
@@ -1602,7 +1588,20 @@ yargs.command("download-swaggers", "Download swaggers JSON files", (yargs2) => {
|
|
|
1602
1588
|
const filesToImport = indexImportsArray.map((fileToImport) => {
|
|
1603
1589
|
return `export * from '${fileToImport.replace("\\", "/")}.js'`;
|
|
1604
1590
|
});
|
|
1605
|
-
ParserUtils.writeAllImportsFile(CliParser.getOutputPath(), filesToImport.join("\n")
|
|
1591
|
+
ParserUtils.writeAllImportsFile(CliParser.getOutputPath(), filesToImport.join("\n"));
|
|
1592
|
+
};
|
|
1593
|
+
yargs.command("download-swaggers", "Download swaggers JSON files", (yargs2) => {
|
|
1594
|
+
CliParser.createInstance(yargs2);
|
|
1595
|
+
SwaggerDownloader.main();
|
|
1596
|
+
}).command("generate-code", "Generate code based on downloaded swagger files", async (yargs2) => {
|
|
1597
|
+
yargs2.check(({ output }) => {
|
|
1598
|
+
if (!output?.trim()) {
|
|
1599
|
+
throw new Error("output is required for generate-code");
|
|
1600
|
+
}
|
|
1601
|
+
return true;
|
|
1602
|
+
});
|
|
1603
|
+
CliParser.createInstance(yargs2);
|
|
1604
|
+
await generateSdk();
|
|
1606
1605
|
}).option("config", {
|
|
1607
1606
|
description: "Config file providing backend services URL.",
|
|
1608
1607
|
type: "string",
|
|
@@ -1614,10 +1613,5 @@ yargs.command("download-swaggers", "Download swaggers JSON files", (yargs2) => {
|
|
|
1614
1613
|
}).option("output", {
|
|
1615
1614
|
description: "Output path for generated code. Required for generate-code",
|
|
1616
1615
|
type: "string"
|
|
1617
|
-
}).option("admin", {
|
|
1618
|
-
description: "Only generate /admin endpoints.",
|
|
1619
|
-
type: "boolean",
|
|
1620
|
-
default: false,
|
|
1621
|
-
demandOption: false
|
|
1622
1616
|
}).demandCommand(1).help().argv;
|
|
1623
1617
|
//# sourceMappingURL=accelbyte-codegen.js.map
|