liudong
2023-05-29 340f156319b863525e50e900c58e59b86ecb3d5e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
'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'];