@globexit/websoft-types
Version:
<h1 align="center">Websoft Types</h1> <div align="center"> Typescript типы и трансформеры для WebSoft HCM.
39 lines (38 loc) • 1.9 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SsjsProjectBuilder = void 0;
const transformer_configurator_1 = require("../transformers/transformer-configurator");
const import_manager_1 = require("../core/utils/import-manager");
const project_config_1 = require("../core/config/project-config");
const ts_morph_1 = require("ts-morph");
const type_script_program_helper_1 = require("../core/utils/type-script-program-helper");
class SsjsProjectBuilder {
constructor() {
this._transformerConfigurator = new transformer_configurator_1.TransformerConfigurator();
this._importManager = new import_manager_1.ImportManager();
this._morphProject = new ts_morph_1.Project();
}
setProjectLocationRelativeServerFolder(path) {
project_config_1.projectConfig.projectLocationRelativeServerFolder = path;
return this;
}
setTsConfigPath(path) {
project_config_1.projectConfig.tsConfigPath = path;
return this;
}
build() {
this._transformerConfigurator.configure({
projectLocationRelativeServerFolder: project_config_1.projectConfig.projectLocationRelativeServerFolder,
tsConfigPath: project_config_1.projectConfig.tsConfigPath
});
const program = type_script_program_helper_1.TypeScriptProgramHelper.createProgramFromConfig(project_config_1.projectConfig.tsConfigPath);
const tsConfig = type_script_program_helper_1.TypeScriptProgramHelper.createTsConfig(project_config_1.projectConfig.tsConfigPath);
this._transformerConfigurator.initialize(program, this._morphProject);
(0, project_config_1.setTsProjectConfig)(tsConfig);
return {
transformerConfigurator: this._transformerConfigurator,
importManager: this._importManager
};
}
}
exports.SsjsProjectBuilder = SsjsProjectBuilder;