blob: b2a36c4dbb31cf367033924f66afae9fffa60718 [file] [log] [blame]
Leo Repp58b9f112021-11-22 11:57:47 +01001'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _server = require('./server');
8
9var _server2 = _interopRequireDefault(_server);
10
11var _client = require('./client');
12
13var _client2 = _interopRequireDefault(_client);
14
15function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
17var debug = require('debug')('tinylr');
18
19// Need to keep track of LR servers when notifying
20var servers = [];
21
22exports.default = tinylr;
23
24// Expose Server / Client objects
25
26tinylr.Server = _server2.default;
27tinylr.Client = _client2.default;
28
29// and the middleware helpers
30tinylr.middleware = middleware;
31tinylr.changed = changed;
32
33// Main entry point
34function tinylr(opts) {
35 var srv = new _server2.default(opts);
36 servers.push(srv);
37 return srv;
38}
39
40// A facade to Server#handle
41function middleware(opts) {
42 var srv = new _server2.default(opts);
43 servers.push(srv);
44 return function tinylr(req, res, next) {
45 srv.handler(req, res, next);
46 };
47}
48
49// Changed helper, helps with notifying the server of a file change
50function changed(done) {
51 var files = [].slice.call(arguments);
52 if (typeof files[files.length - 1] === 'function') done = files.pop();
53 done = typeof done === 'function' ? done : function () {};
54 debug('Notifying %d servers - Files: ', servers.length, files);
55 servers.forEach(function (srv) {
56 var params = { params: { files: files } };
57 srv && srv.changed(params);
58 });
59 done();
60}
61module.exports = exports['default'];