UNPKG

external-url-loader

Version:

A loader for webpack that permit static's usage as externals

32 lines 4.63 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const loader_utils_1 = require("loader-utils"); const schema_utils_1 = __importDefault(require("schema-utils")); const url_loader_1 = __importDefault(require("url-loader")); const options_json_1 = __importDefault(require("./options.json")); // tslint:disable-next-line:no-default-export function default_1(source) { const options = loader_utils_1.getOptions(this) || {}; schema_utils_1.default(options_json_1.default, options, 'External URL Loader'); let fallbackLoaderContext; fallbackLoaderContext = Object.assign(Object.assign({}, this), { query: options }); const outputUrlLoader = url_loader_1.default.call(fallbackLoaderContext, source); if (options.active) { const extractedUrlLoaderContent = `${outputUrlLoader}`.match(/(?<=module\.exports\ =\ ['"]).*(?=['"];)/); if (extractedUrlLoaderContent && extractedUrlLoaderContent.length === 1 && !extractedUrlLoaderContent[0].match(/base64/)) { if (options.extractCss) { return `module.exports = "~${options.packageName}/${extractedUrlLoaderContent[0]}";`; } return `module.exports = require("${options.packageName}/${extractedUrlLoaderContent[0]}");`; } } return outputUrlLoader; } exports.default = default_1; exports.raw = true; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwtdXJsLWxvYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL2xpYi9leHRlcm5hbC11cmwtbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsK0NBQTBDO0FBQzFDLGdFQUEyQztBQUMzQyw0REFBbUM7QUFFbkMsa0VBQW9DO0FBRXBDLDZDQUE2QztBQUM3QyxtQkFBb0QsTUFBdUI7SUFDdkUsTUFBTSxPQUFPLEdBQUcseUJBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFdkMsc0JBQWUsQ0FBQyxzQkFBTSxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBRXhELElBQUkscUJBQTJDLENBQUM7SUFFaEQscUJBQXFCLG1DQUFRLElBQUksS0FBRSxLQUFLLEVBQUUsT0FBTyxHQUFFLENBQUM7SUFDcEQsTUFBTSxlQUFlLEdBQUcsb0JBQVMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFFdEUsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFO1FBQ2hCLE1BQU0seUJBQXlCLEdBQUcsR0FBRyxlQUFlLEVBQUUsQ0FBQyxLQUFLLENBQUMsMENBQTBDLENBQUMsQ0FBQztRQUN6RyxJQUNJLHlCQUF5QjtZQUN6Qix5QkFBeUIsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUN0QyxDQUFDLHlCQUF5QixDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFDL0M7WUFDRSxJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUU7Z0JBQ3BCLE9BQU8sc0JBQXNCLE9BQU8sQ0FBQyxXQUFXLElBQUkseUJBQXlCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQzthQUN4RjtZQUNELE9BQU8sNkJBQTZCLE9BQU8sQ0FBQyxXQUFXLElBQUkseUJBQXlCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztTQUNoRztLQUNKO0lBRUQsT0FBTyxlQUFlLENBQUM7QUFDM0IsQ0FBQztBQXpCRCw0QkF5QkM7QUFFWSxRQUFBLEdBQUcsR0FBRyxJQUFJLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRPcHRpb25zIH0gZnJvbSAnbG9hZGVyLXV0aWxzJztcbmltcG9ydCB2YWxpZGF0ZU9wdGlvbnMgZnJvbSAnc2NoZW1hLXV0aWxzJztcbmltcG9ydCB1cmxMb2FkZXIgZnJvbSAndXJsLWxvYWRlcic7XG5pbXBvcnQgeyBsb2FkZXIgfSBmcm9tICd3ZWJwYWNrJztcbmltcG9ydCBzY2hlbWEgZnJvbSAnLi9vcHRpb25zLmpzb24nO1xuXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tZGVmYXVsdC1leHBvcnRcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHRoaXM6IGxvYWRlci5Mb2FkZXJDb250ZXh0LCBzb3VyY2U6IHN0cmluZyB8IEJ1ZmZlcikge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBnZXRPcHRpb25zKHRoaXMpIHx8IHt9O1xuXG4gICAgdmFsaWRhdGVPcHRpb25zKHNjaGVtYSwgb3B0aW9ucywgJ0V4dGVybmFsIFVSTCBMb2FkZXInKTtcblxuICAgIGxldCBmYWxsYmFja0xvYWRlckNvbnRleHQ6IGxvYWRlci5Mb2FkZXJDb250ZXh0O1xuXG4gICAgZmFsbGJhY2tMb2FkZXJDb250ZXh0ID0geyAuLi50aGlzLCBxdWVyeTogb3B0aW9ucyB9O1xuICAgIGNvbnN0IG91dHB1dFVybExvYWRlciA9IHVybExvYWRlci5jYWxsKGZhbGxiYWNrTG9hZGVyQ29udGV4dCwgc291cmNlKTtcblxuICAgIGlmIChvcHRpb25zLmFjdGl2ZSkge1xuICAgICAgICBjb25zdCBleHRyYWN0ZWRVcmxMb2FkZXJDb250ZW50ID0gYCR7b3V0cHV0VXJsTG9hZGVyfWAubWF0Y2goLyg/PD1tb2R1bGVcXC5leHBvcnRzXFwgPVxcIFsnXCJdKS4qKD89WydcIl07KS8pO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICBleHRyYWN0ZWRVcmxMb2FkZXJDb250ZW50ICYmXG4gICAgICAgICAgICBleHRyYWN0ZWRVcmxMb2FkZXJDb250ZW50Lmxlbmd0aCA9PT0gMSAmJlxuICAgICAgICAgICAgIWV4dHJhY3RlZFVybExvYWRlckNvbnRlbnRbMF0ubWF0Y2goL2Jhc2U2NC8pXG4gICAgICAgICkge1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMuZXh0cmFjdENzcykge1xuICAgICAgICAgICAgICAgIHJldHVybiBgbW9kdWxlLmV4cG9ydHMgPSBcIn4ke29wdGlvbnMucGFja2FnZU5hbWV9LyR7ZXh0cmFjdGVkVXJsTG9hZGVyQ29udGVudFswXX1cIjtgO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCIke29wdGlvbnMucGFja2FnZU5hbWV9LyR7ZXh0cmFjdGVkVXJsTG9hZGVyQ29udGVudFswXX1cIik7YDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBvdXRwdXRVcmxMb2FkZXI7XG59XG5cbmV4cG9ydCBjb25zdCByYXcgPSB0cnVlO1xuIl19