@nestjs-mod/flyway
Version:
Flyway - utility for working with database migrations (official site: https://flywaydb.org, preview version only for Postgres)
66 lines • 3.69 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Flyway = void 0;
const common_1 = require("@nestjs-mod/common");
const flyway_configuration_1 = require("./flyway.configuration");
const flyway_constants_1 = require("./flyway.constants");
const flyway_environments_1 = require("./flyway.environments");
const flyway_config_file_service_1 = require("./infrastructure/flyway-config-file.service");
const flyway_infrastructure_updater_service_1 = require("./infrastructure/flyway-infrastructure-updater.service");
exports.Flyway = (0, common_1.createNestModule)({
moduleName: flyway_constants_1.FLYWAY_MODULE_NAME,
moduleCategory: common_1.NestModuleCategory.infrastructure,
moduleDescription: 'Flyway - utility for working with database migrations (official site: https://flywaydb.org, preview version only for Postgres)',
staticConfigurationModel: flyway_configuration_1.FlywayConfiguration,
environmentsModel: flyway_environments_1.FlywayEnvironments,
wrapForRootAsync: (asyncModuleOptions) => {
if (!asyncModuleOptions) {
asyncModuleOptions = {};
}
if (asyncModuleOptions.staticConfiguration?.featureName) {
const FomatterClass = (0, common_1.getFeatureDotEnvPropertyNameFormatter)(asyncModuleOptions.staticConfiguration.featureName);
Object.assign(asyncModuleOptions, {
environmentsOptions: {
propertyNameFormatters: [new FomatterClass()],
name: asyncModuleOptions.staticConfiguration?.featureName,
},
});
}
return { asyncModuleOptions };
},
preWrapApplication: async ({ project, modules, current }) => {
if (!modules[common_1.NestModuleCategory.infrastructure]) {
modules[common_1.NestModuleCategory.infrastructure] = [];
}
modules[common_1.NestModuleCategory.infrastructure].push((0, common_1.createNestModule)({
project,
moduleName: flyway_constants_1.FLYWAY_MODULE_NAME,
moduleDescription: 'Flyway - utility for working with database migrations (official site: https://flywaydb.org, preview version only for Postgres)',
staticConfigurationModel: flyway_configuration_1.FlywayConfiguration,
environmentsModel: flyway_environments_1.FlywayEnvironments,
wrapForRootAsync: (asyncModuleOptions) => {
if (!asyncModuleOptions) {
asyncModuleOptions = {};
}
if (asyncModuleOptions.staticConfiguration?.featureName) {
const FomatterClass = (0, common_1.getFeatureDotEnvPropertyNameFormatter)(asyncModuleOptions.staticConfiguration.featureName);
Object.assign(asyncModuleOptions, {
environmentsOptions: {
propertyNameFormatters: [new FomatterClass()],
name: asyncModuleOptions.staticConfiguration?.featureName,
},
});
}
return { asyncModuleOptions };
},
imports: [
common_1.ProjectUtils.forFeature({
featureModuleName: flyway_constants_1.FLYWAY_MODULE_NAME,
contextName: current.asyncModuleOptions.contextName,
}),
],
providers: [flyway_config_file_service_1.FlywayConfigFileService, flyway_infrastructure_updater_service_1.FlywayInfrastructureUpdaterService],
}).Flyway.forRootAsync(current.asyncModuleOptions));
},
}).Flyway;
//# sourceMappingURL=flyway.module.js.map