From c4b70febc65857900ee5c4a4332bb219dfd2a78e Mon Sep 17 00:00:00 2001 From: amikhalev Date: Mon, 26 Jun 2017 15:21:56 -0600 Subject: [PATCH] Added string literal types for @types/semver --- types/semver/index.d.ts | 8 +++++--- types/semver/semver-tests.ts | 18 +++++++++++++++--- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/types/semver/index.d.ts b/types/semver/index.d.ts index 60e7275f7a..336fa85574 100644 --- a/types/semver/index.d.ts +++ b/types/semver/index.d.ts @@ -5,6 +5,8 @@ export const SEMVER_SPEC_VERSION: "2.0.0"; +export type ReleaseType = "major" | "premajor" | "minor" | "preminor" | "patch" | "prepatch" | "prerelease"; + /** * Return the parsed version, or null if it's not valid. */ @@ -16,7 +18,7 @@ export function clean(version: string, loose?: boolean): string; /** * Return the version incremented by the release type (major, minor, patch, or prerelease), or null if it's not valid. */ -export function inc(v: string, release: string, loose?: boolean): string; +export function inc(v: string, release: ReleaseType, loose?: boolean): string; /** * Return the major version number. */ @@ -76,7 +78,7 @@ export function rcompare(v1: string, v2: string, loose?: boolean): number; /** * Returns difference between two versions by the release type (major, premajor, minor, preminor, patch, prepatch, or prerelease), or null if the versions are the same. */ -export function diff(v1: string, v2: string, loose?: boolean): string; +export function diff(v1: string, v2: string, loose?: boolean): ReleaseType; // Ranges /** @@ -127,7 +129,7 @@ export class SemVer { compare(other: SemVer): number; compareMain(other: SemVer): number; comparePre(other: SemVer): number; - inc(release: string): SemVer; + inc(release: ReleaseType): SemVer; } export class Comparator { diff --git a/types/semver/semver-tests.ts b/types/semver/semver-tests.ts index b7a1299ad3..42088eef4d 100644 --- a/types/semver/semver-tests.ts +++ b/types/semver/semver-tests.ts @@ -4,7 +4,7 @@ let obj: {}; let bool: boolean; let num: number; let str: string; -let diff: string; +let diff: semver.ReleaseType; let x: any = null; let arr: any[]; let exp: RegExp; @@ -22,7 +22,13 @@ str = semver.clean(str); str = semver.valid(str, loose); str = semver.clean(str, loose); -str = semver.inc(str, str, loose); +str = semver.inc(str, "major", loose); +str = semver.inc(str, "premajor", loose); +str = semver.inc(str, "minor", loose); +str = semver.inc(str, "preminor", loose); +str = semver.inc(str, "patch", loose); +str = semver.inc(str, "prepatch", loose); +str = semver.inc(str, "prerelease", loose); num = semver.major(str, loose); num = semver.minor(str, loose); num = semver.patch(str, loose); @@ -66,7 +72,13 @@ strArr = ver.prerelease; num = ver.compare(ver); num = ver.compareMain(ver); num = ver.comparePre(ver); -ver = ver.inc(str); +ver = ver.inc("major"); +ver = ver.inc("premajor"); +ver = ver.inc("minor"); +ver = ver.inc("preminor"); +ver = ver.inc("patch"); +ver = ver.inc("prepatch"); +ver = ver.inc("prerelease"); const comp = new semver.Comparator(str, bool); str = comp.toString();