@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.
|
@@ -55,6 +55,9 @@ class CliParser {
|
|
|
55
55
|
static getSnippetOutputPath = () => {
|
|
56
56
|
return CliParser.instance().argv.snippetOutput;
|
|
57
57
|
};
|
|
58
|
+
static skipVersionSync = () => {
|
|
59
|
+
return CliParser.instance().argv.skipVersionSync;
|
|
60
|
+
};
|
|
58
61
|
}
|
|
59
62
|
|
|
60
63
|
const getImportableVarMap$1 = () => ({
|
|
@@ -123,15 +126,25 @@ export function ${className}(sdk: AccelbyteSDK, args?: ApiArgs) {
|
|
|
123
126
|
`;
|
|
124
127
|
};
|
|
125
128
|
|
|
129
|
+
const VersionBumpType = z.enum(["CUTOFF", "RELEASE", "HOTFIX"]);
|
|
126
130
|
class VersionHelpers {
|
|
127
131
|
static getNextVersion = ({
|
|
128
132
|
codegenVersion,
|
|
129
133
|
serviceVersion,
|
|
130
134
|
predefinedMajorVersion,
|
|
131
|
-
|
|
135
|
+
versionBumpType,
|
|
132
136
|
sdkVersion,
|
|
133
137
|
nextPrereleaseId
|
|
134
138
|
}) => {
|
|
139
|
+
if (versionBumpType !== void 0) {
|
|
140
|
+
const parsed = VersionBumpType.safeParse(versionBumpType);
|
|
141
|
+
if (!parsed.success) {
|
|
142
|
+
throw new Error(`Invalid process.env.VERSION_BUMP_TYPE: ${versionBumpType}`);
|
|
143
|
+
}
|
|
144
|
+
if ((parsed.data === "HOTFIX" || parsed.data === "RELEASE") && nextPrereleaseId) {
|
|
145
|
+
throw new Error(`process.env.PRERELEASE_ID should be empty when process.env.VERSION_BUMP_TYPE is "HOTFIX" or "PRELEASE".`);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
135
148
|
const codegenSemvers = semver.parse(codegenVersion);
|
|
136
149
|
const serviceSemvers = semver.parse(serviceVersion);
|
|
137
150
|
const sdkSemvers = semver.parse(sdkVersion);
|
|
@@ -144,20 +157,38 @@ class VersionHelpers {
|
|
|
144
157
|
if (sdkSemvers === null) {
|
|
145
158
|
throw new Error(`Invalid sdk version: ${sdkVersion}`);
|
|
146
159
|
}
|
|
147
|
-
const
|
|
148
|
-
const
|
|
149
|
-
const
|
|
150
|
-
|
|
160
|
+
const { major: currentMajor, minor: currentMinor, patch: currentPatch, prerelease: currentPrerelease } = sdkSemvers;
|
|
161
|
+
const nextMajor = codegenSemvers.major + predefinedMajorVersion;
|
|
162
|
+
const shouldResetVersion = nextMajor !== currentMajor;
|
|
163
|
+
let nextMinor = currentMinor;
|
|
164
|
+
let nextPatch = currentPatch;
|
|
165
|
+
switch (versionBumpType) {
|
|
166
|
+
case VersionBumpType.Enum.CUTOFF: {
|
|
167
|
+
nextMinor++;
|
|
168
|
+
nextPatch = 0;
|
|
169
|
+
break;
|
|
170
|
+
}
|
|
171
|
+
case VersionBumpType.Enum.RELEASE:
|
|
172
|
+
break;
|
|
173
|
+
case VersionBumpType.Enum.HOTFIX: {
|
|
174
|
+
nextPatch++;
|
|
175
|
+
break;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
if (shouldResetVersion) {
|
|
179
|
+
nextMinor = 0;
|
|
180
|
+
nextPatch = 0;
|
|
181
|
+
}
|
|
151
182
|
let nextVersion = [
|
|
152
183
|
codegenSemvers.major + predefinedMajorVersion,
|
|
153
184
|
nextMinor,
|
|
154
185
|
nextPatch
|
|
155
186
|
].join(".");
|
|
156
187
|
if (nextPrereleaseId) {
|
|
157
|
-
if (nextMinor !== currentMinor ||
|
|
188
|
+
if (nextMinor !== currentMinor || nextMajor !== currentMajor) {
|
|
158
189
|
nextVersion += `-${nextPrereleaseId}.0`;
|
|
159
190
|
} else {
|
|
160
|
-
nextVersion += `-${
|
|
191
|
+
nextVersion += `-${currentPrerelease.join(".")}`;
|
|
161
192
|
nextVersion = semver.inc(nextVersion, "prerelease", void 0, nextPrereleaseId);
|
|
162
193
|
}
|
|
163
194
|
}
|
|
@@ -470,17 +501,16 @@ class ParserUtils {
|
|
|
470
501
|
ParserUtils.mkdirIfNotExist(distDir);
|
|
471
502
|
fs__default.writeFileSync(path__default.join(distDir, `all-${isAdminWebSdk ? "admin" : "public"}-imports.ts`), ParserUtils.prependCopyrightHeader(buffer));
|
|
472
503
|
}
|
|
473
|
-
static syncPackageVersion(apiInfo,
|
|
474
|
-
if (
|
|
504
|
+
static syncPackageVersion(apiInfo, skipVersionSync, prereleaseId) {
|
|
505
|
+
if (skipVersionSync)
|
|
475
506
|
return;
|
|
476
|
-
}
|
|
477
507
|
const currDir = process.cwd();
|
|
478
508
|
const { packageJSON, pathToPackageJSON } = ParserUtils.getPackageJSONInfo(currDir);
|
|
479
509
|
const nextSemver = VersionHelpers.getNextVersion({
|
|
480
510
|
codegenVersion: codegenPackageJSON.version,
|
|
481
511
|
serviceVersion: apiInfo["x-version"] || apiInfo.version || UNDEFINED_SWAGGER_SEMVER,
|
|
482
|
-
predefinedMajorVersion: packageJSON.predefinedMajorVersion,
|
|
483
|
-
|
|
512
|
+
predefinedMajorVersion: packageJSON.predefinedMajorVersion || 0,
|
|
513
|
+
versionBumpType: process.env.VERSION_BUMP_TYPE,
|
|
484
514
|
sdkVersion: packageJSON.version,
|
|
485
515
|
nextPrereleaseId: prereleaseId
|
|
486
516
|
});
|
|
@@ -1353,7 +1383,7 @@ class CodeGenerator {
|
|
|
1353
1383
|
ParserUtils.mkdirIfNotExist(DIST_DIR);
|
|
1354
1384
|
ParserUtils.mkdirIfNotExist(DIST_DEFINITION_DIR);
|
|
1355
1385
|
ParserUtils.mkdirIfNotExist(DIST_ENDPOINTS_DIR);
|
|
1356
|
-
ParserUtils.syncPackageVersion(apiInfo, CliParser.
|
|
1386
|
+
ParserUtils.syncPackageVersion(apiInfo, CliParser.skipVersionSync(), process.env.PRERELEASE_ID);
|
|
1357
1387
|
const { apiArgumentsByTag, apiBufferByTag, classBufferByTag, dependenciesByTag, classImports, arrayDefinitions, snippetMap } = await CodeGenerator.iterateApi(api, serviceName);
|
|
1358
1388
|
if (CliParser.getSnippetOutputPath()) {
|
|
1359
1389
|
try {
|