pertain
Version:
Automated pub/sub across project dependencies. Run code from any installed package based on declarative rules in package.json
29 lines (28 loc) • 940 B
TypeScript
import objectPath from 'object-path';
type PkgData = {
name: string;
dependencies: Record<string, string>;
devDependencies: Record<string, string>;
peerDependencies: Record<string, string>;
};
/**
* Lazy-loading proxy for package.json. A subset of properties are available,
* and a static method
* `PackageJson.lookup(package: PackageJson, dotPath: string)`
* exists for looking up other arbitrary properties.
*
* This speeds up dependency gathering; it won't be necessary to read all
* package files from disk.
*/
export default class PackageJson {
json: objectPath.ObjectPathBound<PkgData>;
lookup<T>(dotPath: string, fallback?: T): T;
get dependencies(): Record<string, string>;
get devDependencies(): Record<string, string>;
get name(): string;
get peerDependencies(): Record<string, string>;
private modulePath;
constructor(modulePath: string);
private getJson;
}
export {};