UNPKG

@aws-cdk-testing/cli-integ

Version:

Integration tests for the AWS CDK CLI

31 lines 3.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.findYarnPackages = findYarnPackages; const path = require("path"); const shell_1 = require("./shell"); /** * Cache monorepo discovery results, we only want to do this once per run */ const YARN_MONOREPO_CACHE = {}; /** * Return a { name -> directory } packages found in a Yarn monorepo * * Cached in YARN_MONOREPO_CACHE. */ async function findYarnPackages(root) { if (!(root in YARN_MONOREPO_CACHE)) { const outputDataString = JSON.parse(await (0, shell_1.shell)(['yarn', 'workspaces', '--json', 'info'], { captureStderr: false, cwd: root, show: 'error', })).data; const output = JSON.parse(outputDataString); const ret = {}; for (const [k, v] of Object.entries(output)) { ret[k] = path.join(root, v.location); } YARN_MONOREPO_CACHE[root] = ret; } return YARN_MONOREPO_CACHE[root]; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWFybi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInlhcm4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFhQSw0Q0FnQkM7QUE3QkQsNkJBQTZCO0FBQzdCLG1DQUFnQztBQUVoQzs7R0FFRztBQUNILE1BQU0sbUJBQW1CLEdBQXdCLEVBQUUsQ0FBQztBQUVwRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLGdCQUFnQixDQUFDLElBQVk7SUFDakQsSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLG1CQUFtQixDQUFDLEVBQUUsQ0FBQztRQUNuQyxNQUFNLGdCQUFnQixHQUFXLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFBLGFBQUssRUFBQyxDQUFDLE1BQU0sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxFQUFFO1lBQ2hHLGFBQWEsRUFBRSxLQUFLO1lBQ3BCLEdBQUcsRUFBRSxJQUFJO1lBQ1QsSUFBSSxFQUFFLE9BQU87U0FDZCxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDVCxNQUFNLE1BQU0sR0FBeUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRWxFLE1BQU0sR0FBRyxHQUEyQixFQUFFLENBQUM7UUFDdkMsS0FBSyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUM1QyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7UUFDRCxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDbEMsQ0FBQztJQUNELE9BQU8sbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDbkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBzaGVsbCB9IGZyb20gJy4vc2hlbGwnO1xuXG4vKipcbiAqIENhY2hlIG1vbm9yZXBvIGRpc2NvdmVyeSByZXN1bHRzLCB3ZSBvbmx5IHdhbnQgdG8gZG8gdGhpcyBvbmNlIHBlciBydW5cbiAqL1xuY29uc3QgWUFSTl9NT05PUkVQT19DQUNIRTogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuXG4vKipcbiAqIFJldHVybiBhIHsgbmFtZSAtPiBkaXJlY3RvcnkgfSBwYWNrYWdlcyBmb3VuZCBpbiBhIFlhcm4gbW9ub3JlcG9cbiAqXG4gKiBDYWNoZWQgaW4gWUFSTl9NT05PUkVQT19DQUNIRS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZpbmRZYXJuUGFja2FnZXMocm9vdDogc3RyaW5nKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG4gIGlmICghKHJvb3QgaW4gWUFSTl9NT05PUkVQT19DQUNIRSkpIHtcbiAgICBjb25zdCBvdXRwdXREYXRhU3RyaW5nOiBzdHJpbmcgPSBKU09OLnBhcnNlKGF3YWl0IHNoZWxsKFsneWFybicsICd3b3Jrc3BhY2VzJywgJy0tanNvbicsICdpbmZvJ10sIHtcbiAgICAgIGNhcHR1cmVTdGRlcnI6IGZhbHNlLFxuICAgICAgY3dkOiByb290LFxuICAgICAgc2hvdzogJ2Vycm9yJyxcbiAgICB9KSkuZGF0YTtcbiAgICBjb25zdCBvdXRwdXQ6IFlhcm5Xb3Jrc3BhY2VzT3V0cHV0ID0gSlNPTi5wYXJzZShvdXRwdXREYXRhU3RyaW5nKTtcblxuICAgIGNvbnN0IHJldDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKG91dHB1dCkpIHtcbiAgICAgIHJldFtrXSA9IHBhdGguam9pbihyb290LCB2LmxvY2F0aW9uKTtcbiAgICB9XG4gICAgWUFSTl9NT05PUkVQT19DQUNIRVtyb290XSA9IHJldDtcbiAgfVxuICByZXR1cm4gWUFSTl9NT05PUkVQT19DQUNIRVtyb290XTtcbn1cblxudHlwZSBZYXJuV29ya3NwYWNlc091dHB1dCA9IFJlY29yZDxzdHJpbmcsIHsgbG9jYXRpb246IHN0cmluZyB9PjtcbiJdfQ==