From deb6f8ae481c2f96e8ae71cbd7ba0394b467cc1f Mon Sep 17 00:00:00 2001 From: Dimitri Benin Date: Sun, 23 Dec 2018 19:40:04 +0100 Subject: [PATCH] [@keyv/sqlite] Add types --- types/keyv__sqlite/index.d.ts | 33 ++++++++++++++++++++++++ types/keyv__sqlite/keyv__sqlite-tests.ts | 12 +++++++++ types/keyv__sqlite/tsconfig.json | 28 ++++++++++++++++++++ types/keyv__sqlite/tslint.json | 1 + 4 files changed, 74 insertions(+) create mode 100644 types/keyv__sqlite/index.d.ts create mode 100644 types/keyv__sqlite/keyv__sqlite-tests.ts create mode 100644 types/keyv__sqlite/tsconfig.json create mode 100644 types/keyv__sqlite/tslint.json diff --git a/types/keyv__sqlite/index.d.ts b/types/keyv__sqlite/index.d.ts new file mode 100644 index 0000000000..3a59e7b2b7 --- /dev/null +++ b/types/keyv__sqlite/index.d.ts @@ -0,0 +1,33 @@ +// Type definitions for @keyv/sqlite 2.0 +// Project: https://github.com/lukechilds/keyv-sqlite +// Definitions by: BendingBender +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.3 + +/// + +import { Store } from 'keyv'; +import { EventEmitter } from 'events'; + +export = KeyvSqlite; + +declare class KeyvSqlite extends EventEmitter implements Store { + readonly ttlSupport: false; + namespace?: string; + + constructor(options?: KeyvSqlite.Options); + + get(key: string): Promise; + set(key: string, value: string | undefined): Promise; + delete(key: string): Promise; + clear(): Promise; +} + +declare namespace KeyvSqlite { + interface Options { + uri?: string; + busyTimeout?: number; + table?: string; + keySize?: number; + } +} diff --git a/types/keyv__sqlite/keyv__sqlite-tests.ts b/types/keyv__sqlite/keyv__sqlite-tests.ts new file mode 100644 index 0000000000..e109dbf4a1 --- /dev/null +++ b/types/keyv__sqlite/keyv__sqlite-tests.ts @@ -0,0 +1,12 @@ +import Keyv = require('keyv'); +import KeyvSqlite = require('@keyv/sqlite'); + +new Keyv('sqlite://path/to/database.sqlite', { table: 'cache' }); + +new KeyvSqlite({ uri: 'sqlite://path/to/database.sqlite' }); +new KeyvSqlite({ busyTimeout: 10000 }); +new KeyvSqlite({ table: 'cache' }); +new KeyvSqlite({ keySize: 100 }); + +const sqlite = new KeyvSqlite({ uri: 'sqlite://path/to/database.sqlite' }); +new Keyv({ store: sqlite }); diff --git a/types/keyv__sqlite/tsconfig.json b/types/keyv__sqlite/tsconfig.json new file mode 100644 index 0000000000..5546f7acef --- /dev/null +++ b/types/keyv__sqlite/tsconfig.json @@ -0,0 +1,28 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "paths": { + "@keyv/sqlite": [ + "keyv__sqlite" + ] + }, + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "keyv__sqlite-tests.ts" + ] +} diff --git a/types/keyv__sqlite/tslint.json b/types/keyv__sqlite/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/keyv__sqlite/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }