Skip to content

Commit

Permalink
remove unnecessary custom settings (yes)
Browse files Browse the repository at this point in the history
  • Loading branch information
Enity committed May 16, 2024
1 parent 610de6f commit 7ec33b2
Show file tree
Hide file tree
Showing 8 changed files with 19 additions and 52 deletions.
4 changes: 0 additions & 4 deletions src/modules/graceful-shutdown/config.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
export type GracefulShutdownModuleConfig = {
enabled: boolean;
};

export type GracefulShutdownModuleOpts = {
config: GracefulShutdownModuleConfig;
};
6 changes: 0 additions & 6 deletions src/modules/healthcheck/config.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,6 @@
import type { Actuator } from '@monkee/small-standards';

export type HealthcheckModuleConfig = {
enabled: boolean;
};

export type HealthcheckModuleOpts = {
config: HealthcheckModuleConfig;

dependencies: {
actuator: Actuator;
};
Expand Down
1 change: 0 additions & 1 deletion src/modules/prometheus/config.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import type { Actuator } from '@monkee/small-standards';

export type PrometheusModuleConfig = {
enabled: boolean;
enableHttpMetrics: boolean;
defaultMetrics: boolean;
};
Expand Down
4 changes: 2 additions & 2 deletions src/modules/prometheus/http-metrics-interceptor.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ export class HttpMetricsInterceptor implements NestInterceptor {
private registry: PrometheusRegistry,
private adapterHost: HttpAdapterHost,
) {
if (!this.opts.config.enabled || !this.opts.config.enableHttpMetrics) {
if (!this.opts.config.enableHttpMetrics) {
return;
}

Expand All @@ -48,7 +48,7 @@ export class HttpMetricsInterceptor implements NestInterceptor {
}

intercept(ctx: ExecutionContext, next: CallHandler) {
if (!this.opts.config.enabled || !this.opts.config.enableHttpMetrics) {
if (!this.opts.config.enableHttpMetrics) {
return next.handle();
}

Expand Down
18 changes: 8 additions & 10 deletions src/modules/prometheus/prometheus.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,13 @@ export class PrometheusService implements OnApplicationBootstrap {
) {}

onApplicationBootstrap() {
if (this.opts.config.enabled) {
this.opts.dependencies.actuator.registerRoute(
'/prometheus',
async (req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
const metrics = await this.registry.metrics();
res.end(metrics);
},
);
}
this.opts.dependencies.actuator.registerRoute(
'/prometheus',
async (req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
const metrics = await this.registry.metrics();
res.end(metrics);
},
);
}
}
12 changes: 4 additions & 8 deletions src/starter/starter-app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { FastifyAdapter } from '@nestjs/platform-fastify';
import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger';
import { setupGracefulShutdown } from '../modules/graceful-shutdown';
import { LOG_LEVEL, StructuredLogger } from '../modules/logging';
import type { NestStarterConfig, SwaggerConfig } from './starter-config';
import type { NestStarterConfig } from './starter-config';

export const createStarterApp = async (
// Typing from original interface
Expand Down Expand Up @@ -56,7 +56,7 @@ export const initStarterApp = async <T extends NestStarterConfig>(
);

if (config.swagger.enabled) {
setupSwagger(app, config.appName, config.swagger);
setupSwagger(app, config.appName);
}

return Promise.resolve(app);
Expand All @@ -82,15 +82,11 @@ export const startStarterApp = async <T extends NestStarterConfig>(
}
};

const setupSwagger = (
app: INestApplication,
appName: string,
config: SwaggerConfig,
) => {
const setupSwagger = (app: INestApplication, appName: string) => {
const optionsBuilder = new DocumentBuilder().setTitle(appName);

const options = optionsBuilder.build();

const document = SwaggerModule.createDocument(app, options);
SwaggerModule.setup(config.path, app, document);
SwaggerModule.setup('doc', app, document);
};
21 changes: 3 additions & 18 deletions src/starter/starter-config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,17 @@ import { Injectable } from '@nestjs/common';
import { IsEnum, Max, Min } from 'class-validator';
import type { ActuatorModuleConfig } from '../modules/actuator';
import type { GracefulShutdownModuleConfig } from '../modules/graceful-shutdown';
import type { HealthcheckModuleConfig } from '../modules/healthcheck';
import type { LoggingModuleConfig } from '../modules/logging';
import { LOG_LEVEL } from '../modules/logging';
import type { PrometheusModuleConfig } from '../modules/prometheus';

export class LoggingConfig implements LoggingModuleConfig {
@ConfigField()
prettyMode!: boolean;

@ConfigField()
@IsEnum(LOG_LEVEL)
level!: LOG_LEVEL;

@ConfigField()
prettyMode!: boolean;
}

export class GracefulShutdownConfig implements GracefulShutdownModuleConfig {
Expand All @@ -41,27 +40,16 @@ export class ActuatorConfig implements ActuatorModuleConfig {
}

export class PrometheusConfig implements PrometheusModuleConfig {
@ConfigField()
enabled!: boolean;

@ConfigField()
defaultMetrics!: boolean;

@ConfigField()
enableHttpMetrics!: boolean;
}

export class HealthcheckConfig implements HealthcheckModuleConfig {
@ConfigField()
enabled!: boolean;
}

export class SwaggerConfig {
@ConfigField()
enabled!: boolean;

@ConfigField()
path!: string;
}

@ConfigPrefix('nest')
Expand All @@ -82,9 +70,6 @@ export class NestStarterConfig {
@ConfigField({ nested: true })
prometheus!: PrometheusConfig;

@ConfigField({ nested: true })
healthcheck!: HealthcheckConfig;

@ConfigField({ nested: true })
swagger!: SwaggerConfig;
}
5 changes: 2 additions & 3 deletions src/starter/starter-modules.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,8 @@ export const createStarterModules = <T extends NestStarterConfig>(
}),
}),
HealthcheckModule.forRootAsync({
inject: [ActuatorService, configClass],
useFactory: (actuator: ActuatorService, config: NestStarterConfig) => ({
config: config.healthcheck,
inject: [ActuatorService],
useFactory: (actuator: ActuatorService) => ({
dependencies: {
actuator,
},
Expand Down

0 comments on commit 7ec33b2

Please sign in to comment.