UNPKG

@bitloops/bl-transpiler

Version:
34 lines 2.01 kB
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