typescript-closure-tools
Version:
Command-line tools to convert closure-style JSDoc annotations to typescript, and to convert typescript sources to closure externs files
134 lines (109 loc) • 4.74 kB
TypeScript
// Type definitions for Arbiter.js 1.0
// Project: http://arbiterjs.com/
// Definitions by: Arash Shakery <https://github.com/arash16>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
// May 22 2013
declare module ArbiterDef {
export interface SubscribeHandler {
(data: any, message: string, subscriber_context: any): void;
}
export interface SubscribeOptions {
/**
* By default, all subscribers have a priority of 0. Higher values get higher
* priority and are executed first. Negative values are allowed.
*/
priority?: number;
/**
* A subscriber can be set to execute asynchronously, even if the message wasn't published as async.
*/
async?: boolean;
/**
* If your subscriber is not interested in any past messages that may have been
* persisted, you can force them to be ignored.
*/
persist?: boolean;
}
export interface PublishOptions {
/**
* By default, subscribers can return "false" to prevent subsequent subscribers from
* receiving the message. By passing cancelable:false in the options, the publisher
* can prevent canceling.
*/
cancelable?: boolean;
/**
* If the publishers wants subscribers to be notified even if they subscribe later,
* setting the persist flag will do that.
*/
persist?: boolean;
/**
* If you wish to notify the subscribers but return from the publish() call before
* the subscriber functions execute, use asynchronous mode
*/
async?: boolean;
}
export interface ArbiterStatic {
version: string;
updated_on: string;
/**
* Creates a separate Arbiter instance.
*/
create(): ArbiterStatic;
/**
* Publishes a message to all subscribers.
* Returns: true on success, false if any subscriber has thrown a js exception.
*
* @param msg Message may be in any format, but may not contain [ ,*]. A structure like a/b/c is recommended by convention, to allow messages to be categorized.
* @param data Pass data to subscribers that contains details about the message.
*/
publish(msg: string, data?: any, options?: PublishOptions): boolean;
/**
* Subscribes to messages.
* Returns: subscription id or [id1,id2] if subscribing to multiple messages
*
* @param msg comma separated messages or use wildcard like a/b/*
*/
subscribe(msg: string, func: SubscribeHandler): any;
/**
* Subscribes to messages.
* Returns: subscription id or [id1,id2] if subscribing to multiple messages
*
* @param msg comma separated messages or use wildcard like a/b/*
*/
subscribe(msg: string, options: SubscribeOptions, func: SubscribeHandler): any;
/**
* Subscribes to messages. Can use comma separated or wildcards in message.
* Returns: subscription id or [id1,id2] if subscribing to multiple messages
*/
subscribe(msg: string, options: SubscribeOptions, context: any, func: SubscribeHandler): any;
/**
* Subscribes to messages.
* Returns: subscription id or [id1,id2] if subscribing to multiple messages
*
* @param msg comma separated messages or use wildcard like a/b/*
*/
subscribe(msg: string[], func: SubscribeHandler): any;
/**
* Subscribes to messages.
* Returns: subscription id or [id1,id2] if subscribing to multiple messages
*
* @param msg comma separated messages or use wildcard like a/b/*
*/
subscribe(msg: string[], options: SubscribeOptions, func: SubscribeHandler): any;
/**
* Subscribes to messages.
* Returns: subscription id or [id1,id2] if subscribing to multiple messages
*
* @param msg comma separated messages or use wildcard like a/b/*
*/
subscribe(msg: string[], options: SubscribeOptions, context: any, func: SubscribeHandler): any;
/**
* Unsubscribing simply sets a flag which prevents the subscriber from executing, in case you want to re-subscribe later.
*/
unsubscribe(subscription_id: number);
/**
* After unsubscribing, you can later re-subscribe to begin receiving messages again.
*/
resubscribe(subscription_id: number);
}
}
declare var Arbiter: ArbiterDef.ArbiterStatic;