UNPKG

1.71 kBJavaScriptView Raw
1(function() {
2 var Director, outcome;
3
4 Director = require("./director");
5
6 outcome = require("outcome");
7
8 module.exports = function(router) {
9 var director;
10 director = new Director("pull", router);
11 return {
12 name: director.name,
13 /*
14 */
15 director: director,
16 /*
17 */
18 newListener: function(listener) {
19 if (!!listener.route.tags.pull) {
20 return router.request(listener.route.channel).headers(listener.route.tags).success(listener.callback).error(function() {}).pull();
21 }
22 },
23 /*
24 extend the router
25 */
26 router: {
27 pull: function(channel, query, headers, callback) {
28 return this._pull(channel, query, headers, callback, director.name);
29 },
30 _pull: function(channel, query, headers, callback, type) {
31 if (typeof query === 'function') {
32 callback = query;
33 headers = null;
34 query = null;
35 }
36 if (typeof headers === 'function') {
37 callback = headers;
38 headers = null;
39 }
40 return this.request(channel, query, headers)[type](callback);
41 }
42 },
43 /*
44 extend the message builder
45 */
46 message: {
47 pull: function(query, callback) {
48 return this._pull(query, callback, director.name);
49 },
50 _pull: function(query, callback, type) {
51 if (typeof query === 'function') {
52 callback = query;
53 query = null;
54 }
55 if (!!query) this.query(query);
56 if (!!callback) this.response(callback);
57 return this.dispatch(type);
58 }
59 }
60 };
61 };
62
63}).call(this);