UNPKG

@pipepack/enhanced-resolver

Version:

yet, reimplement enhanced-resolve with the idea 'simple is best'.

41 lines (31 loc) 1.32 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.pickDescriptionFile = pickDescriptionFile; exports.pickMainField = pickMainField; var _path = require("path"); var _rxjs = require("rxjs"); var _operators = require("rxjs/operators"); var _json = require("./json"); var _assign = require("../utils/assign"); // package // internal /** * try to load description file as json, pass through payload, take the highest priority description file */ function pickDescriptionFile(request, fs, descriptionFiles) { return (0, _rxjs.from)(descriptionFiles).pipe((0, _operators.concatMap)(descriptionFile => (0, _json.json)(fs, (0, _path.join)(request.context, request.referencePathName, descriptionFile))), // only care about the first match (0, _operators.take)(1)); } /** * compose main field into request */ function pickMainField(request, descriptions, mainFields) { // 1. extract description content return (0, _rxjs.from)(mainFields).pipe((0, _operators.filter)(field => typeof descriptions[field] === 'string'), (0, _operators.map)(field => (0, _assign.assign)(request, { referencePathName: (0, _path.join)(request.referencePathName, descriptions[field]) })), // take priority main field (0, _operators.take)(1)); } //# sourceMappingURL=description-file.js.map