workspace-tools
Version:
A collection of utilities that are useful in a git-controlled monorepo managed by one of these tools:
62 lines (61 loc) • 1.36 kB
TypeScript
export type Dependencies = {
[key in string]: string;
};
export type LockDependency = {
version: string;
dependencies?: Dependencies;
};
export type ParsedLock = {
type: "success" | "merge" | "conflict";
object: {
[key in string]: LockDependency;
};
};
/** pnpm `pnpm-lock.yaml` format */
export interface PnpmLockFile {
packages: {
[name: string]: any;
};
}
export interface NpmWorkspacesInfo {
version: string;
workspaces: {
packages: string[];
};
}
export interface NpmSymlinkInfo {
resolved: string;
link: boolean;
integrity?: "sha512" | "sha1";
dev?: boolean;
optional?: boolean;
devOptional?: boolean;
dependencies?: {
[key: string]: LockDependency;
};
}
/** npm `package-lock.json` format */
export interface NpmLockFile {
name: string;
version: string;
lockfileVersion?: 1 | 2 | 3;
requires?: boolean;
packages?: {
""?: NpmWorkspacesInfo;
} & {
[key: string]: NpmSymlinkInfo | LockDependency;
};
dependencies?: {
[key: string]: LockDependency;
};
}
/** Yarn Berry (v2+) `yarn.lock` YAML format */
export interface BerryLockFile {
__metadata: any;
[key: string]: {
version: string;
dependencies: {
[dependency: string]: string;
};
};
}