@accelbyte/codegen 1.0.5 → 2.0.0-beta.1
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.
|
@@ -146,6 +146,50 @@ export function ${className}(sdk: AccelbyteSDK, args?: ApiArgs) {
|
|
|
146
146
|
`;
|
|
147
147
|
};
|
|
148
148
|
|
|
149
|
+
class VersionHelpers {
|
|
150
|
+
static getNextVersion = ({
|
|
151
|
+
codegenVersion,
|
|
152
|
+
serviceVersion,
|
|
153
|
+
predefinedMajorVersion,
|
|
154
|
+
predefinedMinorVersion,
|
|
155
|
+
sdkVersion,
|
|
156
|
+
nextPrereleaseId
|
|
157
|
+
}) => {
|
|
158
|
+
const codegenSemvers = semver.parse(codegenVersion);
|
|
159
|
+
const serviceSemvers = semver.parse(serviceVersion);
|
|
160
|
+
const sdkSemvers = semver.parse(sdkVersion);
|
|
161
|
+
if (codegenSemvers === null) {
|
|
162
|
+
throw new Error(`Invalid codegen version: ${codegenVersion}`);
|
|
163
|
+
}
|
|
164
|
+
if (serviceSemvers === null) {
|
|
165
|
+
throw new Error(`Invalid service version: ${serviceVersion}`);
|
|
166
|
+
}
|
|
167
|
+
if (sdkSemvers === null) {
|
|
168
|
+
throw new Error(`Invalid sdk version: ${sdkVersion}`);
|
|
169
|
+
}
|
|
170
|
+
const nextMajor = codegenSemvers.minor + predefinedMajorVersion;
|
|
171
|
+
const nextMinor = codegenSemvers.minor + predefinedMinorVersion;
|
|
172
|
+
const nextPatch = codegenSemvers.patch + serviceSemvers.patch;
|
|
173
|
+
const { major: currentMajor, minor: currentMinor, patch: currentPatch } = sdkSemvers;
|
|
174
|
+
let nextVersion = [
|
|
175
|
+
codegenSemvers.major + predefinedMajorVersion,
|
|
176
|
+
nextMinor,
|
|
177
|
+
nextPatch
|
|
178
|
+
].join(".");
|
|
179
|
+
if (nextPrereleaseId) {
|
|
180
|
+
if (nextMinor !== currentMinor || nextPatch !== currentPatch || nextMajor !== currentMajor) {
|
|
181
|
+
nextVersion += `-${nextPrereleaseId}.0`;
|
|
182
|
+
} else {
|
|
183
|
+
nextVersion += `-${sdkSemvers.prerelease.join(".")}`;
|
|
184
|
+
nextVersion = semver.inc(nextVersion, "prerelease", void 0, nextPrereleaseId);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
return nextVersion;
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
const codegenPackageJsonPath = path.join(__dirname, "../package.json");
|
|
192
|
+
const codegenPackageJSON = JSON.parse(fs.readFileSync(codegenPackageJsonPath, "utf-8"));
|
|
149
193
|
const UNDEFINED_SWAGGER_SEMVER = "0.0.0";
|
|
150
194
|
const REMOVED_KEYWORDS = [
|
|
151
195
|
"/admin/",
|
|
@@ -449,42 +493,22 @@ class ParserUtils {
|
|
|
449
493
|
ParserUtils.mkdirIfNotExist(distDir);
|
|
450
494
|
fs.writeFileSync(path.join(distDir, `all-${isAdminWebSdk ? "admin" : "public"}-imports.ts`), ParserUtils.prependCopyrightHeader(buffer));
|
|
451
495
|
}
|
|
452
|
-
static syncChangelog(packageVersion) {
|
|
453
|
-
const currDir = process.cwd();
|
|
454
|
-
const pathToChangelog = path.join(currDir, "./CHANGELOG.md");
|
|
455
|
-
let fileContent = fs.readFileSync(pathToChangelog, "utf-8");
|
|
456
|
-
const date = new Date().toISOString().slice(0, 10);
|
|
457
|
-
fileContent = "### " + packageVersion + " - " + date + `
|
|
458
|
-
|
|
459
|
-
- code-generated update
|
|
460
|
-
|
|
461
|
-
` + fileContent.trim();
|
|
462
|
-
fs.writeFileSync(pathToChangelog, fileContent, "utf-8");
|
|
463
|
-
}
|
|
464
496
|
static syncPackageVersion(apiInfo, isAdminWebSdk, prereleaseId) {
|
|
465
497
|
if (isAdminWebSdk) {
|
|
466
498
|
return;
|
|
467
499
|
}
|
|
468
500
|
const currDir = process.cwd();
|
|
469
501
|
const { packageJSON, pathToPackageJSON } = ParserUtils.getPackageJSONInfo(currDir);
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
nextSemver += `-${id}.${rest.join(".")}`;
|
|
479
|
-
}
|
|
480
|
-
if (!prereleaseId) {
|
|
481
|
-
nextSemver = semver.inc(nextSemver, "patch");
|
|
482
|
-
} else {
|
|
483
|
-
nextSemver = semver.inc(nextSemver, "prerelease", void 0, prereleaseId);
|
|
484
|
-
}
|
|
502
|
+
const nextSemver = VersionHelpers.getNextVersion({
|
|
503
|
+
codegenVersion: codegenPackageJSON.version,
|
|
504
|
+
serviceVersion: apiInfo["x-version"] || apiInfo.version || UNDEFINED_SWAGGER_SEMVER,
|
|
505
|
+
predefinedMajorVersion: packageJSON.predefinedMajorVersion,
|
|
506
|
+
predefinedMinorVersion: packageJSON.predefinedMinorVersion,
|
|
507
|
+
sdkVersion: packageJSON.version,
|
|
508
|
+
nextPrereleaseId: prereleaseId
|
|
509
|
+
});
|
|
485
510
|
packageJSON.version = nextSemver;
|
|
486
511
|
fs.writeFileSync(pathToPackageJSON, JSON.stringify(packageJSON, null, 2));
|
|
487
|
-
ParserUtils.syncChangelog(packageJSON.version);
|
|
488
512
|
}
|
|
489
513
|
static getPackageJSONInfo(dir) {
|
|
490
514
|
const pathToPackageJSON = path.join(dir, "./package.json");
|
|
@@ -1347,11 +1371,12 @@ class CodeGenerator {
|
|
|
1347
1371
|
const swaggerFilePath = `${CliParser.getSwaggersOutputPath()}/${swaggerFile}`;
|
|
1348
1372
|
const api = await parser.parse(swaggerFilePath);
|
|
1349
1373
|
const indexImportsSet = /* @__PURE__ */ new Set();
|
|
1350
|
-
|
|
1374
|
+
const apiInfo = { ...api.info, "x-version": api["x-version"]?.version };
|
|
1375
|
+
console.log("----------\nGenerating API:", { title: apiInfo.title, version: apiInfo.version });
|
|
1351
1376
|
ParserUtils.mkdirIfNotExist(DIST_DIR);
|
|
1352
1377
|
ParserUtils.mkdirIfNotExist(DIST_DEFINITION_DIR);
|
|
1353
1378
|
ParserUtils.mkdirIfNotExist(DIST_ENDPOINTS_DIR);
|
|
1354
|
-
ParserUtils.syncPackageVersion(
|
|
1379
|
+
ParserUtils.syncPackageVersion(apiInfo, CliParser.isAdmin(), process.env.PRERELEASE_ID);
|
|
1355
1380
|
const { apiArgumentsByTag, apiBufferByTag, classBufferByTag, dependenciesByTag, classImports, arrayDefinitions, snippetMap } = await CodeGenerator.iterateApi(api, serviceName);
|
|
1356
1381
|
if (CliParser.getSnippetOutputPath()) {
|
|
1357
1382
|
try {
|
|
@@ -1441,33 +1466,36 @@ class SwaggerDownloader {
|
|
|
1441
1466
|
});
|
|
1442
1467
|
});
|
|
1443
1468
|
};
|
|
1444
|
-
static downloadFile = (targetFileName, url) => {
|
|
1469
|
+
static downloadFile = async (targetFileName, url) => {
|
|
1445
1470
|
const destFile = SwaggerDownloader.getDestFile(targetFileName);
|
|
1446
1471
|
let data = "";
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
data
|
|
1472
|
+
return new Promise((resolve) => {
|
|
1473
|
+
const request = https__namespace.get(url, function(response) {
|
|
1474
|
+
response.on("data", (chunk) => {
|
|
1475
|
+
data += chunk;
|
|
1476
|
+
});
|
|
1477
|
+
response.on("end", () => {
|
|
1478
|
+
if (response.statusCode !== 200) {
|
|
1479
|
+
console.log(`SwaggerDownload error with status code: ${response.statusCode}`);
|
|
1480
|
+
} else {
|
|
1481
|
+
fs__namespace.writeFileSync(destFile, JSON.stringify(JSON.parse(data), null, 2), "utf-8");
|
|
1482
|
+
SwaggerDownloader.postSanitizeDownloadedFile(destFile);
|
|
1483
|
+
console.log(`SwaggerDownload ${url} completed with status code: ${response.statusCode}`);
|
|
1484
|
+
}
|
|
1485
|
+
resolve(void 0);
|
|
1486
|
+
});
|
|
1450
1487
|
});
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
console.log(`SwaggerDownload error with status code: ${response.statusCode}`);
|
|
1454
|
-
} else {
|
|
1455
|
-
fs__namespace.writeFileSync(destFile, JSON.stringify(JSON.parse(data), null, 2), "utf-8");
|
|
1456
|
-
SwaggerDownloader.postSanitizeDownloadedFile(destFile);
|
|
1457
|
-
console.log(`SwaggerDownload ${url} completed with status code: ${response.statusCode}`);
|
|
1458
|
-
}
|
|
1488
|
+
request.on("error", (err) => {
|
|
1489
|
+
console.log(`SwaggerDownloader failed for "${targetFileName}" and "${url}"`, err);
|
|
1459
1490
|
});
|
|
1460
1491
|
});
|
|
1461
|
-
request.on("error", (err) => {
|
|
1462
|
-
console.log(`SwaggerDownloader failed for "${targetFileName}" and "${url}"`, err);
|
|
1463
|
-
});
|
|
1464
1492
|
};
|
|
1465
|
-
static main = () => {
|
|
1493
|
+
static main = async () => {
|
|
1466
1494
|
const swaggers = CliParser.getConfigFile();
|
|
1467
1495
|
for (const ref in swaggers) {
|
|
1468
1496
|
const targetFileName = swaggers[ref][2];
|
|
1469
1497
|
const url = swaggers[ref][3];
|
|
1470
|
-
SwaggerDownloader.downloadFile(targetFileName, url);
|
|
1498
|
+
await SwaggerDownloader.downloadFile(targetFileName, url);
|
|
1471
1499
|
}
|
|
1472
1500
|
};
|
|
1473
1501
|
}
|