UNPKG

12.9 kBSource Map (JSON)View Raw
1{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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","sourcesContent":["import * as redis from 'redis';\nimport { EventEmitter } from 'events';\nimport * as BBPromise from 'bluebird';\nimport Transaction from './transaction';\nimport Batch from './batch';\nimport { IRedisKeyOptions } from './types/redis';\n\nBBPromise.promisifyAll(redis.RedisClient.prototype);\nBBPromise.promisifyAll(redis.Multi.prototype);\n\nexport interface IRedisOptions {\n\thost: string;\n\tport: number;\n\tprefix?: string;\n}\n\nconst SCAN_LIMIT = 1000;\n\nclass Redis extends EventEmitter {\n\n\tprivate _client: any;\n\n\tprivate _prefix: string;\n\n\t/**\n\t * Constructor\n\t */\n\tconstructor (options: IRedisOptions) {\n\n\t\tsuper();\n\n\t\tthis._prefix = options.prefix || '';\n\t\tthis._client = redis.createClient(options);\n\n\t}\n\n\t/**\n\t * Get the underlying redis client\n\t */\n\tget client (): any {\n\n\t\treturn this._client;\n\n\t}\n\n\t/**\n\t * Close the client\n\t */\n\tpublic async dispose (): Promise<void> {\n\n\t\tawait this._client.quitAsync();\n\n\t\tthis._client = null;\n\n\t}\n\n\t/**\n\t * Return the transaction prototype\n\t */\n\tstatic get Transaction (): typeof Transaction {\n\n\t\treturn Transaction;\n\n\t}\n\n\t/**\n\t * Get a transaction\n\t */\n\tpublic transaction (): Transaction {\n\n\t\tthis._checkDisposed();\n\n\t\treturn new Transaction(this);\n\n\t}\n\n\t/**\n\t * Watch a key\n\t */\n\tpublic async watch (key: string): Promise<void> {\n\n\t\tthis._checkDisposed();\n\n\t\treturn this._client.watchAsync(key);\n\n\t}\n\n\t/**\n\t * Begin a batch of commands\n\t */\n\tpublic batch (): Batch {\n\n\t\tthis._checkDisposed();\n\n\t\treturn new Batch(this);\n\n\t}\n\n\t/**\n\t * Key exists\n\t */\n\tpublic async exists (key: string): Promise<boolean> {\n\n\t\tthis._checkDisposed();\n\n\t\treturn this._client.existsAsync(key);\n\n\t}\n\n\t/**\n\t * Get a key value\n\t */\n\tpublic async get (key: string): Promise<string> {\n\n\t\tthis._checkDisposed();\n\n\t\treturn this._client.getAsync(key);\n\n\t}\n\n\t/**\n\t * Set a key value\n\t */\n\tpublic async set (key: string, value: string | number, options?: IRedisKeyOptions): Promise<void> {\n\n\t\tthis._checkDisposed();\n\n\t\tawait this._client.setAsync(key, value);\n\n\t\treturn this._checkExpiry(key, options);\n\n\t}\n\n\t/**\n\t * Increment an integer value\n\t */\n\tpublic async incrby (key: string, value: number, options?: IRedisKeyOptions): Promise<void> {\n\n\t\tthis._checkDisposed();\n\n\t\tawait this._client.incrbyAsync(key, value);\n\n\t\treturn this._checkExpiry(key, options);\n\n\t}\n\n\t/**\n\t * Increment a float value\n\t */\n\tpublic async incrbyfloat (key: string, value: number, options?: IRedisKeyOptions): Promise<void> {\n\n\t\tthis._checkDisposed();\n\n\t\tawait this._client.incrbyfloatAsync(key, value);\n\n\t\treturn this._checkExpiry(key, options);\n\n\t}\n\n\t/**\n\t * Increment an integer value in a hash set\n\t */\n\tpublic async hincrby (key: string, hashKey: string, value: number, options?: IRedisKeyOptions): Promise<void> {\n\n\t\tthis._checkDisposed();\n\n\t\tawait this._client.hincrbyAsync(key, hashKey, value);\n\n\t\treturn this._checkExpiry(key, options);\n\n\t}\n\n\t/**\n\t * Increment a float value in a hash set\n\t */\n\tpublic async hincrbyfloat (key: string, hashKey: string, value: number, options?: IRedisKeyOptions): Promise<void> {\n\n\t\tthis._checkDisposed();\n\n\t\tawait this._client.hincrbyfloatAsync(key, hashKey, value);\n\n\t\treturn this._checkExpiry(key, options);\n\n\t}\n\n\t/**\n\t * Hash map set\n\t */\n\tpublic async hmset (key: string, hash: object, options?: IRedisKeyOptions): Promise<void> {\n\n\t\tthis._checkDisposed();\n\n\t\tawait this._client.hmsetAsync(key, hash);\n\n\t\treturn this._checkExpiry(key, options);\n\n\t}\n\n\t/**\n\t * Get a hash set\n\t */\n\tpublic async hgetall (key: string): Promise<any> {\n\n\t\tthis._checkDisposed();\n\n\t\treturn this._client.hgetallAsync(key);\n\n\t}\n\n\t/**\n\t * Delete a key\n\t */\n\tpublic async del (key: string): Promise<void> {\n\n\t\tthis._checkDisposed();\n\n\t\treturn this._client.delAsync(key);\n\n\t}\n\n\t/**\n\t * Add to a set\n\t */\n\tpublic async sadd (\n\t\tkey: string,\n\t\tvalue: string | number | Array<string | number>,\n\t\toptions?: IRedisKeyOptions): Promise<void> {\n\n\t\tthis._checkDisposed();\n\n\t\tawait this._client.saddAsync(key, value);\n\n\t\treturn this._checkExpiry(key, options);\n\n\t}\n\n\t/**\n\t * Get a set\n\t */\n\tpublic async smembers (key): Promise<string[]> {\n\n\t\tthis._checkDisposed();\n\n\t\treturn this._client.smembersAsync(key);\n\n\t}\n\n\t/**\n\t * Remove from set\n\t */\n\tpublic async srem (key: string, value: string | number): Promise<void> {\n\n\t\tthis._checkDisposed();\n\n\t\treturn this._client.sremAsync(key, value);\n\n\t}\n\n\t/**\n\t * Scan and delete keys\n\t */\n\tpublic async scanDel (pattern: string): Promise<void> {\n\n\t\tthis._checkDisposed();\n\n\t\tconst self = this;\n\n\t\treturn this.scan(pattern, async (keys) => {\n\n\t\t\tself.emit('info', {message: 'redis#scanDel', data: {keys}});\n\n\t\t\tconst keysToDel = keys.map((key) => {\n\n\t\t\t\treturn key.replace(this._prefix, '');\n\n\t\t\t});\n\n\t\t\treturn self._client.delAsync(keysToDel);\n\n\t\t});\n\n\t}\n\n\t/**\n\t * Scan keys\n\t */\n\tpublic async scan (pattern: string, delegate: (keys: string[]) => Promise<void> | void): Promise<void> {\n\n\t\tthis._checkDisposed();\n\n\t\tconst self = this;\n\n\t\tconst resolvedPattern = this._prefix + pattern;\n\n\t\tlet cursor = '0';\n\t\tlet cycle = 0;\n\n\t\treturn _scan();\n\n\t\tasync function _scan () {\n\n\t\t\tconst res = await self._client.scanAsync(\n\t\t\t\tcursor,\n\t\t\t\t'MATCH', resolvedPattern,\n\t\t\t\t'COUNT', SCAN_LIMIT);\n\n\t\t\tcursor = res[0];\n\t\t\tcycle++;\n\n\t\t\tconst keys = res[1];\n\n\t\t\tif (keys.length > 0) {\n\n\t\t\t\tawait delegate(keys);\n\t\t\t\tself.emit('info', {message: 'redis#scan', data: {cycle, scanned: SCAN_LIMIT * cycle}});\n\t\t\t\tawait processCycle();\n\n\t\t\t} else {\n\n\t\t\t\tself.emit('info', {message: 'redis#scan', data: {cycle, scanned: SCAN_LIMIT * cycle}});\n\t\t\t\tawait processCycle();\n\n\t\t\t}\n\n\t\t\tasync function processCycle () {\n\n\t\t\t\tif (cursor !== '0') {\n\n\t\t\t\t\tawait _scan();\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Get the remaining time of a key\n\t */\n\tpublic async ttl (key): Promise<number> {\n\n\t\tthis._checkDisposed();\n\n\t\treturn this._client.ttlAsync(key);\n\n\t}\n\n\t/**\n\t * Set the expiry in seconds\n\t */\n\tprivate async _checkExpiry (key, options): Promise<void> {\n\n\t\tif (options && options.expire) {\n\n\t\t\treturn this._client.expireAsync(key, options.expire);\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Check to make sure this transaction is still open\n\t */\n\tprivate _checkDisposed (): void {\n\n\t\tif (!this._client) {\n\n\t\t\tthrow new Error('Client disposed');\n\n\t\t}\n\n\t}\n\n}\n\nexport default Redis;\n"]}
\No newline at end of file