@accelbyte/codegen 2.0.0-beta.1 → 2.0.0-beta.4
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.
|
@@ -78,6 +78,9 @@ class CliParser {
|
|
|
78
78
|
static getSnippetOutputPath = () => {
|
|
79
79
|
return CliParser.instance().argv.snippetOutput;
|
|
80
80
|
};
|
|
81
|
+
static skipVersionSync = () => {
|
|
82
|
+
return CliParser.instance().argv.skipVersionSync;
|
|
83
|
+
};
|
|
81
84
|
}
|
|
82
85
|
|
|
83
86
|
const getImportableVarMap$1 = () => ({
|
|
@@ -146,15 +149,25 @@ export function ${className}(sdk: AccelbyteSDK, args?: ApiArgs) {
|
|
|
146
149
|
`;
|
|
147
150
|
};
|
|
148
151
|
|
|
152
|
+
const VersionBumpType = zod.z.enum(["CUTOFF", "RELEASE", "HOTFIX"]);
|
|
149
153
|
class VersionHelpers {
|
|
150
154
|
static getNextVersion = ({
|
|
151
155
|
codegenVersion,
|
|
152
156
|
serviceVersion,
|
|
153
157
|
predefinedMajorVersion,
|
|
154
|
-
|
|
158
|
+
versionBumpType,
|
|
155
159
|
sdkVersion,
|
|
156
160
|
nextPrereleaseId
|
|
157
161
|
}) => {
|
|
162
|
+
if (versionBumpType !== void 0) {
|
|
163
|
+
const parsed = VersionBumpType.safeParse(versionBumpType);
|
|
164
|
+
if (!parsed.success) {
|
|
165
|
+
throw new Error(`Invalid process.env.VERSION_BUMP_TYPE: ${versionBumpType}`);
|
|
166
|
+
}
|
|
167
|
+
if ((parsed.data === "HOTFIX" || parsed.data === "RELEASE") && nextPrereleaseId) {
|
|
168
|
+
throw new Error(`process.env.PRERELEASE_ID should be empty when process.env.VERSION_BUMP_TYPE is "HOTFIX" or "PRELEASE".`);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
158
171
|
const codegenSemvers = semver.parse(codegenVersion);
|
|
159
172
|
const serviceSemvers = semver.parse(serviceVersion);
|
|
160
173
|
const sdkSemvers = semver.parse(sdkVersion);
|
|
@@ -167,20 +180,38 @@ class VersionHelpers {
|
|
|
167
180
|
if (sdkSemvers === null) {
|
|
168
181
|
throw new Error(`Invalid sdk version: ${sdkVersion}`);
|
|
169
182
|
}
|
|
170
|
-
const
|
|
171
|
-
const
|
|
172
|
-
const
|
|
173
|
-
|
|
183
|
+
const { major: currentMajor, minor: currentMinor, patch: currentPatch, prerelease: currentPrerelease } = sdkSemvers;
|
|
184
|
+
const nextMajor = codegenSemvers.major + predefinedMajorVersion;
|
|
185
|
+
const shouldResetVersion = nextMajor !== currentMajor;
|
|
186
|
+
let nextMinor = currentMinor;
|
|
187
|
+
let nextPatch = currentPatch;
|
|
188
|
+
switch (versionBumpType) {
|
|
189
|
+
case VersionBumpType.Enum.CUTOFF: {
|
|
190
|
+
nextMinor++;
|
|
191
|
+
nextPatch = 0;
|
|
192
|
+
break;
|
|
193
|
+
}
|
|
194
|
+
case VersionBumpType.Enum.RELEASE:
|
|
195
|
+
break;
|
|
196
|
+
case VersionBumpType.Enum.HOTFIX: {
|
|
197
|
+
nextPatch++;
|
|
198
|
+
break;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
if (shouldResetVersion) {
|
|
202
|
+
nextMinor = 0;
|
|
203
|
+
nextPatch = 0;
|
|
204
|
+
}
|
|
174
205
|
let nextVersion = [
|
|
175
206
|
codegenSemvers.major + predefinedMajorVersion,
|
|
176
207
|
nextMinor,
|
|
177
208
|
nextPatch
|
|
178
209
|
].join(".");
|
|
179
210
|
if (nextPrereleaseId) {
|
|
180
|
-
if (nextMinor !== currentMinor ||
|
|
211
|
+
if (nextMinor !== currentMinor || nextMajor !== currentMajor) {
|
|
181
212
|
nextVersion += `-${nextPrereleaseId}.0`;
|
|
182
213
|
} else {
|
|
183
|
-
nextVersion += `-${
|
|
214
|
+
nextVersion += `-${currentPrerelease.join(".")}`;
|
|
184
215
|
nextVersion = semver.inc(nextVersion, "prerelease", void 0, nextPrereleaseId);
|
|
185
216
|
}
|
|
186
217
|
}
|
|
@@ -493,17 +524,16 @@ class ParserUtils {
|
|
|
493
524
|
ParserUtils.mkdirIfNotExist(distDir);
|
|
494
525
|
fs.writeFileSync(path.join(distDir, `all-${isAdminWebSdk ? "admin" : "public"}-imports.ts`), ParserUtils.prependCopyrightHeader(buffer));
|
|
495
526
|
}
|
|
496
|
-
static syncPackageVersion(apiInfo,
|
|
497
|
-
if (
|
|
527
|
+
static syncPackageVersion(apiInfo, skipVersionSync, prereleaseId) {
|
|
528
|
+
if (skipVersionSync)
|
|
498
529
|
return;
|
|
499
|
-
}
|
|
500
530
|
const currDir = process.cwd();
|
|
501
531
|
const { packageJSON, pathToPackageJSON } = ParserUtils.getPackageJSONInfo(currDir);
|
|
502
532
|
const nextSemver = VersionHelpers.getNextVersion({
|
|
503
533
|
codegenVersion: codegenPackageJSON.version,
|
|
504
534
|
serviceVersion: apiInfo["x-version"] || apiInfo.version || UNDEFINED_SWAGGER_SEMVER,
|
|
505
|
-
predefinedMajorVersion: packageJSON.predefinedMajorVersion,
|
|
506
|
-
|
|
535
|
+
predefinedMajorVersion: packageJSON.predefinedMajorVersion || 0,
|
|
536
|
+
versionBumpType: process.env.VERSION_BUMP_TYPE,
|
|
507
537
|
sdkVersion: packageJSON.version,
|
|
508
538
|
nextPrereleaseId: prereleaseId
|
|
509
539
|
});
|
|
@@ -1376,7 +1406,7 @@ class CodeGenerator {
|
|
|
1376
1406
|
ParserUtils.mkdirIfNotExist(DIST_DIR);
|
|
1377
1407
|
ParserUtils.mkdirIfNotExist(DIST_DEFINITION_DIR);
|
|
1378
1408
|
ParserUtils.mkdirIfNotExist(DIST_ENDPOINTS_DIR);
|
|
1379
|
-
ParserUtils.syncPackageVersion(apiInfo, CliParser.
|
|
1409
|
+
ParserUtils.syncPackageVersion(apiInfo, CliParser.skipVersionSync(), process.env.PRERELEASE_ID);
|
|
1380
1410
|
const { apiArgumentsByTag, apiBufferByTag, classBufferByTag, dependenciesByTag, classImports, arrayDefinitions, snippetMap } = await CodeGenerator.iterateApi(api, serviceName);
|
|
1381
1411
|
if (CliParser.getSnippetOutputPath()) {
|
|
1382
1412
|
try {
|