diff --git a/objectid.d.ts b/objectid.d.ts index f164893..6e0c78a 100644 --- a/objectid.d.ts +++ b/objectid.d.ts @@ -1,29 +1,37 @@ -// Type definitions for bson-objectid 1.3.1 -// Project: bson-objectid -// Definitions by: Marcel Ernst -import { Buffer } from 'buffer'; -export default ObjectID; - -declare class ObjectID { - static createFromTime(time: number): ObjectID; - static createFromHexString(hexString: string): ObjectID; - static isValid(hexString: string):boolean; - static isValid(ObjectID: ObjectID):boolean; - static generate(): string; - static generate(time: number): string; - static toString():string; - - constructor(); - constructor(time: number); - constructor(hexString: string); - constructor(idString: string); - constructor(array: number[]); - constructor(buffer: Buffer); - - readonly id: string; - readonly str: string; - - toHexString(): string; - equals(other: ObjectID): boolean; - getTimestamp(): number; +import {Buffer} from 'buffer'; + +export default ObjectID + +declare const ObjectID: ObjectIDCtor; + +declare interface ObjectID { + readonly id: string; + readonly str: string; + + toHexString(): string; + equals(other: ObjectID): boolean; + getTimestamp(): number; +} + +declare interface ObjectIDCtor { + (): ObjectID + (time: number): ObjectID + (hexString: string): ObjectID + (idString: string): ObjectID + (array: number[]): ObjectID + (buffer: Buffer): ObjectID + + new(): ObjectID + new(time: number): ObjectID + new(hexString: string): ObjectID + new(idString: string): ObjectID + new(array: number[]): ObjectID + new(buffer: Buffer): ObjectID + + + createFromTime(time: number): ObjectID; + createFromHexString(hexString: string): ObjectID; + isValid(hexString: string): boolean; + isValid(ObjectID: ObjectID): boolean; + toString(): string; } diff --git a/typing-tests/objectid-tests.ts b/typing-tests/objectid-tests.ts index 8188b8d..25c1c8f 100644 --- a/typing-tests/objectid-tests.ts +++ b/typing-tests/objectid-tests.ts @@ -50,6 +50,38 @@ oid = ObjectID.createFromTime(time); // should construct with `ObjectID.createFromHexString(hexString)` oid = ObjectID.createFromHexString(hexString); +// ---------------------------------------------------------------------------- +// should construct with no arguments +oid = ObjectID(); + +// ---------------------------------------------------------------------------- +// should have an `id` property +oid.id; + +// ---------------------------------------------------------------------------- +// should have a `str` property +oid.str; + +// ---------------------------------------------------------------------------- +// should construct with a `time` argument +oid = ObjectID(time); + +// ---------------------------------------------------------------------------- +// should construct with an `array` argument +oid = ObjectID(array); + +// ---------------------------------------------------------------------------- +// should construct with a `buffer` argument +oid = ObjectID(buffer); + +// ---------------------------------------------------------------------------- +// should construct with a `hexString` argument +oid = ObjectID(hexString); + +// ---------------------------------------------------------------------------- +// should construct with a `idString` argument +oid = ObjectID(idString); + // ---------------------------------------------------------------------------- // should correctly retrieve timestamp const timestamp:number = oid.getTimestamp();