index.js
1.0 KB
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
"use strict";
var UI = require("./lib/UI");
var config = require("./lib/config");
var Events = require("events").EventEmitter;
/**
* Hooks are for attaching functionality to BrowserSync
*/
module.exports.hooks = {
/**
* Client JS is added to each connected client
*/
"client:js": fileContent(config.defaults.clientJs)
};
/**
* BrowserSync Plugin interface
* @param {Object} opts
* @param {BrowserSync} bs
* @param {Function} cb
* @returns {UI}
*/
module.exports["plugin"] = function (opts, bs, cb) {
var ui = new UI(opts, bs, new Events());
bs.setOption("session", new Date().getTime());
ui.cb = cb || function () { /*noop*/ };
ui.init();
return ui;
};
module.exports["plugin:name"] = config.defaults.pluginName;
/**
* @param filepath
* @returns {*}
*/
function getPath (filepath) {
return require("path").join(__dirname, filepath);
}
/**
* @param filepath
* @returns {*}
*/
function fileContent (filepath) {
return require("fs").readFileSync(getPath(filepath));
}