@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.
@@ -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) => `import { ${usedImportVarMap[moduleSource].sort().join(", ")} } from '${moduleSource}'`).join("\n");
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
- const nextMajor = codegenSemvers.major + predefinedMajorVersion;
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
- codegenSemvers.major + predefinedMajorVersion,
177
+ nextMajor,
184
178
  nextMinor,
185
179
  nextPatch
186
180
  ].join(".");
187
181
  if (nextPrereleaseId) {
188
- if (nextMinor !== currentMinor || nextMajor !== currentMajor) {
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 '../definitions/${type}.js'`;
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("../definitions", "./definitions"));
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, isAdminWebSdk) {
499
+ static writeAllImportsFile(distDir, buffer) {
508
500
  ParserUtils.mkdirIfNotExist(distDir);
509
- fs__default.writeFileSync(path__default.join(distDir, `all-${isAdminWebSdk ? "admin" : "public"}-imports.ts`), ParserUtils.prependCopyrightHeader(buffer));
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 './${serviceName}/${cl}.js'`;
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 '../definitions/${importTypeClass}.js'`;
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 getPatchedDir = () => path__default.join(CliParser.getSwaggersOutputPath(), "patched");
1398
- static getGeneratedPublicFolder = () => `${CliParser.getOutputPath()}/generated-public`;
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 getServicePrefix = (servicePaths) => servicePaths[servicePaths.length - 1].split("/")[1];
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 targetSrcFolder = `${CliParser.getOutputPath()}/`;
1441
- const apiList = [];
1442
- for (const tag in tagToEndpointClassesRecord) {
1443
- const { className, classGenName } = ParserUtils.generateClassName(tag, CliParser.isAdmin());
1444
- const classBuffer = tagToEndpointClassesRecord[tag];
1445
- const imports = [.../* @__PURE__ */ new Set([...tagToSdkImportsRecord[tag], ...Object.values(tagToClassImportsRecord[className])])];
1446
- const apiImports = [.../* @__PURE__ */ new Set([...tagToSdkImportsRecord[tag], ...Object.values(tagToClassImportsRecord[className])])];
1447
- apiImports.push(`import { ${classGenName} } from './endpoints/${classGenName}.js'`);
1448
- ParserUtils.writeClassFile(DIST_ENDPOINTS_DIR, classGenName, classBuffer, imports);
1449
- const apiBuffer = tagToSdkClientRecord[tag];
1450
- const { apiGenName } = ParserUtils.generateApiName(tag, CliParser.isAdmin());
1451
- ParserUtils.writeApiFile(DIST_DIR, apiGenName, apiBuffer, apiImports, tagToSdkFunctionNamesRecord[tag]);
1452
- apiList.push(apiGenName);
1453
- indexImportsSet.add(ParserUtils.getRelativePathToWebSdkSrcFolder(path__default.join(DIST_ENDPOINTS_DIR, `${classGenName}`), targetSrcFolder));
1454
- indexImportsSet.add(ParserUtils.getRelativePathToWebSdkSrcFolder(path__default.join(DIST_DIR, `${apiGenName}`), targetSrcFolder));
1455
- }
1456
- const serviceNameTitle = ParserUtils.convertDashesToTitleCase(serviceName);
1457
- const apiIndexBuff = templateApiIndex(serviceName, serviceNameTitle, apiList);
1458
- ParserUtils.writeApiMainFile(generatedFolder, serviceNameTitle, apiIndexBuff);
1459
- indexImportsSet.add(ParserUtils.getRelativePathToWebSdkSrcFolder(path__default.join(generatedFolder, serviceNameTitle), targetSrcFolder));
1460
- const duplicates = /* @__PURE__ */ new Map();
1461
- const definitions = api?.components?.schemas || api.definitions;
1462
- for (const ref in definitions) {
1463
- const definition = definitions[ref];
1464
- let fileName = ParserUtils.parseRefType(ref);
1465
- const fileExist = fs__default.existsSync(path__default.join(DIST_DEFINITION_DIR, `${fileName}.ts`));
1466
- if (fileExist) {
1467
- fileName = ParserUtils.toCamelCaseWord(ref).replace(".", "").replace(".", "");
1468
- duplicates.set(ref, fileName);
1469
- }
1470
- const { buffer } = new TemplateZod().render(fileName, definition, /* @__PURE__ */ new Map());
1471
- ParserUtils.writeDefinitionFile(DIST_DEFINITION_DIR, fileName, buffer);
1472
- indexImportsSet.add(ParserUtils.getRelativePathToWebSdkSrcFolder(path__default.join(DIST_DEFINITION_DIR, fileName), targetSrcFolder));
1473
- }
1474
- for (const ref in definitions) {
1475
- const definition = definitions[ref];
1476
- const fileName = ParserUtils.parseRefType(ref);
1477
- const { buffer, duplicateFound } = new TemplateZod().render(fileName, definition, duplicates);
1478
- if (duplicateFound) {
1479
- ParserUtils.writeDefinitionFile(DIST_DEFINITION_DIR, fileName, buffer);
1480
- indexImportsSet.add(ParserUtils.getRelativePathToWebSdkSrcFolder(path__default.join(DIST_DEFINITION_DIR, fileName), targetSrcFolder));
1481
- }
1482
- }
1483
- for (const arrayClass of arrayDefinitions) {
1484
- const buffer = new TemplateZodArray().render(arrayClass);
1485
- ParserUtils.writeDefinitionFile(DIST_DEFINITION_DIR, arrayClass, buffer);
1486
- indexImportsSet.add(ParserUtils.getRelativePathToWebSdkSrcFolder(path__default.join(DIST_DEFINITION_DIR, arrayClass), targetSrcFolder));
1487
- }
1488
- ParserUtils.writeXVersion(DIST_DIR, api["x-version"], api.info);
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
- yargs.command("download-swaggers", "Download swaggers JSON files", (yargs2) => {
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"), CliParser.isAdmin());
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