From ce340e14bc4cddb77f1dd0e58faafff1e5f0c3e5 Mon Sep 17 00:00:00 2001 From: Alexandru Ciuca Date: Mon, 28 Sep 2015 17:47:43 +0300 Subject: [PATCH] node-uuid - split files and tests per environment --- node-uuid/README.md | 8 +++ node-uuid/node-uuid-base.d.ts | 52 ++++++++++++++++++ node-uuid/node-uuid-cjs-tests.ts | 36 +++++++++++++ node-uuid/node-uuid-cjs.d.ts | 10 ++++ node-uuid/node-uuid-global-tests.ts | 27 ++++++++++ node-uuid/node-uuid-global.d.ts | 4 ++ node-uuid/node-uuid-tests.ts | 40 +++++++------- node-uuid/node-uuid.d.ts | 81 +++++++++++------------------ 8 files changed, 188 insertions(+), 70 deletions(-) create mode 100644 node-uuid/README.md create mode 100644 node-uuid/node-uuid-base.d.ts create mode 100644 node-uuid/node-uuid-cjs-tests.ts create mode 100644 node-uuid/node-uuid-cjs.d.ts create mode 100644 node-uuid/node-uuid-global-tests.ts create mode 100644 node-uuid/node-uuid-global.d.ts diff --git a/node-uuid/README.md b/node-uuid/README.md new file mode 100644 index 0000000000..234d608e8d --- /dev/null +++ b/node-uuid/README.md @@ -0,0 +1,8 @@ +This folder contains definitions for the node-uuid library in 3 flavors: + +- node-uuid.d.ts + - for use in node environment (default) +- node-uuid-global.d.ts + - for use in browser environment as a global variable +- node-uuid-cjs.d.ts + - for use in browser environment as a CommonJS module (using a loader such as webpack) \ No newline at end of file diff --git a/node-uuid/node-uuid-base.d.ts b/node-uuid/node-uuid-base.d.ts new file mode 100644 index 0000000000..255bb6b334 --- /dev/null +++ b/node-uuid/node-uuid-base.d.ts @@ -0,0 +1,52 @@ +// Type definitions for node-uuid.js +// Project: https://github.com/broofa/node-uuid +// Definitions by: Jeff May +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/** Common definitions for all environments */ +declare namespace __NodeUUID { + interface UUIDOptions { + + /** + * Node id as Array of 6 bytes (per 4.1.6). + * Default: Randomly generated ID. See note 1. + */ + node?: any[]; + + /** + * (Number between 0 - 0x3fff) RFC clock sequence. + * Default: An internally maintained clockseq is used. + */ + clockseq?: number; + + /** + * (Number | Date) Time in milliseconds since unix Epoch. + * Default: The current time is used. + */ + msecs?: number|Date; + + /** + * (Number between 0-9999) additional time, in 100-nanosecond units. Ignored if msecs is unspecified. + * Default: internal uuid counter is used, as per 4.2.1.2. + */ + nsecs?: number; + } + + interface UUID { + v1(options?: UUIDOptions): string; + v1(options?: UUIDOptions, buffer?: number[], offset?: number): number[]; + + v2(options?: UUIDOptions): string; + v2(options?: UUIDOptions, buffer?: number[], offset?: number): number[]; + + v3(options?: UUIDOptions): string; + v3(options?: UUIDOptions, buffer?: number[], offset?: number): number[]; + + v4(options?: UUIDOptions): string; + v4(options?: UUIDOptions, buffer?: number[], offset?: number): number[]; + + parse(id: string, buffer?: number[], offset?: number): number[]; + + unparse(buffer: number[], offset?: number): string; + } +} diff --git a/node-uuid/node-uuid-cjs-tests.ts b/node-uuid/node-uuid-cjs-tests.ts new file mode 100644 index 0000000000..e2d1d57d71 --- /dev/null +++ b/node-uuid/node-uuid-cjs-tests.ts @@ -0,0 +1,36 @@ +/// + +import nodeUuid = require('node-uuid'); + +var uid1: string = nodeUuid.v1(); +var uid2: string = nodeUuid.v2(); +var uid3: string = nodeUuid.v3(); +var uid4: string = nodeUuid.v4(); + +var options: __NodeUUID.UUIDOptions = { + node: [], + clockseq: 2, + nsecs: 3, + msecs: new Date() +}; + +var padding: number[] = [0, 1, 2]; + +var offset: number = 15; + +var buf : number[] = []; + +nodeUuid.parse(uid4, buf, offset); +nodeUuid.unparse(buf, offset); + +var uid21: number[] = nodeUuid.v1(options, padding, offset); +var uid22: number[] = nodeUuid.v2(options, padding, offset); +var uid23: number[] = nodeUuid.v3(options, padding, offset); +var uid24: number[] = nodeUuid.v4(options, padding, offset); + +var buffer: Buffer; + +var uid31: Buffer = nodeUuid.v1(options, buffer, offset); +var uid32: Buffer = nodeUuid.v2(options, buffer, offset); +var uid33: Buffer = nodeUuid.v3(options, buffer, offset); +var uid34: Buffer = nodeUuid.v4(options, buffer, offset); diff --git a/node-uuid/node-uuid-cjs.d.ts b/node-uuid/node-uuid-cjs.d.ts new file mode 100644 index 0000000000..abbee3eaf6 --- /dev/null +++ b/node-uuid/node-uuid-cjs.d.ts @@ -0,0 +1,10 @@ +/// + +/** + * Expose as CommonJS module + * For use in node environment or browser environment (using webpack or other module loaders) + */ +declare module "node-uuid" { + var uuid: __NodeUUID.UUID; + export = uuid; +} \ No newline at end of file diff --git a/node-uuid/node-uuid-global-tests.ts b/node-uuid/node-uuid-global-tests.ts new file mode 100644 index 0000000000..ad98519aa0 --- /dev/null +++ b/node-uuid/node-uuid-global-tests.ts @@ -0,0 +1,27 @@ +/// + +var uid1: string = uuid.v1(); +var uid2: string = uuid.v2(); +var uid3: string = uuid.v3(); +var uid4: string = uuid.v4(); + +var options: __NodeUUID.UUIDOptions = { + node: [], + clockseq: 2, + nsecs: 3, + msecs: new Date() +}; + +var padding: number[] = [0, 1, 2]; + +var offset: number = 15; + +var buf : number[] = []; + +uuid.parse(uid4, buf, offset); +uuid.unparse(buf, offset); + +var uid21: number[] = uuid.v1(options, padding, offset); +var uid22: number[] = uuid.v2(options, padding, offset); +var uid23: number[] = uuid.v3(options, padding, offset); +var uid24: number[] = uuid.v4(options, padding, offset); diff --git a/node-uuid/node-uuid-global.d.ts b/node-uuid/node-uuid-global.d.ts new file mode 100644 index 0000000000..d70d9e1200 --- /dev/null +++ b/node-uuid/node-uuid-global.d.ts @@ -0,0 +1,4 @@ +/// + +/** Expose as global variable */ +declare var uuid: __NodeUUID.UUID; diff --git a/node-uuid/node-uuid-tests.ts b/node-uuid/node-uuid-tests.ts index e922c04de3..0c9c31109f 100644 --- a/node-uuid/node-uuid-tests.ts +++ b/node-uuid/node-uuid-tests.ts @@ -1,36 +1,36 @@ /// -import uuid = require('node-uuid'); +import nodeUuid = require('node-uuid'); -var uid1: string = uuid.v1() -var uid2: string = uuid.v2() -var uid3: string = uuid.v3() -var uid4: string = uuid.v4() +var uid1: string = nodeUuid.v1(); +var uid2: string = nodeUuid.v2(); +var uid3: string = nodeUuid.v3(); +var uid4: string = nodeUuid.v4(); -var options: UUIDOptions = { +var options: __NodeUUID.UUIDOptions = { node: [], clockseq: 2, nsecs: 3, msecs: new Date() -} +}; -var padding: number[] = [0, 1, 2] +var padding: number[] = [0, 1, 2]; -var offset: number = 15 +var offset: number = 15; -var buf : number[] = [] +var buf : number[] = []; -uuid.parse(uid4, buf, offset) -uuid.unparse(buf, offset) +nodeUuid.parse(uid4, buf, offset); +nodeUuid.unparse(buf, offset); -var uid21: number[] = uuid.v1(options, padding, offset) -var uid22: number[] = uuid.v2(options, padding, offset) -var uid23: number[] = uuid.v3(options, padding, offset) -var uid24: number[] = uuid.v4(options, padding, offset) +var uid21: number[] = nodeUuid.v1(options, padding, offset); +var uid22: number[] = nodeUuid.v2(options, padding, offset); +var uid23: number[] = nodeUuid.v3(options, padding, offset); +var uid24: number[] = nodeUuid.v4(options, padding, offset); var buffer: Buffer; -var uid31: Buffer = uuid.v1(options, buffer, offset) -var uid32: Buffer = uuid.v2(options, buffer, offset) -var uid33: Buffer = uuid.v3(options, buffer, offset) -var uid34: Buffer = uuid.v4(options, buffer, offset) +var uid31: Buffer = nodeUuid.v1(options, buffer, offset); +var uid32: Buffer = nodeUuid.v2(options, buffer, offset); +var uid33: Buffer = nodeUuid.v3(options, buffer, offset); +var uid34: Buffer = nodeUuid.v4(options, buffer, offset); diff --git a/node-uuid/node-uuid.d.ts b/node-uuid/node-uuid.d.ts index aec39084f8..bb72708097 100644 --- a/node-uuid/node-uuid.d.ts +++ b/node-uuid/node-uuid.d.ts @@ -4,60 +4,41 @@ // Definitions: https://github.com/borisyankov/DefinitelyTyped /// +/// +/// -interface UUIDOptions { - +/** + * Definitions for use in node environment + * + * !! For browser enviroments, use node-uuid-global or node-uuid-cjs + */ +declare module __NodeUUID { /** - * Node id as Array of 6 bytes (per 4.1.6). - * Default: Randomly generated ID. See note 1. + * Overloads for node environment + * We need to duplicate some declarations because + * interface merging doesn't work with overloads */ - node?: any[] + interface UUID { + v1(options?: UUIDOptions): string; + v1(options?: UUIDOptions, buffer?: number[], offset?: number): number[]; + v1(options?: UUIDOptions, buffer?: Buffer, offset?: number): Buffer; - /** - * (Number between 0 - 0x3fff) RFC clock sequence. - * Default: An internally maintained clockseq is used. - */ - clockseq?: number + v2(options?: UUIDOptions): string; + v2(options?: UUIDOptions, buffer?: number[], offset?: number): number[]; + v2(options?: UUIDOptions, buffer?: Buffer, offset?: number): Buffer; - /** - * (Number | Date) Time in milliseconds since unix Epoch. - * Default: The current time is used. - */ - msecs?: number|Date + v3(options?: UUIDOptions): string; + v3(options?: UUIDOptions, buffer?: number[], offset?: number): number[]; + v3(options?: UUIDOptions, buffer?: Buffer, offset?: number): Buffer; - /** - * (Number between 0-9999) additional time, in 100-nanosecond units. Ignored if msecs is unspecified. - * Default: internal uuid counter is used, as per 4.2.1.2. - */ - nsecs?: number -} - -interface UUID { - v1(options?: UUIDOptions): string - v1(options?: UUIDOptions, buffer?: number[], offset?: number): number[] - v1(options?: UUIDOptions, buffer?: Buffer, offset?: number): Buffer - - v2(options?: UUIDOptions): string - v2(options?: UUIDOptions, buffer?: number[], offset?: number): number[] - v2(options?: UUIDOptions, buffer?: Buffer, offset?: number): Buffer - - v3(options?: UUIDOptions): string - v3(options?: UUIDOptions, buffer?: number[], offset?: number): number[] - v3(options?: UUIDOptions, buffer?: Buffer, offset?: number): Buffer - - v4(options?: UUIDOptions): string - v4(options?: UUIDOptions, buffer?: number[], offset?: number): number[] - v4(options?: UUIDOptions, buffer?: Buffer, offset?: number): Buffer - - parse(id: string, buffer?: number[], offset?: number): number[] - parse(id: string, buffer?: Buffer, offset?: number): Buffer - - unparse(buffer: number[], offset?: number): string - unparse(buffer: Buffer, offset?: number): string -} - -declare var uuid: UUID; - -declare module "node-uuid" { - export = uuid; + v4(options?: UUIDOptions): string; + v4(options?: UUIDOptions, buffer?: number[], offset?: number): number[]; + v4(options?: UUIDOptions, buffer?: Buffer, offset?: number): Buffer; + + parse(id: string, buffer?: number[], offset?: number): number[]; + parse(id: string, buffer?: Buffer, offset?: number): Buffer; + + unparse(buffer: number[], offset?: number): string; + unparse(buffer: Buffer, offset?: number): string; + } }