@accelbyte/codegen 2.0.0-beta.1 → 2.0.0-beta.3
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,15 +146,25 @@ export function ${className}(sdk: AccelbyteSDK, args?: ApiArgs) {
|
|
|
146
146
|
`;
|
|
147
147
|
};
|
|
148
148
|
|
|
149
|
+
const VersionBumpType = zod.z.enum(["CUTOFF", "RELEASE", "HOTFIX"]);
|
|
149
150
|
class VersionHelpers {
|
|
150
151
|
static getNextVersion = ({
|
|
151
152
|
codegenVersion,
|
|
152
153
|
serviceVersion,
|
|
153
154
|
predefinedMajorVersion,
|
|
154
|
-
|
|
155
|
+
versionBumpType,
|
|
155
156
|
sdkVersion,
|
|
156
157
|
nextPrereleaseId
|
|
157
158
|
}) => {
|
|
159
|
+
if (versionBumpType !== void 0) {
|
|
160
|
+
const parsed = VersionBumpType.safeParse(versionBumpType);
|
|
161
|
+
if (!parsed.success) {
|
|
162
|
+
throw new Error(`Invalid process.env.VERSION_BUMP_TYPE: ${versionBumpType}`);
|
|
163
|
+
}
|
|
164
|
+
if ((parsed.data === "HOTFIX" || parsed.data === "RELEASE") && nextPrereleaseId) {
|
|
165
|
+
throw new Error(`process.env.PRERELEASE_ID should be empty when process.env.VERSION_BUMP_TYPE is "HOTFIX" or "PRELEASE".`);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
158
168
|
const codegenSemvers = semver.parse(codegenVersion);
|
|
159
169
|
const serviceSemvers = semver.parse(serviceVersion);
|
|
160
170
|
const sdkSemvers = semver.parse(sdkVersion);
|
|
@@ -167,17 +177,30 @@ class VersionHelpers {
|
|
|
167
177
|
if (sdkSemvers === null) {
|
|
168
178
|
throw new Error(`Invalid sdk version: ${sdkVersion}`);
|
|
169
179
|
}
|
|
180
|
+
const { major: currentMajor, minor: currentMinor, patch: currentPatch, prerelease: currentPrerelease } = sdkSemvers;
|
|
170
181
|
const nextMajor = codegenSemvers.minor + predefinedMajorVersion;
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
182
|
+
let nextMinor = currentMinor;
|
|
183
|
+
let nextPatch = currentPatch;
|
|
184
|
+
switch (versionBumpType) {
|
|
185
|
+
case VersionBumpType.Enum.CUTOFF: {
|
|
186
|
+
nextMinor++;
|
|
187
|
+
nextPatch = 0;
|
|
188
|
+
break;
|
|
189
|
+
}
|
|
190
|
+
case VersionBumpType.Enum.RELEASE:
|
|
191
|
+
break;
|
|
192
|
+
case VersionBumpType.Enum.HOTFIX: {
|
|
193
|
+
nextPatch++;
|
|
194
|
+
break;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
174
197
|
let nextVersion = [
|
|
175
198
|
codegenSemvers.major + predefinedMajorVersion,
|
|
176
199
|
nextMinor,
|
|
177
200
|
nextPatch
|
|
178
201
|
].join(".");
|
|
179
202
|
if (nextPrereleaseId) {
|
|
180
|
-
if (nextMinor !== currentMinor ||
|
|
203
|
+
if (nextMinor !== currentMinor || nextMajor !== currentMajor) {
|
|
181
204
|
nextVersion += `-${nextPrereleaseId}.0`;
|
|
182
205
|
} else {
|
|
183
206
|
nextVersion += `-${sdkSemvers.prerelease.join(".")}`;
|
|
@@ -503,7 +526,7 @@ class ParserUtils {
|
|
|
503
526
|
codegenVersion: codegenPackageJSON.version,
|
|
504
527
|
serviceVersion: apiInfo["x-version"] || apiInfo.version || UNDEFINED_SWAGGER_SEMVER,
|
|
505
528
|
predefinedMajorVersion: packageJSON.predefinedMajorVersion,
|
|
506
|
-
|
|
529
|
+
versionBumpType: process.env.VERSION_BUMP_TYPE,
|
|
507
530
|
sdkVersion: packageJSON.version,
|
|
508
531
|
nextPrereleaseId: prereleaseId
|
|
509
532
|
});
|