@neodx/vfs
Version:
Simple virtual file system - working dir context, lazy changes, different modes, integrations and moreover
49 lines (46 loc) • 1.85 kB
TypeScript
import { JsonUpdate } from './json.js';
import * as _neodx_fs from '@neodx/fs';
import * as jsonc_parser from 'jsonc-parser';
import { m as VfsPlugin, B as BaseVfs } from '../_internal/types-Bu8eLcj4.js';
import { PackageJsonDependencies } from '@neodx/pkg-misc';
import { PackageJson } from 'pkg-types';
interface PackageJsonPluginApi {
packageJson(path?: string): PackageJsonApi;
}
type PackageJsonApi = ReturnType<typeof createVfsPackageJsonFileApi>;
declare function packageJson(): VfsPlugin<PackageJsonPluginApi>;
declare function createVfsPackageJsonFileApi(
vfs: BaseVfs,
path: string
): {
hasDependency(name: string): Promise<boolean>;
addDependencies(deps: string | string[] | PackageJsonDependencies): Promise<boolean>;
removeDependencies(deps: string | string[] | Record<string, string>): Promise<boolean>;
tryRead<T extends PackageJson = PackageJson>(
options?: jsonc_parser.ParseOptions | undefined
): Promise<T | null>;
read<T_1 extends PackageJson = PackageJson>(
options?: jsonc_parser.ParseOptions | undefined
): Promise<T_1>;
write<T_2 extends PackageJson = PackageJson>(
json: T_2,
options?: _neodx_fs.SerializeJsonParams | undefined
): Promise<void>;
update<T_3 extends PackageJson = PackageJson>(
updater: JsonUpdate<T_3>,
options?: (jsonc_parser.ParseOptions & _neodx_fs.SerializeJsonParams) | undefined
): Promise<void>;
experimental_toResource(
defaultValue: PackageJson,
options?: (jsonc_parser.ParseOptions & _neodx_fs.SerializeJsonParams) | undefined
): Promise<
{
data: PackageJson;
} & AsyncDisposable
>;
path: string;
rename: (...args: string[]) => Promise<void>;
exists: () => Promise<boolean>;
delete: () => Promise<void>;
};
export { type PackageJsonApi, type PackageJsonPluginApi, createVfsPackageJsonFileApi, packageJson };