@pipepack/enhanced-resolver
Version:
yet, reimplement enhanced-resolve with the idea 'simple is best'.
58 lines (45 loc) • 1.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.asFile = asFile;
exports.asModule = asModule;
exports.asDirectory = asDirectory;
var _path = require("path");
var _rxjs = require("rxjs");
var _operators = require("rxjs/operators");
var _is = require("./is");
var _descriptionFile = require("./description-file");
var _assign = require("../utils/assign");
// package
// internal
/**
* consider request as file, just pass through, for convenience
*/
function asFile(request) {
return (0, _rxjs.of)(request);
}
/**
* condier request as standalone module, which means search by description file
*/
function asModule(request, options) {
const {
fs,
descriptionFiles,
mainFields
} = options;
return (0, _rxjs.of)(request).pipe((0, _operators.concatMap)(() => (0, _descriptionFile.pickDescriptionFile)(request, fs, descriptionFiles)), (0, _operators.concatMap)(descriptions => (0, _descriptionFile.pickMainField)(request, descriptions, mainFields)));
}
/**
* consider request as directory, spread indexes
*/
function asDirectory(request, options) {
const {
fs,
mainFiles
} = options;
return (0, _is.isDirectoryRequest)(request, fs).pipe((0, _operators.concatMap)(() => (0, _rxjs.from)(mainFiles).pipe((0, _operators.map)(mainFile => (0, _assign.assign)(request, {
referencePathName: (0, _path.join)(request.referencePathName, mainFile)
})))));
}
//# sourceMappingURL=as.js.map