UNPKG

@alauda-fe/common

Version:

Alauda frontend team common codes.

40 lines (39 loc) 1.68 kB
/** * 基于相对严格的版本号规则,规范可以参考https://semver.org/ * 但在比较版本号时使用相对宽松的规则,具体可以查看compare-versions库的实现 * 自测用例:https://stackblitz.com/edit/typescript-jqszbj */ import { CompareOperator } from 'compare-versions'; export { CompareOperator as VersionCompareOperator, compareVersions as compareVersionToNum, satisfies as satisfiesVersion, } from 'compare-versions'; export interface VersionObject { version: string; major: number; minor: number; patch: number; prerelease?: Array<number | string>; } export declare const versionRegex: RegExp; /** * 获取有效的版本号,如果符合规范则返回,否则返回null * eg: getValidVersion('v1.2.3') // '1.2.3' */ export declare const getValidVersion: (version: string) => string; /** * 解析版本号,如果符合规范则返回一个包含版本信息的对象 */ export declare const parseVersion: (version: string) => VersionObject; /** * 使用给定规则比较两个版本 * lt: v1小于v2; gt: v1大于v2; lte: v1小于等于v2; gte: v1大于等于v2; * eg: compareVersion.lt('1.2.3', '9.8.7') // true * compareVersion.cmp('1.2.3', '9.8.7', '<') // true */ export declare const compareVersion: { lt: (v1: string, v2: string) => boolean; gt: (v1: string, v2: string) => boolean; eq: (v1: string, v2: string) => boolean; lte: (v1: string, v2: string) => boolean; gte: (v1: string, v2: string) => boolean; cmp: (v1: string, v2: string, operator: CompareOperator) => boolean; }; export declare const compareMinorVersion: (v1: string, v2: string) => 0 | 1 | -1;