@goldstack/utils-typescript-references
Version:
Utility for keeping TypeScript references in sync in a Yarn monorepo
75 lines • 2.64 kB
JavaScript
;
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 yargs_1 = __importDefault(require("yargs"));
const updatePackageProjectReferences_1 = require("./updatePackageProjectReferences");
const updateRootProjectReferences_1 = require("./updateRootProjectReferences");
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