@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
- predefinedMinorVersion,
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
- const nextMinor = codegenSemvers.minor + predefinedMinorVersion;
149
- const nextPatch = codegenSemvers.patch + serviceSemvers.patch;
150
- const { major: currentMajor, minor: currentMinor, patch: currentPatch } = sdkSemvers;
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 || nextPatch !== currentPatch || nextMajor !== currentMajor) {
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
- predefinedMinorVersion: packageJSON.predefinedMinorVersion,
506
+ versionBumpType: process.env.VERSION_BUMP_TYPE,
484
507
  sdkVersion: packageJSON.version,
485
508
  nextPrereleaseId: prereleaseId
486
509
  });