保誠-保戶業務員媒合平台
HelenHuang
2022-06-09 9bdb95c9e34cef640534e5e5a1e2225a80442000
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
"use strict";
 
Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = rewriteImports;
exports.getRelativeImportPath = void 0;
 
var _path = _interopRequireDefault(require("path"));
 
var _logger = _interopRequireDefault(require("./logger"));
 
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
 
var importRegexp = /@import\s+(?:'([^']+)'|"([^"]+)"|([^\s;]+))/g;
 
var getRelativeImportPath = function getRelativeImportPath(oldImportPath, absoluteImportPath, moduleContext) {
  // from node_modules
  if (/^~/.test(oldImportPath)) {
    return oldImportPath;
  }
 
  return _path["default"].relative(moduleContext, absoluteImportPath);
};
 
exports.getRelativeImportPath = getRelativeImportPath;
 
function rewriteImports(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(importRegexp, function (entire, single, _double, unquoted) {
    var oldImportPath = single || _double || unquoted;
 
    var absoluteImportPath = _path["default"].join(_path["default"].dirname(file), oldImportPath);
 
    var relImportPath = getRelativeImportPath(oldImportPath, absoluteImportPath, moduleContext);
    var newImportPath = relImportPath.split(_path["default"].sep).join('/');
 
    _logger["default"].debug("Resources: @import of ".concat(oldImportPath, " changed to ").concat(newImportPath));
 
    var lastCharacter = entire[entire.length - 1];
    var quote = lastCharacter === "'" || lastCharacter === '"' ? lastCharacter : '';
    return "@import ".concat(quote).concat(newImportPath).concat(quote);
  });
  callback(null, rewritten);
  return undefined;
}