work.suroh.tk/node_modules/browser-sync-ui/index.js

49 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));
}