UNPKG

@dev-build-deploy/version-it

Version:
148 lines (147 loc) 4.72 kB
import { IVersion } from "./interfaces"; import { Modifier } from "./modifiers"; /** * CalVer formats * @type CalVerFormat * @member YYYY Year (e.g. 2022) * @member YY Year (e.g. 22) * @member 0Y Year (e.g. 22) * @member MM Month (e.g. 1) * @member 0M Month (e.g. 01) * @member WW Week (e.g. 1) * @member 0W Week (e.g. 01) * @member DD Day (e.g. 1) * @member 0D Day (e.g. 01) * @member MAJOR Major version * @member MINOR Minor version * @member MICRO Micro version */ type CalVerFormat = "YYYY" | "YY" | "0Y" | "MM" | "0M" | "WW" | "0W" | "DD" | "0D" | "MAJOR" | "MINOR" | "MICRO"; /** * CalVer increments * @type CalVerIncrement * @member calendar Increments the calendar (i.e. YYYY, MM, WW, DD) * @member major Increments the major version * @member minor Increments the minor version * @member micro Increments the micro version * @member modifier Increments the modifier */ export type CalVerIncrement = "CALENDAR" | "MAJOR" | "MINOR" | "MICRO" | "MODIFIER"; /** * CalVer format * @interface IFormat * @member regex Regex used to parse the CalVer * @member major Major version format * @member minor Minor version format * @member micro Micro version format */ export interface IFormat { regex: RegExp; major: CalVerFormat; minor: CalVerFormat; micro?: CalVerFormat; } /** * A simple CalVer implementation * @interface ICalVer * @member major Major version * @member minor Minor version * @member micro Micro version * @member modifiers Modifiers * @member prefix Prefix */ export interface ICalVer { prefix?: string; major: number; minor: number; micro?: number; modifiers: Modifier[]; } /** * A simple CalVer implementation * @class CalVer * @member major Major version * @member minor Minor version * @member micro Micro version * @member modifier Modifier * @method toString Returns the CalVer as a string * @method increment Increments the CalVer by the provided type */ export declare class CalVer implements IVersion<CalVer, CalVerIncrement>, ICalVer { prefix?: string; major: number; minor: number; micro?: number; modifiers: Modifier[]; format: IFormat; constructor(format: string | IFormat, version?: Partial<ICalVer>, prefix?: string); /** * Creates a CalVer object from a string * @param format CalVer formatting * @param versin Version string * @param prefix Prefix associated with the version * @returns CalVer or null if the version string is invalid */ static fromString(format: string | IFormat, version: string, prefix?: string): CalVer | null; /** * Updates versions associated with calendar items (i.e. YYYY, MM, WW, DD) * in the provided CalVer format. * @param format The CalVer format * @returns The updated version based on the current date. */ private updateCalendar; /** * Returns a string, where the value is formatted correctly based on the provided format. * @param value Value to format * @param format CalVer format to use * @returns Formatted value */ private formatVersionCore; /** * Returns the CalVer as a string * @returns CalVer as a string */ toString(): string; /** * Increments the CalVer by the provided type; * - "CALENDAR": Increments the calendar (i.e. YYYY, MM, WW, DD) * - "MAJOR": Increments the major version * - "MINOR": Increments the minor version * - "MICRO": Increments the micro version * - "MODIFIER": Increments the modifier * @param type Type of increment * @param modifier Modifier to increment * @returns Incremented CalVer */ increment(type: CalVerIncrement, modifier?: string): CalVer; /** * Confirms that the provided format is identical to the current format * @param other Other format to compare against * @returns True if the formats are identical, false otherwise */ private isFormatIdentical; isEqualTo(other: CalVer): boolean; isGreaterThan(other: CalVer): boolean; isLessThan(other: CalVer): boolean; /** * Returns 0 when current version is equal to the provided version, * 1 when current version is greater than the provided version, * and -1 when current version is less than the provided version. * * Resulting in the following ordering (taking `YYYY.0M.MICRO` as an example): * * 2022.03.1 * 2022.03.2 * 2022.11.1 * 2022.11.1-alpha.1 * 2022.11.1-alpha.2 * 2022.11.1-beta.1 * 2022.11.2 * 2023.01.1 * * @param other CalVer to compare to * @returns */ compareTo(other: CalVer): number; } export {};