UNPKG

@clerk/shared

Version:

Internal package utils used by the Clerk SDKs

30 lines (28 loc) 1.41 kB
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); //#region src/versionSelector.ts /** * This version selector is a bit complicated, so here is the flow: * 1. Use the clerkJSVersion prop on the provider * 2. Use the exact `@clerk/clerk-js` version if it is a `@snapshot` prerelease * 3. Use the prerelease tag of `@clerk/clerk-js` or the packageVersion provided * 4. Fallback to the major version of `@clerk/clerk-js` or the packageVersion provided * * @param clerkJSVersion - The optional clerkJSVersion prop on the provider * @param packageVersion - The version of `@clerk/clerk-js` that will be used if an explicit version is not provided * @returns The npm tag, version or major version to use */ const versionSelector = (clerkJSVersion, packageVersion = "6.25.6") => { if (clerkJSVersion) return clerkJSVersion; const prereleaseTag = getPrereleaseTag(packageVersion); if (prereleaseTag) { if (prereleaseTag === "snapshot") return packageVersion; return prereleaseTag; } return getMajorVersion(packageVersion); }; const getPrereleaseTag = (packageVersion) => packageVersion.trim().replace(/^v/, "").match(/-(.+?)(\.|$)/)?.[1]; const getMajorVersion = (packageVersion) => packageVersion.trim().replace(/^v/, "").split(".")[0]; //#endregion exports.getMajorVersion = getMajorVersion; exports.versionSelector = versionSelector; //# sourceMappingURL=versionSelector.js.map