前端代码
This commit is contained in:
93
node_modules/browser-sync/dist/snippet.js
generated
vendored
Normal file
93
node_modules/browser-sync/dist/snippet.js
generated
vendored
Normal file
@ -0,0 +1,93 @@
|
||||
"use strict";
|
||||
var connectUtils = require("./connect-utils");
|
||||
var config = require("./config");
|
||||
var lrSnippet = require("resp-modifier");
|
||||
var path = require("path");
|
||||
var _ = require("./lodash.custom");
|
||||
var utils = require("./utils");
|
||||
var fs = require("fs");
|
||||
var path = require("path");
|
||||
/**
|
||||
* Utils for snippet injection
|
||||
*/
|
||||
var snippetUtils = {
|
||||
/**
|
||||
* @param {String} url
|
||||
* @param {Array} excludeList
|
||||
* @returns {boolean}
|
||||
*/
|
||||
isExcluded: function (url, excludeList) {
|
||||
var extension = path.extname(url);
|
||||
if (extension) {
|
||||
if (~url.indexOf("?")) {
|
||||
return true;
|
||||
}
|
||||
extension = extension.slice(1);
|
||||
return _.includes(excludeList, extension);
|
||||
}
|
||||
return false;
|
||||
},
|
||||
/**
|
||||
* @param {String} snippet
|
||||
* @param {Object} options
|
||||
* @returns {{match: RegExp, fn: Function}}
|
||||
*/
|
||||
getRegex: function (snippet, options) {
|
||||
var fn = options.getIn(["rule", "fn"]);
|
||||
return {
|
||||
match: options.getIn(["rule", "match"]),
|
||||
fn: function (req, res, match) {
|
||||
return fn.apply(null, [snippet, match]);
|
||||
},
|
||||
once: true,
|
||||
id: "bs-snippet"
|
||||
};
|
||||
},
|
||||
getSnippetMiddleware: function (snippet, options, rewriteRules) {
|
||||
return lrSnippet.create(snippetUtils.getRules(snippet, options, rewriteRules));
|
||||
},
|
||||
getRules: function (snippet, options, rewriteRules) {
|
||||
var rules = [snippetUtils.getRegex(snippet, options)];
|
||||
if (rewriteRules) {
|
||||
rules = rules.concat(rewriteRules);
|
||||
}
|
||||
return {
|
||||
rules: rules,
|
||||
blacklist: utils.arrayify(options.get("blacklist")),
|
||||
whitelist: utils.arrayify(options.get("whitelist"))
|
||||
};
|
||||
},
|
||||
/**
|
||||
* @param {Object} req
|
||||
* @param {Array} [excludeList]
|
||||
* @returns {Object}
|
||||
*/
|
||||
isOldIe: function (excludeList) {
|
||||
return function (req, res, next) {
|
||||
var ua = req.headers["user-agent"];
|
||||
var match = /MSIE (\d)\.\d/.exec(ua);
|
||||
if (match) {
|
||||
if (parseInt(match[1], 10) < 9) {
|
||||
if (!snippetUtils.isExcluded(req.url, excludeList)) {
|
||||
req.headers["accept"] = "text/html";
|
||||
}
|
||||
}
|
||||
}
|
||||
next();
|
||||
};
|
||||
},
|
||||
/**
|
||||
* @param {Number} port
|
||||
* @param {BrowserSync.options} options
|
||||
* @returns {String}
|
||||
*/
|
||||
getClientJs: function (port, options) {
|
||||
return () => {
|
||||
const script = options.get("minify") ? "index.js" : "index.js";
|
||||
const client = fs.readFileSync(require.resolve("browser-sync-client/dist/" + script), "utf8");
|
||||
return [connectUtils.socketConnector(options), client].join(";\n");
|
||||
};
|
||||
}
|
||||
};
|
||||
module.exports.utils = snippetUtils;
|
||||
//# sourceMappingURL=snippet.js.map
|
Reference in New Issue
Block a user