@ts-dev-tools/core
Version:
TS dev tools Core
64 lines (63 loc) • 2.19 kB
TypeScript
export type JsonArray = boolean[] | number[] | string[] | JsonFileData[] | Date[];
export type AnyJson = boolean | number | string | JsonFileData | Date | JsonArray | JsonArray[];
export type JsonFileData = {
[key: string]: AnyJson | undefined;
};
type PackageNameVersionMap = Record<string, string>;
type PackageJsonKnownFields = {
author?: JsonFileData | string;
bin?: PackageNameVersionMap | string;
bugs?: JsonFileData | string;
commitlint?: JsonFileData;
dependencies?: PackageNameVersionMap;
description?: string;
devDependencies?: PackageNameVersionMap;
directories?: PackageNameVersionMap;
engines?: PackageNameVersionMap;
eslintConfig?: JsonFileData;
files?: string[];
homepage?: string;
importSort?: JsonFileData;
keywords?: string[];
license?: string;
lintStaged?: JsonFileData;
main?: string;
name?: string;
peerDependencies?: PackageNameVersionMap;
peerDependenciesMeta?: Record<string, {
optional?: boolean;
}>;
prettier?: JsonFileData;
private?: boolean;
publishConfig?: JsonFileData;
repository?: JsonFileData | string;
scripts?: PackageNameVersionMap;
tsDevTools?: JsonFileData;
types?: string;
version?: string;
workspaces?: JsonArray | JsonFileData;
};
export type PackageJsonContent = JsonFileData & PackageJsonKnownFields;
export declare class PackageJson {
private path;
private static readonly PACKAGE_JSON_FILE_NAME;
private content?;
constructor(path: string);
getPath(): string;
getContent(): PackageJsonContent;
setContent(content: PackageJsonContent): void;
getPackageName(): string | undefined;
getPackageVersion(): string | undefined;
isPrivate(): boolean;
getTsDevToolsVersion(): string | undefined;
getDependenciesPackageNames(): string[];
getDevDependenciesPackageNames(): string[];
getAllDependenciesPackageNames(): string[];
hasDependency(packageName: string): boolean;
merge(update: PackageJsonContent): void;
backup(): string;
restore(backupPath: string): void;
private write;
static fromDirPath(dirPath: string): PackageJson;
}
export {};