From 3e4e94bf4896a554b5b1838fda49b040a8e4b65c Mon Sep 17 00:00:00 2001 From: MugeSo Date: Fri, 14 Aug 2015 10:27:01 +0900 Subject: [PATCH] added definition for rsmq-worker http://smrchy.github.io/rsmq/rsmq-worker/ --- rsmq-worker/rsmq-worker-tests.ts | 21 +++++++++++++ rsmq-worker/rsmq-worker.d.ts | 52 ++++++++++++++++++++++++++++++++ rsmq/rsmq.d.ts | 25 ++++++++------- 3 files changed, 87 insertions(+), 11 deletions(-) create mode 100644 rsmq-worker/rsmq-worker-tests.ts create mode 100644 rsmq-worker/rsmq-worker.d.ts diff --git a/rsmq-worker/rsmq-worker-tests.ts b/rsmq-worker/rsmq-worker-tests.ts new file mode 100644 index 0000000000..4568302dd0 --- /dev/null +++ b/rsmq-worker/rsmq-worker-tests.ts @@ -0,0 +1,21 @@ + +import RSMQWorker = require('rsmq-worker'); + +var worker = new RSMQWorker("my-queue"); +worker.changeInterval(1); +worker.changeInterval([0, 1, 5, 10]); + +worker.on('message', (message: RedisSMQ.Message, next: Function) => { + console.log('received message: "' + message.message + "'"); + next(); +}); +worker.start(); + +worker.send('message1'); +worker.send('message2', 1, (e: Error, id:string) => { + worker.del(id); +}); +worker.send('message3', () => {}); + +worker.stop(); + diff --git a/rsmq-worker/rsmq-worker.d.ts b/rsmq-worker/rsmq-worker.d.ts new file mode 100644 index 0000000000..a52979f9c4 --- /dev/null +++ b/rsmq-worker/rsmq-worker.d.ts @@ -0,0 +1,52 @@ +// Type definitions for rsmq-worker 0.3.5 +// Project: http://smrchy.github.io/rsmq/rsmq-worker/ +// Definitions by: Qubo +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// + +declare module "rsmq-worker" { + import redis = require('redis'); + import events = require('events'); + + interface CallbackT { + (e?:Error, res?:R): void; + } + + interface RSMQWorkerStatic { + new(queuename: string, options?: WorkerOptions): RSMQWorker; + } + + interface WorkerOptions { + interval?: number; + maxReceiveCount?: number; + invisibletime?: number; + defaultDelay?: number; + autostart?: boolean; + timeout: number; + customExceedCheck?: CustomExceedCheckCallback; + rsmq?: RedisSMQ.Client; + redis?: redis.RedisClient; + redisPrefix?: string; + host?: string; + port?: number; + options?: redis.ClientOpts; + } + + interface CustomExceedCheckCallback { + (message: RedisSMQ.Message): boolean; + } + + + interface RSMQWorker extends events.EventEmitter { + start(): RSMQWorker; + stop(): RSMQWorker; + send(message: string, delay?: number, cb?: CallbackT): RSMQWorker; + send(message: string, cb: CallbackT): RSMQWorker; + del(id: string, cb?: CallbackT): RSMQWorker; + changeInterval(interval: number|number[]): RSMQWorker; + } + + var worker: RSMQWorkerStatic; + export = worker; +} \ No newline at end of file diff --git a/rsmq/rsmq.d.ts b/rsmq/rsmq.d.ts index 8fbbd566c7..34a5adbd4d 100644 --- a/rsmq/rsmq.d.ts +++ b/rsmq/rsmq.d.ts @@ -10,6 +10,19 @@ declare module RedisSMQ { (e?:Error, res?:R): void; } + interface Client { + createQueue(options:QueueOptions, cb:CallbackT): void; + changeMessageVisibility(options:VisibilityOptions, cb:CallbackT): void; + deleteMessage(options:MessageIdentifier, cb:CallbackT): void; + deleteQueue(options:QueueIdentifier, cb:CallbackT): void; + getQueueAttributes(options:QueueIdentifier, cb:CallbackT): void; + listQueues(cb:CallbackT): void; + receiveMessage(options:ReceiveOptions, cb:CallbackT): void; + sendMessage(options:NewMessage, cb:CallbackT): void; + setQueueAttributes(options:QueueOptions, cb:CallbackT): void; + quit(): void; + } + interface QueueIdentifier { qname: string; } @@ -64,17 +77,7 @@ declare module 'rsmq' { new (options:ClientOptions): Client; } - interface Client { - createQueue(options:RedisSMQ.QueueOptions, cb:RedisSMQ.CallbackT): void; - changeMessageVisibility(options:RedisSMQ.VisibilityOptions, cb:RedisSMQ.CallbackT): void; - deleteMessage(options:RedisSMQ.MessageIdentifier, cb:RedisSMQ.CallbackT): void; - deleteQueue(options:RedisSMQ.QueueIdentifier, cb:RedisSMQ.CallbackT): void; - getQueueAttributes(options:RedisSMQ.QueueIdentifier, cb:RedisSMQ.CallbackT): void; - listQueues(cb:RedisSMQ.CallbackT): void; - receiveMessage(options:RedisSMQ.ReceiveOptions, cb:RedisSMQ.CallbackT): void; - sendMessage(options:RedisSMQ.NewMessage, cb:RedisSMQ.CallbackT): void; - setQueueAttributes(options:RedisSMQ.QueueOptions, cb:RedisSMQ.CallbackT): void; - quit(): void; + interface Client extends RedisSMQ.Client{ redis: redis.RedisClient; }