diff --git a/types/level-js/index.d.ts b/types/level-js/index.d.ts new file mode 100644 index 0000000000..5bda98c283 --- /dev/null +++ b/types/level-js/index.d.ts @@ -0,0 +1,27 @@ +// Type definitions for level-js 4.0 +// Project: https://github.com/Level/level-js +// Definitions by: Daniel Byrne +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.3 + +import { AbstractLevelDOWN, AbstractOptions } from 'abstract-leveldown'; + +export interface Level extends AbstractLevelDOWN { + readonly location: string; + readonly prefix: string; + readonly version: string | number; + destroy(location: string, cb: (err: Error | undefined) => void): void; + destroy(location: string, prefix: string, cb: (err: Error | undefined) => void): void; +} + +export interface LevelOptions { + readonly prefix?: string; + readonly version?: string | number; +} + +export interface LevelConstructor { + new (location: string, options?: LevelOptions): Level; + (location: string, options?: LevelOptions): Level; +} + +export const Level: LevelConstructor; diff --git a/types/level-js/level-js-tests.ts b/types/level-js/level-js-tests.ts new file mode 100644 index 0000000000..95ded31fa0 --- /dev/null +++ b/types/level-js/level-js-tests.ts @@ -0,0 +1,24 @@ +/// +import { Level } from 'level-js'; + +const db = Level('bigData'); +const dbClass = new Level('bigData'); + +db.put('hello', Buffer.from('world'), (err) => { + if (err) throw err; + db.get('hello', (err, value) => { + if (err) throw err; + console.log(value.toString()); + }); +}); + +db.location; +db.prefix; +db.version; + +db.destroy('bigData', (error) => console.log(error)); + +db.iterator(); +db.iterator({keyAsBuffer: false}); + +db.createReadStream({gt: new Date('2019-01-01')}); diff --git a/types/level-js/tsconfig.json b/types/level-js/tsconfig.json new file mode 100644 index 0000000000..bb6a4d4db4 --- /dev/null +++ b/types/level-js/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", + "level-js-tests.ts" + ] + } diff --git a/types/level-js/tslint.json b/types/level-js/tslint.json new file mode 100644 index 0000000000..f93cf8562a --- /dev/null +++ b/types/level-js/tslint.json @@ -0,0 +1,3 @@ +{ + "extends": "dtslint/dt.json" +} diff --git a/types/levelup/index.d.ts b/types/levelup/index.d.ts index 77ad3330a1..09f82f2b3c 100644 --- a/types/levelup/index.d.ts +++ b/types/levelup/index.d.ts @@ -8,7 +8,7 @@ /// import { EventEmitter } from 'events'; -import { AbstractLevelDOWN, AbstractIteratorOptions, AbstractBatch, ErrorCallback, AbstractOptions, ErrorValueCallback, AbstractGetOptions } from 'abstract-leveldown'; +import { AbstractLevelDOWN, AbstractIteratorOptions, AbstractBatch, ErrorCallback, AbstractOptions, ErrorValueCallback, AbstractGetOptions, AbstractIterator } from 'abstract-leveldown'; type LevelUpPut = ((key: K, value: V, callback: ErrorCallback) => void) & @@ -45,7 +45,7 @@ type InferDBDel = LevelUpDel : LevelUpDel; -export interface LevelUp extends EventEmitter { +export interface LevelUp> extends EventEmitter { open(): Promise; open(callback?: ErrorCallback): void; close(): Promise; @@ -60,6 +60,7 @@ export interface LevelUp extends EventEmitter { batch(array: AbstractBatch[], callback: (err?: any) => any): void; batch(): LevelUpChain; + iterator(options?: AbstractIteratorOptions): Iterator; isOpen(): boolean; isClosed(): boolean;