UNPKG

webpack-userscript

Version:
56 lines 1.95 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.mkdirp = exports.writeJSON = exports.readJSON = exports.findPackage = void 0; const tslib_1 = require("tslib"); /** * FS-implementation aware functions. * @module */ const path_1 = tslib_1.__importDefault(require("path")); const util_1 = require("util"); function findPackage(cwd, fs) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const statAsync = (0, util_1.promisify)(fs.stat); let dir = cwd; while (true) { const parent = path_1.default.dirname(dir); try { const pkg = yield statAsync(path_1.default.join(dir, 'package.json')); if (pkg.isFile()) { return dir; } } catch (e) { // root directory if (dir === parent) { throw new Error(`package.json is not found`); } } dir = parent; } }); } exports.findPackage = findPackage; function readJSON(file, fs) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const readFileAsync = (0, util_1.promisify)(fs.readFile); const buf = yield readFileAsync(file); return JSON.parse(buf.toString('utf-8')); }); } exports.readJSON = readJSON; function writeJSON(file, data, fs) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const writeFileAsync = (0, util_1.promisify)(fs.writeFile); yield writeFileAsync(file, Buffer.from(JSON.stringify(data), 'utf-8')); }); } exports.writeJSON = writeJSON; function mkdirp(dir, fs) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const mkdirAsync = (0, util_1.promisify)(fs.mkdir); return yield mkdirAsync(dir, { recursive: true }); }); } exports.mkdirp = mkdirp; //# sourceMappingURL=fs.js.map