From 8ed65c45772b0093d6222a93236cf333f6a24eab Mon Sep 17 00:00:00 2001 From: MugeSo Date: Thu, 13 Aug 2015 19:56:49 +0900 Subject: [PATCH] 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; +}