refactor(server): config system (#11081)

This commit is contained in:
forehalo
2025-03-27 12:32:28 +00:00
parent 7091111f85
commit 0ea38680fa
274 changed files with 7583 additions and 5841 deletions
@@ -1,14 +0,0 @@
import { defineStartupConfig, ModuleConfig } from '../../base/config';
export interface GCloudConfig {
enabled: boolean;
}
declare module '../config' {
interface PluginsConfig {
gcloud: ModuleConfig<GCloudConfig>;
}
}
defineStartupConfig('plugins.gcloud', {
enabled: false,
});
@@ -1,14 +1,10 @@
import './config';
import { Global, Module } from '@nestjs/common';
import { Global } from '@nestjs/common';
import { Plugin } from '../registry';
import { GCloudLogging } from './logging';
import { GCloudMetrics } from './metrics';
@Global()
@Plugin({
name: 'gcloud',
@Module({
imports: [GCloudMetrics, GCloudLogging],
})
export class GCloudModule {}
@@ -1,12 +1,11 @@
import { Global } from '@nestjs/common';
import { Global, Module } from '@nestjs/common';
import { OptionalModule } from '../../../base';
import { loggerProvider } from './service';
import { LoggerProvider } from './service';
@Global()
@OptionalModule({
if: config => config.metrics.enabled,
overrides: [loggerProvider],
@Module({
providers: [LoggerProvider],
exports: [LoggerProvider],
})
export class GCloudLogging {}
@@ -9,7 +9,7 @@ const moreMetadata = format(info => {
return info;
});
export const loggerProvider: Provider<LoggerService> = {
export const LoggerProvider: Provider<LoggerService> = {
provide: LoggerProvide,
useFactory: () => {
const instance = createLogger({
@@ -1,7 +1,7 @@
import { MetricExporter } from '@google-cloud/opentelemetry-cloud-monitoring-exporter';
import { TraceExporter } from '@google-cloud/opentelemetry-cloud-trace-exporter';
import { GcpDetectorSync } from '@google-cloud/opentelemetry-resource-util';
import { Global, Provider } from '@nestjs/common';
import { Global, Injectable, Module, Provider } from '@nestjs/common';
import { getEnv } from '@opentelemetry/core';
import { Resource } from '@opentelemetry/resources';
import {
@@ -14,9 +14,9 @@ import {
SEMRESATTRS_K8S_POD_NAME,
} from '@opentelemetry/semantic-conventions';
import { OptionalModule } from '../../base';
import { OpentelemetryFactory } from '../../base/metrics';
@Injectable()
export class GCloudOpentelemetryFactory extends OpentelemetryFactory {
override getResource(): Resource {
const env = getEnv();
@@ -47,14 +47,14 @@ export class GCloudOpentelemetryFactory extends OpentelemetryFactory {
}
}
const factorProvider: Provider = {
const FactorProvider: Provider = {
provide: OpentelemetryFactory,
useFactory: () => new GCloudOpentelemetryFactory(),
useClass: GCloudOpentelemetryFactory,
};
@Global()
@OptionalModule({
if: config => config.metrics.enabled,
overrides: [factorProvider],
@Module({
providers: [FactorProvider],
exports: [FactorProvider],
})
export class GCloudMetrics {}