UNPKG

@bitloops/bl-transpiler

Version:
38 lines 2.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TargetGenerator = void 0; const getTargetFileDestination_js_1 = require("./typescript-nest/helpers/getTargetFileDestination.js"); const supportedLanguages_js_1 = require("./supportedLanguages.js"); const index_js_1 = require("./typescript-nest/ast/index.js"); const targetCoreCreator_js_1 = require("./targetCoreCreator.js"); const targetSetupCreator_js_1 = require("./targetSetupCreator.js"); 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 index_js_1.IntermediateModelToASTTargetTransformer(); const transformedIntermediateAST = modelToTargetASTTransformer.transform(params); const bitloopsTargetGenerator = targetCoreCreator_js_1.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 = targetSetupCreator_js_1.TargetSetupGeneratorCreator.create(options.targetLanguage); return setupTargetGenerator.generateSetupFiles(params, options); } getTargetFileDestination(boundedContext, moduleName, classType, className, targetLanguage = supportedLanguages_js_1.SupportedLanguages.TypeScript) { return (0, getTargetFileDestination_js_1.getTargetFileDestination)(boundedContext, moduleName, classType, className, targetLanguage); } } exports.TargetGenerator = TargetGenerator; //# sourceMappingURL=index.js.map