aws-cdk
Version:
CDK Toolkit, the command line tool for CDK apps
39 lines • 5.1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.loadTreeFromDir = exports.loadTree = exports.some = void 0;
const path = require("path");
const fs = require("fs-extra");
const logging_1 = require("./logging");
/**
* Whether the provided predicate is true for at least one element in the construct (sub-)tree.
*/
function some(node, predicate) {
return node != null && (predicate(node) || findInChildren());
function findInChildren() {
return Object.values(node.children ?? {}).some(child => some(child, predicate));
}
}
exports.some = some;
function loadTree(assembly) {
try {
const outdir = assembly.directory;
const fileName = assembly.tree()?.file;
return fileName ? fs.readJSONSync(path.join(outdir, fileName)).tree : {};
}
catch (e) {
(0, logging_1.trace)(`Failed to get tree.json file: ${e}. Proceeding with empty tree.`);
return {};
}
}
exports.loadTree = loadTree;
function loadTreeFromDir(outdir) {
try {
return fs.readJSONSync(path.join(outdir, 'tree.json')).tree;
}
catch (e) {
(0, logging_1.trace)(`Failed to get tree.json file: ${e}. Proceeding with empty tree.`);
return {};
}
}
exports.loadTreeFromDir = loadTreeFromDir;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRyZWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTZCO0FBRTdCLCtCQUErQjtBQUMvQix1Q0FBa0M7QUF5QmxDOztHQUVHO0FBQ0gsU0FBZ0IsSUFBSSxDQUFDLElBQXVCLEVBQUUsU0FBNEM7SUFDeEYsT0FBTyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFFN0QsU0FBUyxjQUFjO1FBQ3JCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNsRixDQUFDO0FBQ0gsQ0FBQztBQU5ELG9CQU1DO0FBRUQsU0FBZ0IsUUFBUSxDQUFDLFFBQXVCO0lBQzlDLElBQUk7UUFDRixNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDO1FBQ2xDLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLENBQUM7UUFDdkMsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztLQUMxRTtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsSUFBQSxlQUFLLEVBQUMsaUNBQWlDLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUN6RSxPQUFPLEVBQUUsQ0FBQztLQUNYO0FBQ0gsQ0FBQztBQVRELDRCQVNDO0FBRUQsU0FBZ0IsZUFBZSxDQUFDLE1BQWM7SUFDNUMsSUFBSTtRQUNGLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztLQUM3RDtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsSUFBQSxlQUFLLEVBQUMsaUNBQWlDLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUN6RSxPQUFPLEVBQUUsQ0FBQztLQUNYO0FBQ0gsQ0FBQztBQVBELDBDQU9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IENsb3VkQXNzZW1ibHkgfSBmcm9tICdAYXdzLWNkay9jeC1hcGknO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IHsgdHJhY2UgfSBmcm9tICcuL2xvZ2dpbmcnO1xuXG4vKipcbiAqIFNvdXJjZSBpbmZvcm1hdGlvbiBvbiBhIGNvbnN0cnVjdCAoY2xhc3MgZnFuIGFuZCB2ZXJzaW9uKVxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbnN0cnVjdEluZm8ge1xuICByZWFkb25seSBmcW46IHN0cmluZztcbiAgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgbm9kZSBpbiB0aGUgY29uc3RydWN0IHRyZWUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29uc3RydWN0VHJlZU5vZGUge1xuICByZWFkb25seSBpZDogc3RyaW5nO1xuICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNoaWxkcmVuPzogeyBba2V5OiBzdHJpbmddOiBDb25zdHJ1Y3RUcmVlTm9kZSB9O1xuICByZWFkb25seSBhdHRyaWJ1dGVzPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcblxuICAvKipcbiAgICogSW5mb3JtYXRpb24gb24gdGhlIGNvbnN0cnVjdCBjbGFzcyB0aGF0IGxlZCB0byB0aGlzIG5vZGUsIGlmIGF2YWlsYWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgY29uc3RydWN0SW5mbz86IENvbnN0cnVjdEluZm87XG59XG5cbi8qKlxuICogV2hldGhlciB0aGUgcHJvdmlkZWQgcHJlZGljYXRlIGlzIHRydWUgZm9yIGF0IGxlYXN0IG9uZSBlbGVtZW50IGluIHRoZSBjb25zdHJ1Y3QgKHN1Yi0pdHJlZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNvbWUobm9kZTogQ29uc3RydWN0VHJlZU5vZGUsIHByZWRpY2F0ZTogKG46IENvbnN0cnVjdFRyZWVOb2RlKSA9PiBib29sZWFuKTogYm9vbGVhbiB7XG4gIHJldHVybiBub2RlICE9IG51bGwgJiYgKHByZWRpY2F0ZShub2RlKSB8fCBmaW5kSW5DaGlsZHJlbigpKTtcblxuICBmdW5jdGlvbiBmaW5kSW5DaGlsZHJlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhub2RlLmNoaWxkcmVuID8/IHt9KS5zb21lKGNoaWxkID0+IHNvbWUoY2hpbGQsIHByZWRpY2F0ZSkpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkVHJlZShhc3NlbWJseTogQ2xvdWRBc3NlbWJseSkge1xuICB0cnkge1xuICAgIGNvbnN0IG91dGRpciA9IGFzc2VtYmx5LmRpcmVjdG9yeTtcbiAgICBjb25zdCBmaWxlTmFtZSA9IGFzc2VtYmx5LnRyZWUoKT8uZmlsZTtcbiAgICByZXR1cm4gZmlsZU5hbWUgPyBmcy5yZWFkSlNPTlN5bmMocGF0aC5qb2luKG91dGRpciwgZmlsZU5hbWUpKS50cmVlIDoge307XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB0cmFjZShgRmFpbGVkIHRvIGdldCB0cmVlLmpzb24gZmlsZTogJHtlfS4gUHJvY2VlZGluZyB3aXRoIGVtcHR5IHRyZWUuYCk7XG4gICAgcmV0dXJuIHt9O1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkVHJlZUZyb21EaXIob3V0ZGlyOiBzdHJpbmcpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gZnMucmVhZEpTT05TeW5jKHBhdGguam9pbihvdXRkaXIsICd0cmVlLmpzb24nKSkudHJlZTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHRyYWNlKGBGYWlsZWQgdG8gZ2V0IHRyZWUuanNvbiBmaWxlOiAke2V9LiBQcm9jZWVkaW5nIHdpdGggZW1wdHkgdHJlZS5gKTtcbiAgICByZXR1cm4ge307XG4gIH1cbn1cbiJdfQ==