UNPKG

@neodx/vfs

Version:

Simple virtual file system - working dir context, lazy changes, different modes, integrations and moreover

45 lines (44 loc) 1.3 kB
var e = require('@neodx/pkg-misc'), n = require('@neodx/std'), a = require('ts-pattern'), i = require('../_internal/create-vfs-plugin-Bg0LL_-h.cjs'), r = require('./json.cjs'); function s(i, s) { let o = r.createJsonFileApi(i, s), d = async e => (e && (await o.write(e)), !!e); return { ...o, addDependencies: async i => d( e.addPackageJsonDependencies( await o.read(), a .match(i) .with(t, e => ({ dependencies: n.fromKeys(n.toArray(e), () => '*') })) .with(a.P._, n.identity) .exhaustive() ) ), removeDependencies: async i => d( e.removePackageJsonDependencies( await o.read(), a .match(i) .with(t, e => n.fromKeys(c, () => n.toArray(e))) .with(a.P._, n.identity) .exhaustive() ) ) }; } const t = a.P.string.or(a.P.array(a.P.string)), c = ['dependencies', 'devDependencies', 'peerDependencies', 'optionalDependencies']; (exports.createVfsPackageJsonFileApi = s), (exports.packageJson = function () { return i.createVfsPlugin( 'packageJson', e => ((e.packageJson = (n = 'package.json') => s(e, n)), e) ); }); //# sourceMappingURL=package-json.cjs.map