31 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			31 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.js`,
 | 
						|
    ];
 | 
						|
  }
 | 
						|
  tsconfigSmartfile.setContentsFromString(
 | 
						|
    JSON.stringify(tsconfigObject, null, 2),
 | 
						|
  );
 | 
						|
  await tsconfigSmartfile.write();
 | 
						|
};
 |