src/platform/config-import/config-import-mode.service.ts

Relationships

Depends on

No results matching.

Index

Properties
Methods

Constructor

constructor(configService: ConfigService)
Parameters :
Name Type Optional
configService ConfigService No

Methods

resolve
resolve()

Properties

Private legacyWarningLogged
Type : unknown
Default value : false
Private Readonly logger
Type : unknown
Default value : new Logger(ConfigImportModeService.name)
import { Injectable, Logger } from "@nestjs/common";
import { ConfigService } from "@nestjs/config";
import type { ConfigImportMode } from "../config-portability/config-resource.types";

export type StartupConfigImportMode = "disabled" | ConfigImportMode;

@Injectable()
export class ConfigImportModeService {
    private readonly logger = new Logger(ConfigImportModeService.name);
    private legacyWarningLogged = false;

    constructor(private readonly configService: ConfigService) {}

    resolve(): StartupConfigImportMode {
        const configured =
            this.configService.get<StartupConfigImportMode>(
                "CONFIG_IMPORT_MODE",
            );
        if (configured) {
            return configured;
        }

        const enabled =
            this.configService.get<boolean>("CONFIG_IMPORT") ?? false;
        const force =
            this.configService.get<boolean>("CONFIG_IMPORT_FORCE") ?? false;
        if ((enabled || force) && !this.legacyWarningLogged) {
            this.legacyWarningLogged = true;
            this.logger.warn(
                "CONFIG_IMPORT and CONFIG_IMPORT_FORCE are deprecated; use CONFIG_IMPORT_MODE=disabled|create|upsert|replace.",
            );
        }
        if (!enabled) {
            return "disabled";
        }
        return force ? "upsert" : "create";
    }
}

results matching ""

    No results matching ""