babel-plugin-base-path
Version:
Add first-class support for transforming relative asset paths to absolute one's.
28 lines (19 loc) • 1.04 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _babelTypes = require('babel-types');
var t = _interopRequireWildcard(_babelTypes);
var _utils = require('../utils');
var _regex = require('../regex');
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
exports.default = (path, state) => {
const urlPrefix = (0, _utils.getOption)(state, 'base');
const objectValue = path.node.value;
if (t.isStringLiteral(objectValue) && !objectValue.value.includes('http')) {
const { value } = objectValue;
const relativeURLsMatches = value.match(_regex.RELATIVE_URL_REGEX) || [];
const stringWithAbsoluteURLs = (0, _utils.replaceMatchesInString)(value, relativeURLsMatches, match => urlPrefix + match);
path.node.value = t.stringLiteral(stringWithAbsoluteURLs);
}
};