'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _server = require('./server'); var _server2 = _interopRequireDefault(_server); var _client = require('./client'); var _client2 = _interopRequireDefault(_client); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var debug = require('debug')('tinylr'); // Need to keep track of LR servers when notifying var servers = []; exports.default = tinylr; // Expose Server / Client objects tinylr.Server = _server2.default; tinylr.Client = _client2.default; // and the middleware helpers tinylr.middleware = middleware; tinylr.changed = changed; // Main entry point function tinylr(opts) { var srv = new _server2.default(opts); servers.push(srv); return srv; } // A facade to Server#handle function middleware(opts) { var srv = new _server2.default(opts); servers.push(srv); return function tinylr(req, res, next) { srv.handler(req, res, next); }; } // Changed helper, helps with notifying the server of a file change function changed(done) { var files = [].slice.call(arguments); if (typeof files[files.length - 1] === 'function') done = files.pop(); done = typeof done === 'function' ? done : function () {}; debug('Notifying %d servers - Files: ', servers.length, files); servers.forEach(function (srv) { var params = { params: { files: files } }; srv && srv.changed(params); }); done(); } module.exports = exports['default'];