24 lines
1.2 KiB
TypeScript
24 lines
1.2 KiB
TypeScript
import * as plugins from './mod.plugins.js';
|
|
import * as paths from '../paths.js';
|
|
|
|
import { logger } from '../gitzone.logging.js';
|
|
import { Project } from '../classes.project.js';
|
|
|
|
export const run = async (projectArg: Project) => {
|
|
// lets care about tsconfig.json
|
|
logger.log('info', 'Formatting tsconfig.json...');
|
|
const tsconfigSmartfile = await plugins.smartfile.SmartFile.fromFilePath(plugins.path.join(paths.cwd, 'tsconfig.json'));
|
|
const tsconfigObject = JSON.parse(tsconfigSmartfile.contentBuffer.toString());
|
|
tsconfigObject.compilerOptions = tsconfigObject.compilerOptions || {};
|
|
tsconfigObject.compilerOptions.baseUrl = '.';
|
|
tsconfigObject.compilerOptions.paths = {};
|
|
const tsPublishMod = await import('@git.zone/tspublish');
|
|
const tsPublishInstance = new tsPublishMod.TsPublish();
|
|
const publishModules = await tsPublishInstance.getModuleSubDirs(paths.cwd);
|
|
for (const publishModule of Object.keys(publishModules)) {
|
|
const publishConfig = publishModules[publishModule];
|
|
tsconfigObject.compilerOptions.paths[`${publishConfig.name}`] = [`./${publishModule}/index.ts`];
|
|
}
|
|
tsconfigSmartfile.setContentsFromString(JSON.stringify(tsconfigObject, null, 2));
|
|
await tsconfigSmartfile.write();
|
|
}; |