Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

39 lines
1.0 KiB

4 years ago
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = normalize;
var _path = _interopRequireDefault(require("path"));
var _normalizePath = _interopRequireDefault(require("normalize-path"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function escape(context, from) {
if (from && _path.default.isAbsolute(from)) {
return from;
} // Ensure context is escaped before globbing
// Handles special characters in paths
const absoluteContext = _path.default.resolve(context) // Need refactor
// eslint-disable-next-line no-useless-escape
.replace(/[\*|\?|\!|\(|\)|\[|\]|\{|\}]/g, substring => `[${substring}]`);
if (!from) {
return absoluteContext;
} // Cannot use path.join/resolve as it "fixes" the path separators
if (absoluteContext.endsWith('/')) {
return `${absoluteContext}${from}`;
}
return `${absoluteContext}/${from}`;
}
function normalize(context, from) {
return (0, _normalizePath.default)(escape(context, from));
}