48 lines
1.0 KiB
JavaScript
48 lines
1.0 KiB
JavaScript
|
"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));
|
||
|
}
|