UNPKG

pertain

Version:

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

45 lines 2.78 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const object_path_1 = __importDefault(require("object-path")); const fs_1 = require("fs"); const path_1 = __importDefault(require("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. */ class PackageJson { 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', {}); } constructor(modulePath) { this.modulePath = modulePath; } getJson() { if (!this.json) { this.json = (0, object_path_1.default)(JSON.parse((0, fs_1.readFileSync)(path_1.default.join(this.modulePath, 'package.json'), 'utf8'))); } return this.json; } } exports.default = PackageJson; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFja2FnZUpzb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvUGFja2FnZUpzb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw4REFBcUM7QUFDckMsMkJBQWtDO0FBQ2xDLGdEQUF3QjtBQVN4Qjs7Ozs7Ozs7R0FRRztBQUNILE1BQXFCLFdBQVc7SUFFdkIsTUFBTSxDQUFJLE9BQWUsRUFBRSxRQUFZO1FBQzVDLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxRQUFRLENBQUM7SUFDakQsQ0FBQztJQUNELElBQVcsWUFBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFDRCxJQUFXLGVBQWU7UUFDeEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFDRCxJQUFXLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUNELElBQVcsZ0JBQWdCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsWUFBWSxVQUFrQjtRQUM1QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDO0lBQ08sT0FBTztRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2QsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFBLHFCQUFVLEVBQ3BCLElBQUksQ0FBQyxLQUFLLENBQ1IsSUFBQSxpQkFBWSxFQUFDLGNBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxjQUFjLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FDakUsQ0FDRixDQUFDO1NBQ0g7UUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztDQUNGO0FBL0JELDhCQStCQyJ9