UNPKG

6.72 kBSource Map (JSON)View Raw
1{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../src/transaction.ts"],"names":[],"mappings":"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","sourcesContent":["import Client from './client';\nimport { IRedisKeyOptions } from './types/redis';\n\nexport default class Transaction {\n\n\tprivate _client: any;\n\n\tprivate _multi: any | null;\n\n\t/**\n\t * Constructor\n\t */\n\tconstructor (client: Client) {\n\n\t\tthis._client = client;\n\t\tthis._multi = client.client.multi();\n\n\t}\n\n\t/**\n\t * Commit a transaction\n\t */\n\tpublic async commit (): Promise<void> {\n\n\t\tthis._checkDisposed();\n\n\t\tconst result = await this._multi.execAsync();\n\n\t\tthis.rollback();\n\n\t\tif (!result) {\n\n\t\t\tthrow new Error('Transaction failed');\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Roll the transaction back\n\t */\n\tpublic rollback (): void {\n\n\t\tthis._checkDisposed();\n\n\t\tthis._multi.discard();\n\t\tthis._multi = null;\n\n\t}\n\n\t/**\n\t * Is a transaction still open\n\t */\n\tpublic get isOpen (): boolean {\n\n\t\treturn !!this._multi;\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\tthis._multi.set(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\tthis._multi.incrby(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\tthis._multi.incrbyfloat(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\tthis._multi.hincrby(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) {\n\n\t\tthis._checkDisposed();\n\n\t\tthis._multi.hincrbyfloat(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\tthis._multi.hmset(key, hash);\n\n\t\treturn this._checkExpiry(key, options);\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\tthis._multi.del(key);\n\n\t}\n\n\t/**\n\t * Add to a set\n\t */\n\tpublic async sadd (key: string, value: string | number, options?: IRedisKeyOptions): Promise<void> {\n\n\t\tthis._checkDisposed();\n\n\t\tthis._multi.sadd(key, value);\n\n\t\treturn this._checkExpiry(key, options);\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\tthis._multi.srem(key, value);\n\n\t}\n\n\t/**\n\t * Set the expiry in seconds\n\t */\n\tprivate async _checkExpiry (key: string, options?: IRedisKeyOptions): Promise<void> {\n\n\t\tif (options && options.expire) {\n\n\t\t\tthis._multi.expire(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._multi) {\n\n\t\t\tthrow new Error('Transaction disposed');\n\n\t\t}\n\n\t}\n\n}\n"]}
\No newline at end of file