Add SemVerStatic

• Add static version of type definition to make usage with Angular easier
• Add tests for the new interface
This commit is contained in:
Julien P 2016-03-08 18:41:26 +01:00
parent 9f0f926a12
commit 6f42e1441b
2 changed files with 88 additions and 2 deletions

View File

@ -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);

35
semver/semver.d.ts vendored
View File

@ -3,8 +3,6 @@
// Definitions by: Bart van der Schoor <https://github.com/Bartvds>
// 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;
}