UNPKG

@goldstack/utils-typescript-references

Version:

Utility for keeping TypeScript references in sync in a Yarn monorepo

75 lines 2.64 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.run = void 0; const updatePackageProjectReferences_1 = require("./updatePackageProjectReferences"); const updateRootProjectReferences_1 = require("./updateRootProjectReferences"); const yargs_1 = __importDefault(require("yargs")); const run = async (args) => { var _a; const argv = await yargs_1.default .scriptName('utils-typescript-references') .version('0.2.0') .option('skipPackages', { description: 'Only update project references in the root tsConfig', type: 'boolean', }) .option('skipRoot', { description: 'Skip updating project references in project root tsConfig', type: 'boolean', }) .option('excludeInReferences', { type: 'array', description: 'Exclude specific packages from being referenced by other packages', }) .option('excludeInRoot', { type: 'array', description: 'Exclude specific packages from being referenced in the root tsConfig', }) .option('tsConfigName', { type: 'array', description: 'Names of tsConfig files to be updated', }) .parse(); const options = { tsConfigNames: [], excludeInReferences: [], excludeInRoot: [], skipPackages: false, skipRoot: false, }; if (argv.skipPackages) { options.skipPackages = true; } if (argv.skipRoot) { options.skipRoot = true; } if (argv.tsConfigName && ((_a = argv.tsConfigName) === null || _a === void 0 ? void 0 : _a.length) > 0) { options.tsConfigNames = argv.tsConfigName; } else { options.tsConfigNames.push('tsconfig.json'); } if (argv.excludeInReferences) { options.excludeInReferences = argv.excludeInReferences; } if (argv.excludeInRoot) { options.excludeInRoot = argv.excludeInRoot; } if (!options.skipPackages) { (0, updatePackageProjectReferences_1.updatePackageProjectReferences)({ tsConfigNames: options.tsConfigNames, excludeInReferences: options.excludeInReferences, }); } if (!options.skipRoot) { (0, updateRootProjectReferences_1.updateRootProjectReferences)({ tsConfigNames: options.tsConfigNames, excludeProjects: options.excludeInRoot, }); } }; exports.run = run; //# sourceMappingURL=utilsTypeScriptReferences.js.map