UNPKG

@pipepack/enhanced-resolver

Version:

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

68 lines (59 loc) 1.84 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.is = is; exports.isFile = isFile; exports.isDirectory = isDirectory; exports.isFileRequest = isFileRequest; exports.isDirectoryRequest = isDirectoryRequest; var _path = require("path"); var _rxjs = require("rxjs"); var _constant = require("../utils/constant"); /** * @description - creation operator, detect specific path is directory or file, pass through when yes, transparent when no * @author - huang.jian <hjj491229492@hotmail.com> */ // package // internal // internal // filter absolute path directly function is(fs, absPath, identity, payload) { return new _rxjs.Observable(subscriber => { // only care about normal request fs.stat(absPath).then(stat => { if (identity === _constant.Identity.File && stat.isFile()) { subscriber.next(payload); } else if (identity === _constant.Identity.Directory && stat.isDirectory()) { subscriber.next(payload); } else {// fallback, swallow silently } }).catch(() => {// ignore influence on pipe, maybe better logger here }).finally(() => { subscriber.complete(); }); }); } function isFile(fs, absPath, payload) { return is(fs, absPath, _constant.Identity.File, payload); } function isDirectory(fs, absPath, payload) { return is(fs, absPath, _constant.Identity.Directory, payload); } function isFileRequest(request, fs) { const { context, referencePathName } = request; const absPath = (0, _path.join)(context, referencePathName); return isFile(fs, absPath, request); } function isDirectoryRequest(request, fs) { const { context, referencePathName } = request; const absPath = (0, _path.join)(context, referencePathName); return isDirectory(fs, absPath, request); } //# sourceMappingURL=is.js.map