UNPKG

@neodx/vfs

Version:

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

43 lines (42 loc) 1.25 kB
import { addPackageJsonDependencies as e, removePackageJsonDependencies as n } from '@neodx/pkg-misc'; import { fromKeys as a, toArray as i, identity as t } from '@neodx/std'; import { P as r, match as s } from 'ts-pattern'; import { c as o } from '../_internal/create-vfs-plugin-CTZbwgZU.mjs'; import { createJsonFileApi as p } from './json.mjs'; function c() { return o('packageJson', e => ((e.packageJson = (n = 'package.json') => d(e, n)), e)); } function d(o, c) { let d = p(o, c), g = async e => (e && (await d.write(e)), !!e); return { ...d, addDependencies: async n => g( e( await d.read(), s(n) .with(m, e => ({ dependencies: a(i(e), () => '*') })) .with(r._, t) .exhaustive() ) ), removeDependencies: async e => g( n( await d.read(), s(e) .with(m, e => a(f, () => i(e))) .with(r._, t) .exhaustive() ) ) }; } let m = r.string.or(r.array(r.string)), f = ['dependencies', 'devDependencies', 'peerDependencies', 'optionalDependencies']; export { d as createVfsPackageJsonFileApi, c as packageJson }; //# sourceMappingURL=package-json.mjs.map