1 | var util = require('util');
|
2 | var Server = require('./server');
|
3 | var Client = require('./client');
|
4 | var debug = require('debug')('tinylr');
|
5 |
|
6 |
|
7 | var servers = [];
|
8 |
|
9 | module.exports = tinylr;
|
10 |
|
11 |
|
12 | tinylr.Server = Server;
|
13 | tinylr.Client = Client;
|
14 |
|
15 |
|
16 | tinylr.middleware = middleware;
|
17 | tinylr.changed = changed;
|
18 |
|
19 |
|
20 | function tinylr(opts) {
|
21 | var srv = new Server(opts);
|
22 | servers.push(srv);
|
23 | return srv;
|
24 | }
|
25 |
|
26 |
|
27 | function middleware(opts) {
|
28 | var srv = new Server(opts);
|
29 | servers.push(srv);
|
30 | return function tinylr(req, res, next) {
|
31 | srv.handler(req, res, next);
|
32 | };
|
33 | }
|
34 |
|
35 |
|
36 | function changed(done) {
|
37 | var files = [].slice.call(arguments);
|
38 | if (files[files.length - 1] === 'function') done = files.pop();
|
39 | done = typeof done === 'function' ? done : function() {};
|
40 | debug('Notifying %d servers - Files: ', servers.length, files);
|
41 | servers.forEach(function(srv) {
|
42 | var params = { params: { files: files }};
|
43 | srv && srv.changed(params);
|
44 | });
|
45 | done();
|
46 | }
|