1 var util = require('util');
2 var Server = require('./server');
3 var Client = require('./client');
4 var debug = require('debug')('tinylr');
6 // Need to keep track of LR servers when notifying
9 module.exports = tinylr;
11 // Expose Server / Client objects
12 tinylr.Server = Server;
13 tinylr.Client = Client;
15 // and the middleware helpers
16 tinylr.middleware = middleware;
17 tinylr.changed = changed;
20 function tinylr(opts) {
21 var srv = new Server(opts);
26 // A facade to Server#handle
27 function middleware(opts) {
28 var srv = new Server(opts);
30 return function tinylr(req, res, next) {
31 srv.handler(req, res, next);
35 // Changed helper, helps with notifying the server of a file change
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);