diff --git a/uuid-1345/uuid-1345-tests.ts b/uuid-1345/uuid-1345-tests.ts new file mode 100644 index 0000000000..b73a467554 --- /dev/null +++ b/uuid-1345/uuid-1345-tests.ts @@ -0,0 +1,220 @@ +/// +/// +'use strict'; +import * as UUID from 'uuid-1345'; + +var uuid:string; +var uuidBuffer:Buffer; +var uuidObject:UUID.UUID; + +// sync without options + +uuid = UUID.v1(); +uuid = UUID.v4(); +uuid = UUID.v4fast(); + +// sync with options +uuid = UUID.v1({encoding: 'ascii'}); +uuidBuffer = UUID.v1({encoding: 'binary'}); +uuidObject = UUID.v1({encoding: 'object'}); + +uuid = UUID.v3({namespace: uuid, name: 'http://example.com/'}); +uuid = UUID.v3({encoding: 'ascii', namespace: uuidBuffer, name: 'http://example.com/'}); +uuidBuffer = UUID.v3({encoding: 'binary', namespace: uuidObject, name: 'http://example.com/'}); +uuidObject = UUID.v3({encoding: 'object', namespace: uuid, name: 'http://example.com/'}); + +uuid = UUID.v4({encoding: 'ascii'}); +uuidBuffer = UUID.v4({encoding: 'binary'}); +uuidObject = UUID.v4({encoding: 'object'}); + +uuid = UUID.v4fast({encoding: 'ascii'}); +uuidBuffer = UUID.v4fast({encoding: 'binary'}); +uuidObject = UUID.v4fast({encoding: 'object'}); + +uuid = UUID.v5({namespace: uuid, name: 'http://example.com/'}); +uuid = UUID.v5({encoding: 'ascii', namespace: uuidBuffer, name: 'http://example.com/'}); +uuidBuffer = UUID.v5({encoding: 'binary', namespace: uuidObject, name: 'http://example.com/'}); +uuidObject = UUID.v5({encoding: 'object', namespace: uuid, name: 'http://example.com/'}); + +// async without options +UUID.v1((error:string, result:string) => { + if (error) { + console.error(error); + } else { + console.log(result); + } +}); + +UUID.v4((error:string, result:string) => { + if (error) { + console.error(error); + } else { + console.log(result); + } +}); + +UUID.v4fast((error: string, result:string) => { + if (error) { + console.error(error); + } else { + console.log(result); + } +}); + +// async with options +UUID.v1({encoding: 'ascii'}, (error: string, result:string) => { + if (error) { + console.error(error); + } else { + console.log(result); + } +}); + +UUID.v1({encoding: 'binary'}, (error: string, result:Buffer) => { + if (error) { + console.error(error); + } else { + console.log(result); + } +}); + +UUID.v1({encoding: 'object'}, (error: string, result:UUID.UUID) => { + if (error) { + console.error(error); + } else { + console.log(result); + } +}); + +UUID.v1({mac: false}, (error: string, result:string) => { + if (error) { + console.error(error); + } else { + console.log(result); + } +}); + +UUID.v3({namespace: uuid, name: 'http://example.com/'}, (error: string, result:string) => { + if (error) { + console.error(error); + } else { + console.log(result); + } +}); + +UUID.v3({encoding: 'ascii', namespace: uuidBuffer, name: 'http://example.com/'}, (error: string, result:string) => { + if (error) { + console.error(error); + } else { + console.log(result); + } +}); + +UUID.v3({encoding: 'binary', namespace: uuidObject, name: 'http://example.com/'}, (error: string, result:Buffer) => { + if (error) { + console.error(error); + } else { + console.log(result); + } +}); + +UUID.v3({encoding: 'object', namespace: uuid, name: 'http://example.com/'}, (error: string, result:UUID.UUID) => { + if (error) { + console.error(error); + } else { + console.log(result); + } +}); + +UUID.v4({encoding: 'ascii'}, (error: string, result:string) => { + if (error) { + console.error(error); + } else { + console.log(result); + } +}); + +UUID.v4({encoding: 'binary'}, (error: string, result:Buffer) => { + if (error) { + console.error(error); + } else { + console.log(result); + } +}); + +UUID.v4({encoding: 'object'}, (error: string, result:UUID.UUID) => { + if (error) { + console.error(error); + } else { + console.log(result); + } +}); + +UUID.v4fast({encoding: 'ascii'}, (error: string, result:string) => { + if (error) { + console.error(error); + } else { + console.log(result); + } +}); + +UUID.v4fast({encoding: 'binary'}, (error: string, result:Buffer) => { + if (error) { + console.error(error); + } else { + console.log(result); + } +}); + +UUID.v4fast({encoding: 'object'}, (error: string, result:UUID.UUID) => { + if (error) { + console.error(error); + } else { + console.log(result); + } +}); + +UUID.v5({namespace: uuid, name: 'http://example.com/'}, (error: string, result:string) => { + if (error) { + console.error(error); + } else { + console.log(result); + } +}); + +UUID.v5({encoding: 'ascii', namespace: uuidBuffer, name: 'http://example.com/'}, (error: string, result:string) => { + if (error) { + console.error(error); + } else { + console.log(result); + } +}); + +UUID.v5({encoding: 'binary', namespace: uuidObject, name: 'http://example.com/'}, (error: string, result:Buffer) => { + if (error) { + console.error(error); + } else { + console.log(result); + } +}); + +UUID.v5({encoding: 'object', namespace: uuid, name: 'http://example.com/'}, (error: string, result:UUID.UUID) => { + if (error) { + console.error(error); + } else { + console.log(result); + } +}); + +// namespaces for v3, v5 +console.log(UUID.namespace.dns); +console.log(UUID.namespace.url); +console.log(UUID.namespace.oid); +console.log(UUID.namespace.x500); + +// more API +var checkResult:{version?:number, variant:string, format:string}; +checkResult = UUID.check(uuid); +uuidBuffer = UUID.parse(uuid); +uuid = UUID.stringify(uuidBuffer); + diff --git a/uuid-1345/uuid-1345.d.ts b/uuid-1345/uuid-1345.d.ts new file mode 100644 index 0000000000..92a5d1026d --- /dev/null +++ b/uuid-1345/uuid-1345.d.ts @@ -0,0 +1,84 @@ +// Type definitions for uuid-1345 0.99 +// Project: https://github.com/scravy/uuid-1345 +// Definitions by: TANAKA Koichi +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +/// +declare module "uuid-1345" { + export interface UUID { + version: string; + variant: string; + toString(): string; + toBuffer(): Buffer; + } + + type UuidTypes = string|Buffer|UUID; + interface ASCIICallback { + (error: string, result: string):void; + } + + interface BinaryCallback { + (error: string, result: Buffer):void; + } + + interface ObjectCallback { + (error: string, result: UUID):void; + } + + export var namespace: { + dns: UUID + url: UUID, + oid: UUID, + x500: UUID + }; + + export function check(uuid:string|Buffer): {version?:number, variant: string, format: string}; + export function parse(uuid:string): Buffer; + export function stringify(uuid:Buffer): string; + + export function v1():string; + export function v1(options:{mac?:boolean}):string; + export function v1(options:{encoding:'ascii', mac?:boolean}):string; + export function v1(options:{encoding:'binary', mac?:boolean}):Buffer; + export function v1(options:{encoding:'object', mac?:boolean}):UUID; + export function v1(options:{mac?:boolean}, callback:ASCIICallback):void; + export function v1(options:{encoding:'ascii', mac?:boolean}, callback:ASCIICallback):void; + export function v1(options:{encoding:'binary', mac?:boolean}, callback:BinaryCallback):void; + export function v1(options:{encoding:'object', mac?:boolean}, callback:ObjectCallback):void; + export function v1(callback:ASCIICallback):void; + + export function v3(options:{namespace:UuidTypes, name: string}):string; + export function v3(options:{encoding:'ascii', namespace:UuidTypes, name: string}):string; + export function v3(options:{encoding:'binary', namespace:UuidTypes, name: string}):Buffer; + export function v3(options:{encoding:'object', namespace:UuidTypes, name: string}):UUID; + export function v3(options:{namespace:UuidTypes, name: string}, callback:ASCIICallback):void; + export function v3(options:{encoding:'ascii', namespace:UuidTypes, name: string}, callback:ASCIICallback):void; + export function v3(options:{encoding:'binary', namespace:UuidTypes, name: string}, callback:BinaryCallback):void; + export function v3(options:{encoding:'object', namespace:UuidTypes, name: string}, callback:ObjectCallback):void; + + export function v4():string; + export function v4(options:{encoding:'ascii'}):string; + export function v4(options:{encoding:'binary'}):Buffer; + export function v4(options:{encoding:'object'}):UUID; + export function v4(options:{encoding:'ascii'}, callback:ASCIICallback):void; + export function v4(options:{encoding:'binary'}, callback:BinaryCallback):void; + export function v4(options:{encoding:'object'}, callback:ObjectCallback):void; + export function v4(callback:ASCIICallback):void; + + export function v4fast():string; + export function v4fast(options:{encoding:'ascii'}):string; + export function v4fast(options:{encoding:'binary'}):Buffer; + export function v4fast(options:{encoding:'object'}):UUID; + export function v4fast(options:{encoding:'ascii'}, callback:ASCIICallback):void; + export function v4fast(options:{encoding:'binary'}, callback:BinaryCallback):void; + export function v4fast(options:{encoding:'object'}, callback:ObjectCallback):void; + export function v4fast(callback:ASCIICallback):void; + + export function v5(options:{namespace:UuidTypes, name: string}):string; + export function v5(options:{encoding:'ascii', namespace:UuidTypes, name: string}):string; + export function v5(options:{encoding:'binary', namespace:UuidTypes, name: string}):Buffer; + export function v5(options:{encoding:'object', namespace:UuidTypes, name: string}):UUID; + export function v5(options:{namespace:UuidTypes, name: string}, callback:ASCIICallback):void; + export function v5(options:{encoding:'ascii', namespace:UuidTypes, name: string}, callback:ASCIICallback):void; + export function v5(options:{encoding:'binary', namespace:UuidTypes, name: string}, callback:BinaryCallback):void; + export function v5(options:{encoding:'object', namespace:UuidTypes, name: string}, callback:ObjectCallback):void; +}