From 8ed65c45772b0093d6222a93236cf333f6a24eab Mon Sep 17 00:00:00 2001 From: MugeSo Date: Thu, 13 Aug 2015 19:56:49 +0900 Subject: [PATCH 1/3] added definition for rsmq http://smrchy.github.io/rsmq/ --- rsmq/rsmq-tests.ts | 24 ++++++++++++ rsmq/rsmq.d.ts | 91 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 115 insertions(+) create mode 100644 rsmq/rsmq-tests.ts create mode 100644 rsmq/rsmq.d.ts diff --git a/rsmq/rsmq-tests.ts b/rsmq/rsmq-tests.ts new file mode 100644 index 000000000..c7a89490a --- /dev/null +++ b/rsmq/rsmq-tests.ts @@ -0,0 +1,24 @@ +/// + +var RedisSMQ = require("rsmq"); +var rsmq = new RedisSMQ( {host: "127.0.0.1", port: 6379, ns: "rsmq"} ); +var rsmq2 = new RedisSMQ({client: rsmq.redis, ns: "rsmq2"}); + +rsmq.createQueue({qname: "my-queue"}, (e: Error, success: number) => { + if (e) { + console.error(e); + } + + console.info('"my-queue" has created'); +}); + +rsmq.sendMessage({qname: "my-queue", message: "first message"}, (e: Error, id: string) => { + rsmq.changeMessageVisibility({qname: "my-queue", id: id, vt: 100}, (e: Error, success: number) => {}); +}); +rsmq.getQueueAttributes({qname: 'my-queue'}, (e: Error, attr: RedisSMQ.QueueAttributes) =>{} ); +rsmq.setQueueAttributes({qname: "my-queue", vt: 20}, (e: Error, attr: RedisSMQ.QueueAttributes) => {}); +rsmq.receiveMessage({qname: "my-queue"}, (e: Error, message: RedisSMQ.Message) => { + rsmq.deleteMessage(message, (e: Error, success: number) => {}); +}); +rsmq.listQueues((e: Error, list: string[]) => {}); +rsmq.deleteQueue({qname: "my-queue"}, (e: Error, res: number) => {}); \ No newline at end of file diff --git a/rsmq/rsmq.d.ts b/rsmq/rsmq.d.ts new file mode 100644 index 000000000..8fbbd566c --- /dev/null +++ b/rsmq/rsmq.d.ts @@ -0,0 +1,91 @@ +// Type definitions for rsmq 0.3.16 +// Project: http://smrchy.github.io/rsmq/ +// Definitions by: Qubo +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// + +declare module RedisSMQ { + interface CallbackT { + (e?:Error, res?:R): void; + } + + interface QueueIdentifier { + qname: string; + } + + interface QueueOptions extends QueueIdentifier { + vt?: number; + delay?: number; + maxsize?: number; + } + + interface MessageIdentifier extends QueueIdentifier { + id: string; + } + + interface VisibilityOptions extends MessageIdentifier { + vt: number; + } + + export interface QueueAttributes extends QueueIdentifier { + vt: number; + delay: number; + maxsize: number; + totalrecv: number; + totalsent: number; + created: number; + modified: number; + msgs: number; + hiddenmsgs: number; + } + + interface ReceiveOptions extends QueueIdentifier { + vt?: number; + } + + export interface Message extends MessageIdentifier { + message: string; + sent: number; + fr: number; + rc: number; + } + + interface NewMessage extends QueueIdentifier { + message: string; + delay?: number; + } +} + +declare module 'rsmq' { + import redis = require('redis'); + + interface RedisSMQStatic { + 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; + redis: redis.RedisClient; + } + + interface ClientOptions { + host?: string; + port?: number; + options?: redis.ClientOpts; + client?: redis.RedisClient; + ns?: string; + } + + var rsmq: RedisSMQStatic; + export = rsmq; +} From 3e4e94bf4896a554b5b1838fda49b040a8e4b65c Mon Sep 17 00:00:00 2001 From: MugeSo Date: Fri, 14 Aug 2015 10:27:01 +0900 Subject: [PATCH 2/3] 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 000000000..4568302dd --- /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 000000000..a52979f9c --- /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 8fbbd566c..34a5adbd4 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; } From 2cd6a07b25b172fa8f5895a86dc5473a67e3b1f8 Mon Sep 17 00:00:00 2001 From: MugeSo Date: Fri, 14 Aug 2015 10:32:00 +0900 Subject: [PATCH 3/3] rsmq-worker: added newline at end of file --- rsmq-worker/rsmq-worker.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rsmq-worker/rsmq-worker.d.ts b/rsmq-worker/rsmq-worker.d.ts index a52979f9c..8783d914f 100644 --- a/rsmq-worker/rsmq-worker.d.ts +++ b/rsmq-worker/rsmq-worker.d.ts @@ -49,4 +49,4 @@ declare module "rsmq-worker" { var worker: RSMQWorkerStatic; export = worker; -} \ No newline at end of file +}