From 6f42e1441bf85cedd7ca5fbc95883595c52299b2 Mon Sep 17 00:00:00 2001 From: Julien P Date: Tue, 8 Mar 2016 18:41:26 +0100 Subject: [PATCH] Add SemVerStatic MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit • Add static version of type definition to make usage with Angular easier • Add tests for the new interface --- semver/semver-tests.ts | 55 ++++++++++++++++++++++++++++++++++++++++++ semver/semver.d.ts | 35 +++++++++++++++++++++++++-- 2 files changed, 88 insertions(+), 2 deletions(-) diff --git a/semver/semver-tests.ts b/semver/semver-tests.ts index 484e4f0817..d0b72d7f3d 100644 --- a/semver/semver-tests.ts +++ b/semver/semver-tests.ts @@ -94,3 +94,58 @@ sets = range.set; var lims:SemVerModule.Comparator[]; lims = range.parseRange(str); + +/** + * Test Static version + */ +var semver: SemVerStatic = semver; +var testString: string; +var testNumber: number; +var testBoolean: boolean; + +testString = semver.SEMVER_SPEC_VERSION; + +testString = semver.valid('v1.0.0'); +testString = semver.valid('v1.0.0', true); +testString = semver.inc('v1.0.0', 'major'); +testString = semver.inc('v1.0.0', 'major', true); +testNumber = semver.major('v1.0.0'); +testNumber = semver.major('v1.0.0', true); +testNumber = semver.minor('v1.0.0'); +testNumber = semver.minor('v1.0.0', true); +testNumber = semver.patch('v1.0.0'); +testNumber = semver.patch('v1.0.0', true); + +testBoolean = semver.gt('v1.0.0', 'v2.0.0'); +testBoolean = semver.gt('v1.0.0', 'v2.0.0', true); +testBoolean = semver.gte('v1.0.0', 'v2.0.0'); +testBoolean = semver.gte('v1.0.0', 'v2.0.0', true); +testBoolean = semver.lt('v1.0.0', 'v2.0.0'); +testBoolean = semver.lt('v1.0.0', 'v2.0.0', true); +testBoolean = semver.lte('v1.0.0', 'v2.0.0'); +testBoolean = semver.lte('v1.0.0', 'v2.0.0', true); +testBoolean = semver.eq('v1.0.0', 'v2.0.0'); +testBoolean = semver.eq('v1.0.0', 'v2.0.0', true); +testBoolean = semver.neq('v1.0.0', 'v2.0.0'); +testBoolean = semver.neq('v1.0.0', 'v2.0.0', true); +testBoolean = semver.cmp('v1.0.0', '===', 'v2.0.0'); +testBoolean = semver.cmp('v1.0.0', '!==', 'v2.0.0', true); +testNumber = semver.compare('v1.0.0', 'v2.0.0'); +testNumber = semver.compare('v1.0.0', 'v2.0.0', true); +testNumber = semver.rcompare('v1.0.0', 'v2.0.0'); +testNumber = semver.rcompare('v1.0.0', 'v2.0.0', true); +testString = semver.diff('v1.0.0', 'v2.0.0'); +testString = semver.diff('v1.0.0', 'v2.0.0', true); + +testString = semver.validRange('^1.0.0'); +testString = semver.validRange('^1.0.0', true); +testBoolean = semver.satisfies('v1.0.0', '^1.0.0'); +testBoolean = semver.satisfies('v1.0.0', '^1.0.0', true); +testString = semver.maxSatisfying(['v1.0.0', 'v2.0.0'], '^1.0.0'); +testString = semver.maxSatisfying(['v1.0.0', 'v2.0.0'], '^1.0.0', true); +testBoolean = semver.gtr('v1.0.0', '^1.0.0'); +testBoolean = semver.gtr('v1.0.0', '^1.0.0', true); +testBoolean = semver.ltr('v1.0.0', '^1.0.0'); +testBoolean = semver.ltr('v1.0.0', '^1.0.0', true); +testBoolean = semver.outside('v1.0.0', '^1.0.0', '<'); +testBoolean = semver.outside('v1.0.0', '^1.0.0', '>', true); diff --git a/semver/semver.d.ts b/semver/semver.d.ts index 13441e235e..dfb5a3dd9f 100644 --- a/semver/semver.d.ts +++ b/semver/semver.d.ts @@ -3,8 +3,6 @@ // Definitions by: Bart van der Schoor // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/semver -declare var semver: SemVerModule.SemVer; - declare module SemVerModule { /** * Return the parsed version, or null if it's not valid. @@ -138,6 +136,39 @@ declare module SemVerModule { } } +interface SemVerStatic { + SemVer(version: string, loose?: boolean): SemVerModule.SemVer; + Comparator(comp: string, loose?: boolean): SemVerModule.Comparator; + Range(range: string, loose?: boolean): SemVerModule.Range; + clean(version: string, loose?: boolean): string; + + SEMVER_SPEC_VERSION: string; + + valid(v: string, loose?: boolean): string; + inc(v: string, release: string, loose?: boolean): string; + major(v: string, loose?: boolean): number; + minor(v: string, loose?: boolean): number; + patch(v: string, loose?: boolean): number; + gt(v1: string, v2: string, loose?: boolean): boolean; + gte(v1: string, v2: string, loose?: boolean): boolean; + lt(v1: string, v2: string, loose?: boolean): boolean; + lte(v1: string, v2: string, loose?: boolean): boolean; + eq(v1: string, v2: string, loose?: boolean): boolean; + neq(v1: string, v2: string, loose?: boolean): boolean; + cmp(v1: string, comparator: any, v2: string, loose?: boolean): boolean; + compare(v1: string, v2: string, loose?: boolean): number; + rcompare(v1: string, v2: string, loose?: boolean): number; + diff(v1: string, v2: string, loose?: boolean): string; + validRange(range: string, loose?: boolean): string; + satisfies(version: string, range: string, loose?: boolean): boolean; + maxSatisfying(versions: string[], range: string, loose?: boolean): string; + gtr(version: string, range: string, loose?: boolean): boolean; + ltr(version: string, range: string, loose?: boolean): boolean; + outside(version: string, range: string, hilo: string, loose?: boolean): boolean; +} + +declare var semver: SemVerStatic; + declare module "semver" { export = SemVerModule; }