From b7802eae32129e2ca63bee58eec8df50fa691153 Mon Sep 17 00:00:00 2001 From: Seth Westphal Date: Tue, 16 Aug 2016 14:38:37 -0500 Subject: [PATCH] Add redis-scripto typings with tests. --- redis-scripto/redis-scripto-tests.ts | 37 ++++++++++++++++++++++++++ redis-scripto/redis-scripto.d.ts | 39 ++++++++++++++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 redis-scripto/redis-scripto-tests.ts create mode 100644 redis-scripto/redis-scripto.d.ts diff --git a/redis-scripto/redis-scripto-tests.ts b/redis-scripto/redis-scripto-tests.ts new file mode 100644 index 0000000000..235ebeb819 --- /dev/null +++ b/redis-scripto/redis-scripto-tests.ts @@ -0,0 +1,37 @@ +/// +/// + +import * as redis from 'redis'; +import * as Scripto from 'redis-scripto'; + +var num: number; +var str: string; +var options: redis.ClientOpts; +var redisClient = redis.createClient(num, str, options); + +var scriptManager = new Scripto(redisClient); +scriptManager.loadFromDir('/path/to/lua/scripts'); + +var keys = ['keyOne', 'keyTwo']; +var values = [10, 20]; +scriptManager.run('your-script', keys, values, function(err, result) { + +}); + +scriptManager.eval('your-script', keys, values, function(err, result) { + +}); + +scriptManager.loadFromFile('script-one', '/path/to/the/file'); +scriptManager.run('script-one', [], [], function(err, result) { + +}); + +var scripts: Scripto.Scripts = { + 'script-two': 'return 1000' +}; + +scriptManager.load(scripts); +scriptManager.run('script-two', [], [], function(err, result) { + +}); diff --git a/redis-scripto/redis-scripto.d.ts b/redis-scripto/redis-scripto.d.ts new file mode 100644 index 0000000000..e62e239210 --- /dev/null +++ b/redis-scripto/redis-scripto.d.ts @@ -0,0 +1,39 @@ +// Type definitions for redis-scripto 0.1.3 +// Project: https://github.com/arunoda/node-redis-scripto +// Definitions by: Seth Westphal +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// + +declare module "redis-scripto" { + + import * as redis from 'redis'; + + class Scripto { + + constructor(redisClient: redis.RedisClient); + + eval(scriptName: string, keys: string[], args: any[], callback: (err: Error, result: any) => void): void; + evalSha(scriptName: string, keys: string[], args: any[], callback: (err: Error, result: any) => void): void; + + load(scripts: Scripto.Scripts): void; + loadFromDir(scriptsDir: string): void; + loadFromFile(name: string, filepath: string): void; + + run(scriptName: string, keys: string[], args: any[], callback: (err: Error, result: any) => void): void; + + } + + namespace Scripto { + + export type Script = string; + + export interface Scripts { + [scriptName: string]: Script; + } + + } + + export = Scripto; + +}