| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports["default"] = rewritePaths;
- exports.getRelativeUsePath = void 0;
- var _path = _interopRequireDefault(require("path"));
- var _logger = _interopRequireDefault(require("./logger"));
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
- var useRegexp = /@(import|use)\s+(?:'([^']+)'|"([^"]+)"|([^\s;]+))/g;
- var getRelativeUsePath = function getRelativeUsePath(oldUsePath, absoluteUsePath, moduleContext) {
- // from node_modules
- if (/^~/.test(oldUsePath)) {
- return oldUsePath;
- }
- return _path["default"].relative(moduleContext, absoluteUsePath);
- };
- exports.getRelativeUsePath = getRelativeUsePath;
- function rewritePaths(error, file, contents, moduleContext, callback) {
- if (error) {
- _logger["default"].debug('Resources: **not found**');
- return callback(error);
- }
- if (!/\.s[ac]ss$/i.test(file)) {
- return callback(null, contents);
- }
- var rewritten = contents.replace(useRegexp, function (entire, importer, single, _double, unquoted) {
- // Don't rewrite imports from built-ins
- if ([single, _double].some(function (match) {
- return match && match.indexOf('sass:') === 0;
- })) {
- return entire;
- }
- var oldUsePath = single || _double || unquoted;
- var absoluteUsePath = _path["default"].join(_path["default"].dirname(file), oldUsePath);
- var relUsePath = getRelativeUsePath(oldUsePath, absoluteUsePath, moduleContext);
- var newUsePath = relUsePath.split(_path["default"].sep).join('/');
- _logger["default"].debug("Resources: @".concat(importer, " of ").concat(oldUsePath, " changed to ").concat(newUsePath));
- var lastCharacter = entire[entire.length - 1];
- var quote = lastCharacter === "'" || lastCharacter === '"' ? lastCharacter : '';
- return "@".concat(importer, " ").concat(quote).concat(newUsePath).concat(quote);
- });
- callback(null, rewritten);
- return undefined;
- }
|