@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
|
@@ -49,9 +49,6 @@ class CliParser {
|
|
|
49
49
|
static getResolvedSwaggersOutputPath = () => {
|
|
50
50
|
return path.resolve(CliParser.getSwaggersOutputPath());
|
|
51
51
|
};
|
|
52
|
-
static isAdmin = () => {
|
|
53
|
-
return CliParser.instance().argv.admin;
|
|
54
|
-
};
|
|
55
52
|
static getSnippetOutputPath = () => {
|
|
56
53
|
return CliParser.instance().argv.snippetOutput;
|
|
57
54
|
};
|
|
@@ -80,7 +77,9 @@ const generateImports = (body, importStatements, makeNewImportVarMap2, getImport
|
|
|
80
77
|
}
|
|
81
78
|
}
|
|
82
79
|
}
|
|
83
|
-
const generatedImports = Object.keys(usedImportVarMap).sort().map((moduleSource) =>
|
|
80
|
+
const generatedImports = Object.keys(usedImportVarMap).sort().map((moduleSource) => {
|
|
81
|
+
return `import { ${usedImportVarMap[moduleSource].sort().join(", ")} } from '${moduleSource}'`;
|
|
82
|
+
}).join("\n");
|
|
84
83
|
return `${generatedImports}
|
|
85
84
|
${importStatements.sort().join("\n")}`;
|
|
86
85
|
};
|
|
@@ -126,12 +125,10 @@ export function ${className}(sdk: AccelbyteSDK, args?: ApiArgs) {
|
|
|
126
125
|
`;
|
|
127
126
|
};
|
|
128
127
|
|
|
129
|
-
const VersionBumpType = z.enum(["CUTOFF", "RELEASE", "HOTFIX"]);
|
|
128
|
+
const VersionBumpType = z.enum(["CUTOFF", "RELEASE", "HOTFIX", "BREAKING"]);
|
|
130
129
|
class VersionHelpers {
|
|
131
130
|
static getNextVersion = ({
|
|
132
|
-
codegenVersion,
|
|
133
131
|
serviceVersion,
|
|
134
|
-
predefinedMajorVersion,
|
|
135
132
|
versionBumpType,
|
|
136
133
|
sdkVersion,
|
|
137
134
|
nextPrereleaseId
|
|
@@ -145,12 +142,8 @@ class VersionHelpers {
|
|
|
145
142
|
throw new Error(`process.env.PRERELEASE_ID should be empty when process.env.VERSION_BUMP_TYPE is "HOTFIX" or "PRELEASE".`);
|
|
146
143
|
}
|
|
147
144
|
}
|
|
148
|
-
const codegenSemvers = semver.parse(codegenVersion);
|
|
149
145
|
const serviceSemvers = semver.parse(serviceVersion);
|
|
150
146
|
const sdkSemvers = semver.parse(sdkVersion);
|
|
151
|
-
if (codegenSemvers === null) {
|
|
152
|
-
throw new Error(`Invalid codegen version: ${codegenVersion}`);
|
|
153
|
-
}
|
|
154
147
|
if (serviceSemvers === null) {
|
|
155
148
|
throw new Error(`Invalid service version: ${serviceVersion}`);
|
|
156
149
|
}
|
|
@@ -158,11 +151,16 @@ class VersionHelpers {
|
|
|
158
151
|
throw new Error(`Invalid sdk version: ${sdkVersion}`);
|
|
159
152
|
}
|
|
160
153
|
const { major: currentMajor, minor: currentMinor, patch: currentPatch, prerelease: currentPrerelease } = sdkSemvers;
|
|
161
|
-
|
|
162
|
-
const shouldResetVersion = nextMajor !== currentMajor;
|
|
154
|
+
let nextMajor = currentMajor;
|
|
163
155
|
let nextMinor = currentMinor;
|
|
164
156
|
let nextPatch = currentPatch;
|
|
165
157
|
switch (versionBumpType) {
|
|
158
|
+
case VersionBumpType.Enum.BREAKING: {
|
|
159
|
+
nextMajor++;
|
|
160
|
+
nextMinor = 0;
|
|
161
|
+
nextPatch = 0;
|
|
162
|
+
break;
|
|
163
|
+
}
|
|
166
164
|
case VersionBumpType.Enum.CUTOFF: {
|
|
167
165
|
nextMinor++;
|
|
168
166
|
nextPatch = 0;
|
|
@@ -175,17 +173,13 @@ class VersionHelpers {
|
|
|
175
173
|
break;
|
|
176
174
|
}
|
|
177
175
|
}
|
|
178
|
-
if (shouldResetVersion) {
|
|
179
|
-
nextMinor = 0;
|
|
180
|
-
nextPatch = 0;
|
|
181
|
-
}
|
|
182
176
|
let nextVersion = [
|
|
183
|
-
|
|
177
|
+
nextMajor,
|
|
184
178
|
nextMinor,
|
|
185
179
|
nextPatch
|
|
186
180
|
].join(".");
|
|
187
181
|
if (nextPrereleaseId) {
|
|
188
|
-
if (nextMinor !== currentMinor
|
|
182
|
+
if (nextMinor !== currentMinor) {
|
|
189
183
|
nextVersion += `-${nextPrereleaseId}.0`;
|
|
190
184
|
} else {
|
|
191
185
|
if (currentPrerelease.length)
|
|
@@ -197,8 +191,6 @@ class VersionHelpers {
|
|
|
197
191
|
};
|
|
198
192
|
}
|
|
199
193
|
|
|
200
|
-
const codegenPackageJsonPath = path__default.join(__dirname, "../package.json");
|
|
201
|
-
const codegenPackageJSON = JSON.parse(fs__default.readFileSync(codegenPackageJsonPath, "utf-8"));
|
|
202
194
|
const UNDEFINED_SWAGGER_SEMVER = "0.0.0";
|
|
203
195
|
const REMOVED_KEYWORDS = [
|
|
204
196
|
"/admin/",
|
|
@@ -294,7 +286,7 @@ class ParserUtils {
|
|
|
294
286
|
return null;
|
|
295
287
|
}
|
|
296
288
|
const type = ParserUtils.parseRefType($ref);
|
|
297
|
-
return `import { ${type} } from '
|
|
289
|
+
return `import { ${type} } from '../../generated-definitions/${type}.js'`;
|
|
298
290
|
};
|
|
299
291
|
static parseRefType = ($ref) => {
|
|
300
292
|
let ref = $ref.replace(".", "/");
|
|
@@ -486,7 +478,7 @@ class ParserUtils {
|
|
|
486
478
|
static writeApiFile(distDir, apiName, apiBuffer, imports, returnMethods) {
|
|
487
479
|
const newImports = [];
|
|
488
480
|
imports.forEach((el, index) => {
|
|
489
|
-
newImports.push(el.replace("
|
|
481
|
+
newImports.push(el.replace("../../generated-definitions", "../generated-definitions"));
|
|
490
482
|
});
|
|
491
483
|
const fileContent = templateApiClass(apiName, apiBuffer, newImports, returnMethods);
|
|
492
484
|
fs__default.writeFileSync(`${distDir}/${apiName}.ts`, ParserUtils.prependCopyrightHeader(fileContent));
|
|
@@ -504,9 +496,9 @@ class ParserUtils {
|
|
|
504
496
|
ParserUtils.mkdirIfNotExist(distDir);
|
|
505
497
|
fs__default.writeFileSync(path__default.join(distDir, `${name}.ts`), ParserUtils.prependCopyrightHeader(buffer));
|
|
506
498
|
}
|
|
507
|
-
static writeAllImportsFile(distDir, buffer
|
|
499
|
+
static writeAllImportsFile(distDir, buffer) {
|
|
508
500
|
ParserUtils.mkdirIfNotExist(distDir);
|
|
509
|
-
fs__default.writeFileSync(path__default.join(distDir,
|
|
501
|
+
fs__default.writeFileSync(path__default.join(distDir, "all-imports.ts"), ParserUtils.prependCopyrightHeader(buffer));
|
|
510
502
|
}
|
|
511
503
|
static syncPackageVersion(apiInfo, skipVersionSync, prereleaseId) {
|
|
512
504
|
if (skipVersionSync)
|
|
@@ -514,9 +506,7 @@ class ParserUtils {
|
|
|
514
506
|
const currDir = process.cwd();
|
|
515
507
|
const { packageJSON, pathToPackageJSON } = ParserUtils.getPackageJSONInfo(currDir);
|
|
516
508
|
const nextSemver = VersionHelpers.getNextVersion({
|
|
517
|
-
codegenVersion: codegenPackageJSON.version,
|
|
518
509
|
serviceVersion: apiInfo["x-version"] || apiInfo.version || UNDEFINED_SWAGGER_SEMVER,
|
|
519
|
-
predefinedMajorVersion: packageJSON.predefinedMajorVersion || 0,
|
|
520
510
|
versionBumpType: process.env.VERSION_BUMP_TYPE,
|
|
521
511
|
sdkVersion: packageJSON.version,
|
|
522
512
|
nextPrereleaseId: prereleaseId
|
|
@@ -927,8 +917,9 @@ const templateApiIndex = (serviceName, serviceNameTitle, apiList) => {
|
|
|
927
917
|
let imports = "";
|
|
928
918
|
let returnStatement = "";
|
|
929
919
|
for (const cl of apiList) {
|
|
920
|
+
const dir = cl.toLowerCase().includes("admin") ? "generated-admin" : "generated-public";
|
|
930
921
|
imports += `
|
|
931
|
-
import { ${cl} } from './${
|
|
922
|
+
import { ${cl} } from './${dir}/${cl}.js'`;
|
|
932
923
|
returnStatement += `
|
|
933
924
|
${cl}, `;
|
|
934
925
|
}
|
|
@@ -1329,7 +1320,7 @@ class SwaggerReaderHelpers {
|
|
|
1329
1320
|
tagToClassImportsRecord[className] = tagToClassImportsRecord[className] ? tagToClassImportsRecord[className] : {};
|
|
1330
1321
|
if (responseClass) {
|
|
1331
1322
|
const importTypeClass = ParserUtils.parseRefType(responseClass);
|
|
1332
|
-
tagToClassImportsRecord[className][importTypeClass] = `import { ${importTypeClass} } from '
|
|
1323
|
+
tagToClassImportsRecord[className][importTypeClass] = `import { ${importTypeClass} } from '../../generated-definitions/${importTypeClass}.js'`;
|
|
1333
1324
|
}
|
|
1334
1325
|
if (responseClass && responseClass.endsWith("Array")) {
|
|
1335
1326
|
arrayDefinitions.push(responseClass);
|
|
@@ -1394,39 +1385,30 @@ class SwaggerReaderHelpers {
|
|
|
1394
1385
|
}
|
|
1395
1386
|
|
|
1396
1387
|
class CodeGenerator {
|
|
1397
|
-
static
|
|
1398
|
-
static
|
|
1399
|
-
static getGeneratedAdminFolder = () => `${CliParser.getOutputPath()}/generated-admin`;
|
|
1388
|
+
static srcFolder = () => CliParser.getOutputPath();
|
|
1389
|
+
static getGeneratedFolder = (isAdmin) => isAdmin ? `${CodeGenerator.srcFolder()}/generated-admin` : `${CodeGenerator.srcFolder()}/generated-public`;
|
|
1400
1390
|
static getGeneratedSnippetsFolder = () => `${CliParser.getSnippetOutputPath()}/generated-snippets`;
|
|
1401
|
-
static
|
|
1391
|
+
static prepareDirs = (DIST_DEFINITION_DIR, DIST_DIR, DIST_DIR_ENDPOINTS) => {
|
|
1392
|
+
ParserUtils.mkdirIfNotExist(DIST_DEFINITION_DIR);
|
|
1393
|
+
ParserUtils.mkdirIfNotExist(DIST_DIR(true));
|
|
1394
|
+
ParserUtils.mkdirIfNotExist(DIST_DIR(false));
|
|
1395
|
+
ParserUtils.mkdirIfNotExist(DIST_DIR_ENDPOINTS(true));
|
|
1396
|
+
ParserUtils.mkdirIfNotExist(DIST_DIR_ENDPOINTS(false));
|
|
1397
|
+
};
|
|
1402
1398
|
static main = async (nameArray) => {
|
|
1403
1399
|
const serviceName = nameArray[0];
|
|
1404
1400
|
const sdkName = nameArray[1];
|
|
1405
1401
|
const swaggerFile = nameArray[2];
|
|
1406
1402
|
const parser = new SwaggerParser();
|
|
1407
|
-
const generatedFolder = CliParser.isAdmin() ? CodeGenerator.getGeneratedAdminFolder() : CodeGenerator.getGeneratedPublicFolder();
|
|
1408
|
-
const DIST_DIR = `${generatedFolder}/${serviceName}`;
|
|
1409
|
-
const DIST_ENDPOINTS_DIR = path__default.join(DIST_DIR, "endpoints");
|
|
1410
|
-
const DIST_DEFINITION_DIR = path__default.join(DIST_DIR, "definitions");
|
|
1411
1403
|
const swaggerFilePath = `${CliParser.getSwaggersOutputPath()}/${swaggerFile}`;
|
|
1412
1404
|
const api = await parser.parse(swaggerFilePath);
|
|
1405
|
+
const serviceNameTitle = ParserUtils.convertDashesToTitleCase(serviceName);
|
|
1413
1406
|
const indexImportsSet = /* @__PURE__ */ new Set();
|
|
1414
1407
|
const apiInfo = { ...api.info, "x-version": api["x-version"]?.version };
|
|
1415
1408
|
console.log("----------\nGenerating API:", { title: apiInfo.title, version: apiInfo.version });
|
|
1416
|
-
ParserUtils.mkdirIfNotExist(DIST_DIR);
|
|
1417
|
-
ParserUtils.mkdirIfNotExist(DIST_DEFINITION_DIR);
|
|
1418
|
-
ParserUtils.mkdirIfNotExist(DIST_ENDPOINTS_DIR);
|
|
1419
1409
|
ParserUtils.syncPackageVersion(apiInfo, CliParser.skipVersionSync(), process.env.PRERELEASE_ID);
|
|
1410
|
+
ParserUtils.writeXVersion(CodeGenerator.srcFolder(), api["x-version"], api.info);
|
|
1420
1411
|
const parsedInformation = await SwaggerReaderHelpers.parseAllEndpoints({ api, sdkName, serviceName });
|
|
1421
|
-
const parsedInformationByType = CliParser.isAdmin() ? parsedInformation.admin : parsedInformation.public;
|
|
1422
|
-
const {
|
|
1423
|
-
arrayDefinitions,
|
|
1424
|
-
tagToClassImportsRecord,
|
|
1425
|
-
tagToEndpointClassesRecord,
|
|
1426
|
-
tagToSdkClientRecord,
|
|
1427
|
-
tagToSdkFunctionNamesRecord,
|
|
1428
|
-
tagToSdkImportsRecord
|
|
1429
|
-
} = parsedInformationByType;
|
|
1430
1412
|
if (CliParser.getSnippetOutputPath()) {
|
|
1431
1413
|
try {
|
|
1432
1414
|
ParserUtils.writeSnippetFile(CodeGenerator.getGeneratedSnippetsFolder(), api.info.title, JSON.stringify({
|
|
@@ -1437,55 +1419,69 @@ class CodeGenerator {
|
|
|
1437
1419
|
console.log("Generating snippets", err);
|
|
1438
1420
|
}
|
|
1439
1421
|
}
|
|
1440
|
-
const
|
|
1441
|
-
const
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
|
|
1474
|
-
|
|
1475
|
-
const
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
|
|
1479
|
-
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1422
|
+
const DIST_DIR = (isAdmin) => `${CodeGenerator.getGeneratedFolder(isAdmin)}`;
|
|
1423
|
+
const DIST_DIR_ENDPOINTS = (isAdmin) => path__default.join(DIST_DIR(isAdmin), "endpoints");
|
|
1424
|
+
const DIST_DEFINITION_DIR = path__default.join(CodeGenerator.srcFolder(), "generated-definitions");
|
|
1425
|
+
const targetSrcFolder = `${CodeGenerator.srcFolder()}/`;
|
|
1426
|
+
CodeGenerator.prepareDirs(DIST_DEFINITION_DIR, DIST_DIR, DIST_DIR_ENDPOINTS);
|
|
1427
|
+
const mainApiList = [];
|
|
1428
|
+
const generatePublicOrAdmin = (isAdmin) => {
|
|
1429
|
+
const parsedInformationByType = isAdmin ? parsedInformation.admin : parsedInformation.public;
|
|
1430
|
+
const {
|
|
1431
|
+
arrayDefinitions,
|
|
1432
|
+
tagToClassImportsRecord,
|
|
1433
|
+
tagToEndpointClassesRecord,
|
|
1434
|
+
tagToSdkClientRecord,
|
|
1435
|
+
tagToSdkFunctionNamesRecord,
|
|
1436
|
+
tagToSdkImportsRecord
|
|
1437
|
+
} = parsedInformationByType;
|
|
1438
|
+
const writeApiEndpointFiles = (isAdminEndpoint) => {
|
|
1439
|
+
const apiList = [];
|
|
1440
|
+
for (const tag in tagToEndpointClassesRecord) {
|
|
1441
|
+
const { className, classGenName } = ParserUtils.generateClassName(tag, isAdminEndpoint);
|
|
1442
|
+
const classBuffer = tagToEndpointClassesRecord[tag];
|
|
1443
|
+
const imports = [.../* @__PURE__ */ new Set([...tagToSdkImportsRecord[tag], ...Object.values(tagToClassImportsRecord[className])])];
|
|
1444
|
+
const apiImports = [.../* @__PURE__ */ new Set([...tagToSdkImportsRecord[tag], ...Object.values(tagToClassImportsRecord[className])])];
|
|
1445
|
+
apiImports.push(`import { ${classGenName} } from './endpoints/${classGenName}.js'`);
|
|
1446
|
+
ParserUtils.writeClassFile(DIST_DIR_ENDPOINTS(isAdminEndpoint), classGenName, classBuffer, imports);
|
|
1447
|
+
const apiBuffer = tagToSdkClientRecord[tag];
|
|
1448
|
+
const { apiGenName } = ParserUtils.generateApiName(tag, isAdminEndpoint);
|
|
1449
|
+
ParserUtils.writeApiFile(DIST_DIR(isAdminEndpoint), apiGenName, apiBuffer, apiImports, tagToSdkFunctionNamesRecord[tag]);
|
|
1450
|
+
apiList.push(apiGenName);
|
|
1451
|
+
indexImportsSet.add(ParserUtils.getRelativePathToWebSdkSrcFolder(path__default.join(DIST_DIR_ENDPOINTS(isAdminEndpoint), `${classGenName}`), targetSrcFolder));
|
|
1452
|
+
indexImportsSet.add(ParserUtils.getRelativePathToWebSdkSrcFolder(path__default.join(DIST_DIR(isAdminEndpoint), `${apiGenName}`), targetSrcFolder));
|
|
1453
|
+
}
|
|
1454
|
+
mainApiList.push(...apiList);
|
|
1455
|
+
indexImportsSet.add(ParserUtils.getRelativePathToWebSdkSrcFolder(path__default.join(CodeGenerator.srcFolder(), serviceNameTitle), targetSrcFolder));
|
|
1456
|
+
};
|
|
1457
|
+
const writeDefinitions = (api2) => {
|
|
1458
|
+
const duplicates = /* @__PURE__ */ new Map();
|
|
1459
|
+
const definitions = api2?.components?.schemas || api2.definitions;
|
|
1460
|
+
for (const ref in definitions) {
|
|
1461
|
+
const definition = definitions[ref];
|
|
1462
|
+
const fileName = ParserUtils.parseRefType(ref);
|
|
1463
|
+
const fileExist = fs__default.existsSync(path__default.join(DIST_DEFINITION_DIR, `${fileName}.ts`));
|
|
1464
|
+
if (fileExist) {
|
|
1465
|
+
const duplicateName = ParserUtils.toCamelCaseWord(ref).replace(".", "").replace(".", "");
|
|
1466
|
+
duplicates.set(ref, duplicateName);
|
|
1467
|
+
}
|
|
1468
|
+
const { buffer } = new TemplateZod().render(fileName, definition, /* @__PURE__ */ new Map());
|
|
1469
|
+
ParserUtils.writeDefinitionFile(DIST_DEFINITION_DIR, fileName, buffer);
|
|
1470
|
+
indexImportsSet.add(ParserUtils.getRelativePathToWebSdkSrcFolder(path__default.join(DIST_DEFINITION_DIR, fileName), targetSrcFolder));
|
|
1471
|
+
}
|
|
1472
|
+
for (const arrayClass of arrayDefinitions) {
|
|
1473
|
+
const buffer = new TemplateZodArray().render(arrayClass);
|
|
1474
|
+
ParserUtils.writeDefinitionFile(DIST_DEFINITION_DIR, arrayClass, buffer);
|
|
1475
|
+
indexImportsSet.add(ParserUtils.getRelativePathToWebSdkSrcFolder(path__default.join(DIST_DEFINITION_DIR, arrayClass), targetSrcFolder));
|
|
1476
|
+
}
|
|
1477
|
+
};
|
|
1478
|
+
writeApiEndpointFiles(isAdmin);
|
|
1479
|
+
writeDefinitions(api);
|
|
1480
|
+
};
|
|
1481
|
+
generatePublicOrAdmin(true);
|
|
1482
|
+
generatePublicOrAdmin(false);
|
|
1483
|
+
const apiIndexBuff = templateApiIndex(serviceName, serviceNameTitle, mainApiList);
|
|
1484
|
+
ParserUtils.writeApiMainFile(CodeGenerator.srcFolder(), serviceNameTitle, apiIndexBuff);
|
|
1489
1485
|
console.log("\nCOMPLETED\n----------\n\n");
|
|
1490
1486
|
return indexImportsSet;
|
|
1491
1487
|
};
|
|
@@ -1552,17 +1548,7 @@ class SwaggerDownloader {
|
|
|
1552
1548
|
};
|
|
1553
1549
|
}
|
|
1554
1550
|
|
|
1555
|
-
|
|
1556
|
-
CliParser.createInstance(yargs2);
|
|
1557
|
-
SwaggerDownloader.main();
|
|
1558
|
-
}).command("generate-code", "Generate code based on downloaded swagger files", async (yargs2) => {
|
|
1559
|
-
yargs2.check(({ output }) => {
|
|
1560
|
-
if (!output?.trim()) {
|
|
1561
|
-
throw new Error("output is required for generate-code");
|
|
1562
|
-
}
|
|
1563
|
-
return true;
|
|
1564
|
-
});
|
|
1565
|
-
CliParser.createInstance(yargs2);
|
|
1551
|
+
const generateSdk = async () => {
|
|
1566
1552
|
const arrayOfSets = await Promise.all(CliParser.getConfigFile().map((config) => CodeGenerator.main(config)));
|
|
1567
1553
|
const indexImportsSet = /* @__PURE__ */ new Set();
|
|
1568
1554
|
const filenamesSet = /* @__PURE__ */ new Set();
|
|
@@ -1579,7 +1565,20 @@ yargs.command("download-swaggers", "Download swaggers JSON files", (yargs2) => {
|
|
|
1579
1565
|
const filesToImport = indexImportsArray.map((fileToImport) => {
|
|
1580
1566
|
return `export * from '${fileToImport.replace("\\", "/")}.js'`;
|
|
1581
1567
|
});
|
|
1582
|
-
ParserUtils.writeAllImportsFile(CliParser.getOutputPath(), filesToImport.join("\n")
|
|
1568
|
+
ParserUtils.writeAllImportsFile(CliParser.getOutputPath(), filesToImport.join("\n"));
|
|
1569
|
+
};
|
|
1570
|
+
yargs.command("download-swaggers", "Download swaggers JSON files", (yargs2) => {
|
|
1571
|
+
CliParser.createInstance(yargs2);
|
|
1572
|
+
SwaggerDownloader.main();
|
|
1573
|
+
}).command("generate-code", "Generate code based on downloaded swagger files", async (yargs2) => {
|
|
1574
|
+
yargs2.check(({ output }) => {
|
|
1575
|
+
if (!output?.trim()) {
|
|
1576
|
+
throw new Error("output is required for generate-code");
|
|
1577
|
+
}
|
|
1578
|
+
return true;
|
|
1579
|
+
});
|
|
1580
|
+
CliParser.createInstance(yargs2);
|
|
1581
|
+
await generateSdk();
|
|
1583
1582
|
}).option("config", {
|
|
1584
1583
|
description: "Config file providing backend services URL.",
|
|
1585
1584
|
type: "string",
|
|
@@ -1591,10 +1590,5 @@ yargs.command("download-swaggers", "Download swaggers JSON files", (yargs2) => {
|
|
|
1591
1590
|
}).option("output", {
|
|
1592
1591
|
description: "Output path for generated code. Required for generate-code",
|
|
1593
1592
|
type: "string"
|
|
1594
|
-
}).option("admin", {
|
|
1595
|
-
description: "Only generate /admin endpoints.",
|
|
1596
|
-
type: "boolean",
|
|
1597
|
-
default: false,
|
|
1598
|
-
demandOption: false
|
|
1599
1593
|
}).demandCommand(1).help().argv;
|
|
1600
1594
|
//# sourceMappingURL=accelbyte-codegen.mjs.map
|