export function isExactSemverVersion(value: string): boolean { return EXACT_SEMVER_VERSION_RE.test(value.trim());
}
export function isPrereleaseSemverVersion(value: string): boolean { const match = EXACT_SEMVER_VERSION_RE.exec(value.trim()); returnBoolean(match?.[4]);
}
export function isPrereleaseResolutionAllowed(params: {
spec: ParsedRegistryNpmSpec;
resolvedVersion?: string;
}): boolean { if (!params.resolvedVersion || !isPrereleaseSemverVersion(params.resolvedVersion)) { returntrue;
} if (params.spec.selectorKind === "none") { returnfalse;
} if (params.spec.selectorKind === "exact-version") { return params.spec.selectorIsPrerelease;
} return normalizeLowercaseStringOrEmpty(params.spec.selector) !== "latest";
}
export function formatPrereleaseResolutionError(params: {
spec: ParsedRegistryNpmSpec;
resolvedVersion: string;
}): string { const selectorHint =
params.spec.selectorKind === "none" ||
normalizeLowercaseStringOrEmpty(params.spec.selector) === "latest"
? `Use "${params.spec.name}@beta" (or another prerelease tag) or an exact prerelease version to opt in explicitly.`
: `Use an explicit prerelease tag or exact prerelease version if you want prerelease installs.`; return `Resolved ${params.spec.raw} to prerelease version ${params.resolvedVersion}, but prereleases are only installed when explicitly requested. ${selectorHint}`;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.