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
JavaScript
;
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