UNPKG

@nestjs-mod/common

Version:

A collection of utilities for unifying NestJS applications and modules

79 lines 6.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ProjectUtils = void 0; const types_1 = require("../../../nest-module/types"); const utils_1 = require("../../../nest-module/utils"); const project_utils_configuration_1 = require("./project-utils.configuration"); const project_utils_constants_1 = require("./project-utils.constants"); const application_package_json_service_1 = require("./services/application-package-json.service"); const dot_env_service_1 = require("./services/dot-env.service"); const gitignore_file_1 = require("./services/gitignore-file"); const nx_project_json_service_1 = require("./services/nx-project-json.service"); const package_json_service_1 = require("./services/package-json.service"); const project_utils_patcher_service_1 = require("./services/project-utils-patcher.service"); const wrap_application_options_service_1 = require("./services/wrap-application-options.service"); const wrapApplicationOptionsService = new wrap_application_options_service_1.WrapApplicationOptionsService(); const packageJsonService = new package_json_service_1.PackageJsonService({}); const gitignoreService = new gitignore_file_1.GitignoreService(packageJsonService); const dotEnvService = new dot_env_service_1.DotEnvService(wrapApplicationOptionsService, {}, gitignoreService); const applicationPackageJsonService = new application_package_json_service_1.ApplicationPackageJsonService({}); const nxProjectJsonService = new nx_project_json_service_1.NxProjectJsonService({}, applicationPackageJsonService, packageJsonService, dotEnvService); let projectUtilsPatcherService = undefined; exports.ProjectUtils = (0, utils_1.createNestModule)({ moduleName: project_utils_constants_1.PROJECT_UTILS_MODULE_NAME, moduleDescription: 'Utilities for setting global application parameters, such as project name, description, and settings validation parameters.', moduleCategory: types_1.NestModuleCategory.system, staticConfigurationModel: project_utils_configuration_1.ProjectUtilsConfiguration, sharedProviders: [ { provide: wrap_application_options_service_1.WrapApplicationOptionsService, useValue: wrapApplicationOptionsService }, { provide: dot_env_service_1.DotEnvService, useValue: dotEnvService }, { provide: package_json_service_1.PackageJsonService, useValue: packageJsonService }, { provide: application_package_json_service_1.ApplicationPackageJsonService, useValue: applicationPackageJsonService }, { provide: gitignore_file_1.GitignoreService, useValue: gitignoreService }, { provide: nx_project_json_service_1.NxProjectJsonService, useValue: nxProjectJsonService }, project_utils_patcher_service_1.ProjectUtilsPatcherService, ], // we use wrapApplication to modify some of the files after connecting all modules, since modules can add additional data that will be used when modifying files wrapApplication: async () => { if (projectUtilsPatcherService) { projectUtilsPatcherService.patchModules(); } }, // we use postWrapApplication to modify some of the files after connecting all modules, since modules can add additional data that will be used when modifying files postWrapApplication: async () => { if (projectUtilsPatcherService) { projectUtilsPatcherService.patchModules(); } }, // we use preWrapApplication because we need to get project data and install it globally - before running the application on NestJS preWrapApplication: async (options) => { Object.assign(wrapApplicationOptionsService, options); if (options.current.staticConfiguration) { // PackageJsonService const tempPackageJsonService = new package_json_service_1.PackageJsonService(wrapApplicationOptionsService.current.staticConfiguration); Object.setPrototypeOf(packageJsonService, tempPackageJsonService); Object.assign(packageJsonService, tempPackageJsonService); // ApplicationPackageJsonService const tempApplicationPackageJsonService = new application_package_json_service_1.ApplicationPackageJsonService(wrapApplicationOptionsService.current.staticConfiguration); Object.setPrototypeOf(applicationPackageJsonService, tempApplicationPackageJsonService); Object.assign(applicationPackageJsonService, tempApplicationPackageJsonService); // GitignoreService const tempGitignoreService = new gitignore_file_1.GitignoreService(packageJsonService); Object.setPrototypeOf(gitignoreService, tempGitignoreService); Object.assign(gitignoreService, tempGitignoreService); // DotEnvService const tempDotEnvService = new dot_env_service_1.DotEnvService(wrapApplicationOptionsService, wrapApplicationOptionsService.current.staticConfiguration, tempGitignoreService); tempDotEnvService.read(); Object.setPrototypeOf(dotEnvService, tempDotEnvService); Object.assign(dotEnvService, tempDotEnvService); // NxProjectJsonService const tempNxProjectJsonService = new nx_project_json_service_1.NxProjectJsonService(wrapApplicationOptionsService.current.staticConfiguration, applicationPackageJsonService, packageJsonService, dotEnvService); Object.setPrototypeOf(nxProjectJsonService, tempNxProjectJsonService); Object.assign(nxProjectJsonService, tempNxProjectJsonService); // ProjectUtilsPatcherService projectUtilsPatcherService = new project_utils_patcher_service_1.ProjectUtilsPatcherService(wrapApplicationOptionsService.current.staticConfiguration, new application_package_json_service_1.ApplicationPackageJsonService(wrapApplicationOptionsService.current.staticConfiguration), wrapApplicationOptionsService, dotEnvService, packageJsonService); projectUtilsPatcherService.patchModules(); } }, }).ProjectUtils; //# sourceMappingURL=project-utils.module.js.map