@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.
|
@@ -123,15 +123,25 @@ export function ${className}(sdk: AccelbyteSDK, args?: ApiArgs) {
|
|
|
123
123
|
`;
|
|
124
124
|
};
|
|
125
125
|
|
|
126
|
+
const VersionBumpType = z.enum(["CUTOFF", "RELEASE", "HOTFIX"]);
|
|
126
127
|
class VersionHelpers {
|
|
127
128
|
static getNextVersion = ({
|
|
128
129
|
codegenVersion,
|
|
129
130
|
serviceVersion,
|
|
130
131
|
predefinedMajorVersion,
|
|
131
|
-
|
|
132
|
+
versionBumpType,
|
|
132
133
|
sdkVersion,
|
|
133
134
|
nextPrereleaseId
|
|
134
135
|
}) => {
|
|
136
|
+
if (versionBumpType !== void 0) {
|
|
137
|
+
const parsed = VersionBumpType.safeParse(versionBumpType);
|
|
138
|
+
if (!parsed.success) {
|
|
139
|
+
throw new Error(`Invalid process.env.VERSION_BUMP_TYPE: ${versionBumpType}`);
|
|
140
|
+
}
|
|
141
|
+
if ((parsed.data === "HOTFIX" || parsed.data === "RELEASE") && nextPrereleaseId) {
|
|
142
|
+
throw new Error(`process.env.PRERELEASE_ID should be empty when process.env.VERSION_BUMP_TYPE is "HOTFIX" or "PRELEASE".`);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
135
145
|
const codegenSemvers = semver.parse(codegenVersion);
|
|
136
146
|
const serviceSemvers = semver.parse(serviceVersion);
|
|
137
147
|
const sdkSemvers = semver.parse(sdkVersion);
|
|
@@ -144,17 +154,30 @@ class VersionHelpers {
|
|
|
144
154
|
if (sdkSemvers === null) {
|
|
145
155
|
throw new Error(`Invalid sdk version: ${sdkVersion}`);
|
|
146
156
|
}
|
|
157
|
+
const { major: currentMajor, minor: currentMinor, patch: currentPatch, prerelease: currentPrerelease } = sdkSemvers;
|
|
147
158
|
const nextMajor = codegenSemvers.minor + predefinedMajorVersion;
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
159
|
+
let nextMinor = currentMinor;
|
|
160
|
+
let nextPatch = currentPatch;
|
|
161
|
+
switch (versionBumpType) {
|
|
162
|
+
case VersionBumpType.Enum.CUTOFF: {
|
|
163
|
+
nextMinor++;
|
|
164
|
+
nextPatch = 0;
|
|
165
|
+
break;
|
|
166
|
+
}
|
|
167
|
+
case VersionBumpType.Enum.RELEASE:
|
|
168
|
+
break;
|
|
169
|
+
case VersionBumpType.Enum.HOTFIX: {
|
|
170
|
+
nextPatch++;
|
|
171
|
+
break;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
151
174
|
let nextVersion = [
|
|
152
175
|
codegenSemvers.major + predefinedMajorVersion,
|
|
153
176
|
nextMinor,
|
|
154
177
|
nextPatch
|
|
155
178
|
].join(".");
|
|
156
179
|
if (nextPrereleaseId) {
|
|
157
|
-
if (nextMinor !== currentMinor ||
|
|
180
|
+
if (nextMinor !== currentMinor || nextMajor !== currentMajor) {
|
|
158
181
|
nextVersion += `-${nextPrereleaseId}.0`;
|
|
159
182
|
} else {
|
|
160
183
|
nextVersion += `-${sdkSemvers.prerelease.join(".")}`;
|
|
@@ -480,7 +503,7 @@ class ParserUtils {
|
|
|
480
503
|
codegenVersion: codegenPackageJSON.version,
|
|
481
504
|
serviceVersion: apiInfo["x-version"] || apiInfo.version || UNDEFINED_SWAGGER_SEMVER,
|
|
482
505
|
predefinedMajorVersion: packageJSON.predefinedMajorVersion,
|
|
483
|
-
|
|
506
|
+
versionBumpType: process.env.VERSION_BUMP_TYPE,
|
|
484
507
|
sdkVersion: packageJSON.version,
|
|
485
508
|
nextPrereleaseId: prereleaseId
|
|
486
509
|
});
|