23 lines
1.2 KiB
TypeScript
23 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
|
||
|
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 = tsPublishInstance.getModuleSubDirs(paths.cwd);
|
||
|
for (const publishModule of Object.keys(publishModules)) {
|
||
|
const publishConfig = publishModules[publishModule];
|
||
|
tsconfigObject.compilerOptions.paths[`${publishConfig.moduleName}`] = [`./${publishModule}/index.ts`];
|
||
|
}
|
||
|
tsconfigSmartfile.setContentsFromString(JSON.stringify(tsconfigObject, null, 2));
|
||
|
await tsconfigSmartfile.write();
|
||
|
};
|