@bitloops/bl-transpiler
Version:
The one and only Bitloops Language transpiler
34 lines • 2.01 kB
JavaScript
import { getTargetFileDestination } from './typescript-nest/helpers/getTargetFileDestination.js';
import { SupportedLanguages } from './supportedLanguages.js';
import { IntermediateModelToASTTargetTransformer } from './typescript-nest/ast/index.js';
import { TargetCoreGeneratorCreator } from './targetCoreCreator.js';
import { TargetSetupGeneratorCreator } from './targetSetupCreator.js';
export class TargetGenerator {
generate(intermediateAST, options) {
const generateResult = {};
const coreTargetOutput = this.generateCore(intermediateAST, options);
generateResult.core = coreTargetOutput;
if (intermediateAST.setup) {
const setupTargetOutput = this.generateSetup(intermediateAST, options);
generateResult.setup = setupTargetOutput;
}
return generateResult;
}
generateCore(params, options) {
const modelToTargetASTTransformer = new IntermediateModelToASTTargetTransformer();
const transformedIntermediateAST = modelToTargetASTTransformer.transform(params);
const bitloopsTargetGenerator = TargetCoreGeneratorCreator.create(options.targetLanguage);
const targetContent = bitloopsTargetGenerator.ASTToTarget(transformedIntermediateAST);
const targetContentWithImports = bitloopsTargetGenerator.generateImports(targetContent);
const formattedTargetContent = bitloopsTargetGenerator.formatCode(targetContentWithImports, options.formatterConfig);
return formattedTargetContent;
}
generateSetup(params, options) {
const setupTargetGenerator = TargetSetupGeneratorCreator.create(options.targetLanguage);
return setupTargetGenerator.generateSetupFiles(params, options);
}
getTargetFileDestination(boundedContext, moduleName, classType, className, targetLanguage = SupportedLanguages.TypeScript) {
return getTargetFileDestination(boundedContext, moduleName, classType, className, targetLanguage);
}
}
//# sourceMappingURL=index.js.map