@sanpjs/bundler-webpack
Version:
@sanpjs/bundler-webpack
29 lines • 1.15 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
// import MFS from 'memfs';
const memory_fs_1 = __importDefault(require("memory-fs"));
class AsyncMFS extends memory_fs_1.default {
}
exports.default = AsyncMFS;
const syncRegex = /Sync$/;
const propsToPromisify = Object.getOwnPropertyNames(memory_fs_1.default.prototype).filter(n => n.endsWith('Sync'));
for (const prop of propsToPromisify) {
const asyncProp = prop.replace(syncRegex, '');
const origAsync = AsyncMFS.prototype[asyncProp];
AsyncMFS.prototype[asyncProp] = function (...args) {
// Callback support for webpack
if (origAsync && args.length && typeof args[args.length - 1] === 'function') {
return origAsync.call(this, ...args);
}
try {
return Promise.resolve(memory_fs_1.default.prototype[prop].call(this, ...args));
}
catch (error) {
return Promise.reject(error);
}
};
}
//# sourceMappingURL=async-mfs.js.map