@pipepack/enhanced-resolver
Version:
yet, reimplement enhanced-resolve with the idea 'simple is best'.
35 lines (28 loc) • 1.16 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.relativize = relativize;
var _rxjs = require("rxjs");
var _operators = require("rxjs/operators");
var _path = require("path");
var _constant = require("../utils/constant");
var _assign = require("../utils/assign");
/**
* @description - convert absolute reference path into relative path with another context
* @author - huang.jian <hjj491229492@hotmail.com>
*/
// package
// internal
function relativize( // root candicate means absolute path
roots) {
return (0, _rxjs.pipe)((0, _operators.concatMap)(request => (0, _rxjs.iif)( // filter absolute reference path
() => request.channel !== _constant.Channel.Absolute, // pass through when not absolute reference path
(0, _rxjs.of)(request), // convert absolute reference path into relative
(0, _rxjs.from)(roots).pipe((0, _operators.filter)(context => (0, _path.isAbsolute)(context)), (0, _operators.map)(context => (0, _assign.assign)(request, {
context,
channel: _constant.Channel.Relative,
referencePathName: request.referencePathName.slice(1)
}))))));
}
//# sourceMappingURL=relativize.js.map