UNPKG

pertain

Version:

Automated pub/sub across project dependencies. Run code from any installed package based on declarative rules in package.json

41 lines 2.6 kB
import objectPath from 'object-path'; import { readFileSync } from 'fs'; import path from 'path'; /** * 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; lookup(dotPath, fallback) { return this.getJson().get(dotPath) || fallback; } get dependencies() { return this.lookup('dependencies', {}); } get devDependencies() { return this.lookup('devDependencies', {}); } get name() { return this.lookup('name'); } get peerDependencies() { return this.lookup('peerDependencies', {}); } modulePath; constructor(modulePath) { this.modulePath = modulePath; } getJson() { if (!this.json) { this.json = objectPath(JSON.parse(readFileSync(path.join(this.modulePath, 'package.json'), 'utf8'))); } return this.json; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFja2FnZUpzb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvUGFja2FnZUpzb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxVQUFVLE1BQU0sYUFBYSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDbEMsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBU3hCOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxDQUFDLE9BQU8sT0FBTyxXQUFXO0lBQzlCLElBQUksQ0FBdUM7SUFDcEMsTUFBTSxDQUFJLE9BQWUsRUFBRSxRQUFZO1FBQzVDLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxRQUFRLENBQUM7SUFDakQsQ0FBQztJQUNELElBQVcsWUFBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFDRCxJQUFXLGVBQWU7UUFDeEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFDRCxJQUFXLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUNELElBQVcsZ0JBQWdCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBQ08sVUFBVSxDQUFTO0lBQzNCLFlBQVksVUFBa0I7UUFDNUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDL0IsQ0FBQztJQUNPLE9BQU87UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNkLElBQUksQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUNwQixJQUFJLENBQUMsS0FBSyxDQUNSLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsY0FBYyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQ2pFLENBQ0YsQ0FBQztTQUNIO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7Q0FDRiJ9