| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports["default"] = processResources;
- exports.getOutput = void 0;
- var _logger = _interopRequireDefault(require("./logger"));
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
- // Matches opening and closing parenthesis across multiple lines
- var multilineParenthesisRegex = '\\([\\s\\S]*?\\);?'; // Finds any @use statement
- var useRegex = "^@use \\S*(?: with ".concat(multilineParenthesisRegex, "|.*)?\n?$"); // Same as above, but adds the m (multiline) flag
- var useRegexTest = new RegExp(useRegex, 'm'); // Makes sure that only the last instance of `useRegex` variable is found
- var useRegexReplace = new RegExp("".concat(useRegex, "(?![\\s\\S]*").concat(useRegex, ")"), 'gm');
- var getOutput = function getOutput(source, resources, _ref) {
- var hoistUseStatements = _ref.hoistUseStatements;
- if (hoistUseStatements && useRegexTest.test(source)) {
- var output = source.replace(useRegexReplace, function (useStatements) {
- return "".concat(useStatements, "\n").concat(resources);
- }); // De-duplicate identical imports
- var importedResources = {};
- return output.replace(new RegExp(useRegex, 'mg'), function (importedResource) {
- if (importedResources[importedResource]) {
- return '';
- }
- importedResources[importedResource] = true;
- return importedResource;
- });
- }
- return "".concat(resources, "\n").concat(source);
- };
- exports.getOutput = getOutput;
- function processResources(error, resources, source, options, module, callback) {
- if (error) {
- _logger["default"].debug('Resources: **not found**');
- return callback(error);
- }
- var stringifiedResources = Array.isArray(resources) ? resources.join('\n') : resources;
- var output = getOutput(source, stringifiedResources, options);
- _logger["default"].debug('Resources: \n', "/* ".concat(module, " */ \n"), output);
- return callback(null, output);
- }
|