You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.0 KiB
48 lines
1.0 KiB
"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)); |
|
}
|
|
|