@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
- predefinedMinorVersion,
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
- const nextMinor = codegenSemvers.minor + predefinedMinorVersion;
172
- const nextPatch = codegenSemvers.patch + serviceSemvers.patch;
173
- const { major: currentMajor, minor: currentMinor, patch: currentPatch } = sdkSemvers;
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 || nextPatch !== currentPatch || nextMajor !== currentMajor) {
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
- predefinedMinorVersion: packageJSON.predefinedMinorVersion,
529
+ versionBumpType: process.env.VERSION_BUMP_TYPE,
507
530
  sdkVersion: packageJSON.version,
508
531
  nextPrereleaseId: prereleaseId
509
532
  });