diff --git a/types/bloem/bloem-tests.ts b/types/bloem/bloem-tests.ts new file mode 100644 index 0000000000..bcebbecebb --- /dev/null +++ b/types/bloem/bloem-tests.ts @@ -0,0 +1,15 @@ +import bloem = require('bloem'); + +const base = new bloem.Bloem(1, 2, Buffer.from('1', 'hex')); +const safe = new bloem.SafeBloem(1, 2, Buffer.from('2', 'hex')); +const scaling = new bloem.ScalingBloem(1, + {ratio: 1, initial_capacity: 2, scaling: 3} +); + +// options are optional +const scaling2 = new bloem.ScalingBloem(1); + +// $ExpectType number +bloem.calculateSize(1, 2); +// $ExpectType number +bloem.calculateSlices(1, 2); diff --git a/types/bloem/index.d.ts b/types/bloem/index.d.ts new file mode 100644 index 0000000000..bcf6b35820 --- /dev/null +++ b/types/bloem/index.d.ts @@ -0,0 +1,37 @@ +// Type definitions for bloem 0.2 +// Project: https://github.com/wiedi/node-bloem +// Definitions by: Daniel Byrne +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// + +export function calculateSize(capacity: number, error_rate: number): number; +export function calculateSlices(size: number, capacity: number): number; + +export class Bloem { + constructor(size: number, slices: number, buffer: Buffer); + + has(key: Buffer): boolean; + add(key: Buffer): void; +} + +export class SafeBloem { + constructor(capacity: number, error_rate: number, buffer: Buffer); + + has(key: Buffer): boolean; + add(key: Buffer): boolean; +} + +export class ScalingBloem { + constructor( + error_rate: number, + options?: { + ratio?: number; + initial_capacity?: number; + scaling?: number; + } + ); + + has(key: Buffer): boolean; + add(key: Buffer): void; +} diff --git a/types/bloem/tsconfig.json b/types/bloem/tsconfig.json new file mode 100644 index 0000000000..f5ecad97bd --- /dev/null +++ b/types/bloem/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "bloem-tests.ts" + ] +} \ No newline at end of file diff --git a/types/bloem/tslint.json b/types/bloem/tslint.json new file mode 100644 index 0000000000..6fafe521cb --- /dev/null +++ b/types/bloem/tslint.json @@ -0,0 +1,3 @@ +{ + "extends": "dtslint/dt.json" + }