@neodx/vfs
Version:
Simple virtual file system - working dir context, lazy changes, different modes, integrations and moreover
45 lines (44 loc) • 1.3 kB
JavaScript
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