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.
60 lines
1.9 KiB
60 lines
1.9 KiB
"use strict"; |
|
var utils = require("../utils"); |
|
var publicUtils = require("./public-utils"); |
|
var _ = require("../lodash.custom"); |
|
var defaultConfig = require("../default-config"); |
|
var stream = require("./stream"); |
|
/** |
|
* @param emitter |
|
* @returns {Function} |
|
*/ |
|
module.exports = function (emitter) { |
|
/** |
|
* Inform browsers about file changes. |
|
* |
|
* eg: reload("core.css") |
|
*/ |
|
function browserSyncReload(opts) { |
|
/** |
|
* BACKWARDS COMPATIBILITY: |
|
* Passing an object as the only arg to the `reload` |
|
* method with at *least* the key-value pair of {stream: true}, |
|
* was only ever used for streams support - so it's safe to check |
|
* for that signature here and defer to the |
|
* dedicated `.stream()` method instead. |
|
*/ |
|
if (_.isObject(opts)) { |
|
if (!Array.isArray(opts) && Object.keys(opts).length) { |
|
if (opts.stream === true) { |
|
return stream(emitter)(opts); |
|
} |
|
} |
|
} |
|
/** |
|
* Handle single string paths such as |
|
* reload("core.css") |
|
*/ |
|
if (typeof opts === "string" && opts !== "undefined") { |
|
return publicUtils.emitChangeEvent(emitter, opts, true); |
|
} |
|
/** |
|
* Handle an array of file paths such as |
|
* reload(["core.css, "ie.css"]) |
|
*/ |
|
if (Array.isArray(opts)) { |
|
return opts.forEach(function (filepath) { |
|
publicUtils.emitChangeEvent(emitter, filepath, true); |
|
}); |
|
} |
|
/** |
|
* At this point the argument given was neither an object, |
|
* array or string so we simply perform a reload. This is to |
|
* allow the following syntax to work as expected |
|
* |
|
* reload(); |
|
*/ |
|
return publicUtils.emitBrowserReload(emitter); |
|
} |
|
return browserSyncReload; |
|
}; |
|
//# sourceMappingURL=reload.js.map
|