From 8492d9a89b54d4eec3167e75c5b04a27e985b435 Mon Sep 17 00:00:00 2001 From: Dimitri Benin Date: Mon, 31 Dec 2018 18:55:20 +0000 Subject: [PATCH] [@keyv/redis] Add types (#31809) --- types/keyv__redis/index.d.ts | 32 ++++++++++++++++++++++++++ types/keyv__redis/keyv__redis-tests.ts | 13 +++++++++++ types/keyv__redis/tsconfig.json | 28 ++++++++++++++++++++++ types/keyv__redis/tslint.json | 1 + 4 files changed, 74 insertions(+) create mode 100644 types/keyv__redis/index.d.ts create mode 100644 types/keyv__redis/keyv__redis-tests.ts create mode 100644 types/keyv__redis/tsconfig.json create mode 100644 types/keyv__redis/tslint.json diff --git a/types/keyv__redis/index.d.ts b/types/keyv__redis/index.d.ts new file mode 100644 index 0000000000..bf009906f8 --- /dev/null +++ b/types/keyv__redis/index.d.ts @@ -0,0 +1,32 @@ +// Type definitions for @keyv/redis 1.3 +// Project: https://github.com/lukechilds/keyv-redis +// Definitions by: BendingBender +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.3 + +/// + +import { Store } from 'keyv'; +import { ClientOpts } from 'redis'; +import { EventEmitter } from 'events'; + +export = KeyvRedis; + +declare class KeyvRedis extends EventEmitter implements Store { + readonly ttlSupport: true; + namespace?: string; + + constructor(options?: KeyvRedis.Options); + constructor(uri: string, options?: KeyvRedis.Options); + + get(key: string): Promise; + set(key: string, value: string | undefined, ttl?: number): Promise; + delete(key: string): Promise; + clear(): Promise; +} + +declare namespace KeyvRedis { + interface Options extends ClientOpts { + uri?: string; + } +} diff --git a/types/keyv__redis/keyv__redis-tests.ts b/types/keyv__redis/keyv__redis-tests.ts new file mode 100644 index 0000000000..3f0187fd38 --- /dev/null +++ b/types/keyv__redis/keyv__redis-tests.ts @@ -0,0 +1,13 @@ +import Keyv = require('keyv'); +import KeyvRedis = require('@keyv/redis'); + +new Keyv('redis://user:pass@localhost:6379', { max_attempts: 1 }); + +new KeyvRedis({ uri: 'redis://user:pass@localhost:6379' }); +new KeyvRedis('redis://user:pass@localhost:6379', { max_attempts: 1 }); +new KeyvRedis('redis://user:pass@localhost:6379', { + uri: 'redis://user:pass@localhost:6379', + max_attempts: 1, +}); +const redis = new KeyvRedis('redis://user:pass@localhost:6379'); +new Keyv({ store: redis }); diff --git a/types/keyv__redis/tsconfig.json b/types/keyv__redis/tsconfig.json new file mode 100644 index 0000000000..bbd87dfade --- /dev/null +++ b/types/keyv__redis/tsconfig.json @@ -0,0 +1,28 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "paths": { + "@keyv/redis": [ + "keyv__redis" + ] + }, + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "keyv__redis-tests.ts" + ] +} diff --git a/types/keyv__redis/tslint.json b/types/keyv__redis/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/keyv__redis/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }