diff options
Diffstat (limited to 'browser/components/newtab/loaders/inject-loader.js')
-rw-r--r-- | browser/components/newtab/loaders/inject-loader.js | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/browser/components/newtab/loaders/inject-loader.js b/browser/components/newtab/loaders/inject-loader.js deleted file mode 100644 index 8729baf270..0000000000 --- a/browser/components/newtab/loaders/inject-loader.js +++ /dev/null @@ -1,59 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this file, - * You can obtain one at http://mozilla.org/MPL/2.0/. */ - -// Note: this is based on https://github.com/plasticine/inject-loader, -// patched to make istanbul work properly - -const loaderUtils = require("loader-utils"); -const QUOTE_REGEX_STRING = "['|\"]{1}"; - -const hasOnlyExcludeFlags = query => - Object.keys(query).filter(key => query[key] === true).length === 0; -const escapePath = path => path.replace("/", "\\/"); - -function createRequireStringRegex(query) { - const regexArray = []; - - // if there is no query then replace everything - if (Object.keys(query).length === 0) { - regexArray.push("([^\\)]+)"); - } else if (hasOnlyExcludeFlags(query)) { - // if there are only negation matches in the query then replace everything - // except them - Object.keys(query).forEach(key => - regexArray.push(`(?!${QUOTE_REGEX_STRING}${escapePath(key)})`) - ); - regexArray.push("([^\\)]+)"); - } else { - regexArray.push(`(${QUOTE_REGEX_STRING}(`); - regexArray.push( - Object.keys(query) - .map(key => escapePath(key)) - .join("|") - ); - regexArray.push(`)${QUOTE_REGEX_STRING})`); - } - - // Wrap the regex to match `require()` - regexArray.unshift("require\\("); - regexArray.push("\\)"); - - return new RegExp(regexArray.join(""), "g"); -} - -module.exports = function inject(src) { - if (this.cacheable) { - this.cacheable(); - } - const regex = createRequireStringRegex( - loaderUtils.urlToRequest(this.resourcePath) || {} - ); - - return `module.exports = function inject(injections) { - var module = {exports: {}}; - var exports = module.exports; - ${src.replace(regex, "(injections[$1] || /* istanbul ignore next */ $&)")} - return module.exports; -}\n`; -}; |