added definition for rsmq

http://smrchy.github.io/rsmq/
This commit is contained in:
MugeSo
2015-08-13 19:56:49 +09:00
parent 338f9db370
commit 8ed65c4577
2 changed files with 115 additions and 0 deletions

24
rsmq/rsmq-tests.ts Normal file
View File

@@ -0,0 +1,24 @@
/// <reference path="rsmq.d.ts" />
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) => {});

91
rsmq/rsmq.d.ts vendored Normal file
View File

@@ -0,0 +1,91 @@
// Type definitions for rsmq 0.3.16
// Project: http://smrchy.github.io/rsmq/
// Definitions by: Qubo <https://github.com/MugeSo>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
/// <reference path='../redis/redis.d.ts'/>
declare module RedisSMQ {
interface CallbackT<R> {
(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<number>): void;
changeMessageVisibility(options:RedisSMQ.VisibilityOptions, cb:RedisSMQ.CallbackT<number>): void;
deleteMessage(options:RedisSMQ.MessageIdentifier, cb:RedisSMQ.CallbackT<number>): void;
deleteQueue(options:RedisSMQ.QueueIdentifier, cb:RedisSMQ.CallbackT<number>): void;
getQueueAttributes(options:RedisSMQ.QueueIdentifier, cb:RedisSMQ.CallbackT<RedisSMQ.QueueAttributes>): void;
listQueues(cb:RedisSMQ.CallbackT<string[]>): void;
receiveMessage(options:RedisSMQ.ReceiveOptions, cb:RedisSMQ.CallbackT<RedisSMQ.Message>): void;
sendMessage(options:RedisSMQ.NewMessage, cb:RedisSMQ.CallbackT<string>): void;
setQueueAttributes(options:RedisSMQ.QueueOptions, cb:RedisSMQ.CallbackT<RedisSMQ.QueueAttributes>): 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;
}