diff --git a/src/abort-controller.middleware.ts b/src/abort-controller.middleware.ts index ca3fea2..82710bd 100644 --- a/src/abort-controller.middleware.ts +++ b/src/abort-controller.middleware.ts @@ -1,6 +1,7 @@ import { Injectable, NestMiddleware, Logger } from '@nestjs/common'; import { Response } from 'express'; import { AbortControllerOptions, AbortControllerRequest } from './types'; +import { ABORT_CONTROLLER, ABORT_SIGNAL } from './constants'; const LOG_MESSAGES = { CLIENT_DISCONNECTED: 'Client disconnected, aborting request', @@ -24,8 +25,8 @@ export class AbortControllerMiddleware implements NestMiddleware { const timeout = AbortControllerMiddleware.options.timeout ?? 30000; const enableLogging = AbortControllerMiddleware.options.enableLogging ?? false; - req.abortController = controller; - req.abortSignal = controller.signal; + req[ABORT_CONTROLLER] = controller; + req[ABORT_SIGNAL] = controller.signal; req.on('close', () => { if (enableLogging) { diff --git a/src/abort-signal.decorator.ts b/src/abort-signal.decorator.ts index 9b1f56a..5f4eaf2 100644 --- a/src/abort-signal.decorator.ts +++ b/src/abort-signal.decorator.ts @@ -1,6 +1,7 @@ import { createParamDecorator, ExecutionContext } from '@nestjs/common'; +import { ABORT_SIGNAL } from './constants'; export const NestAbortSignal = createParamDecorator((_, ctx: ExecutionContext): AbortSignal => { const req = ctx.switchToHttp().getRequest(); - return req.abortSignal; + return req[ABORT_SIGNAL]; }); diff --git a/src/constants.ts b/src/constants.ts new file mode 100644 index 0000000..c749525 --- /dev/null +++ b/src/constants.ts @@ -0,0 +1,2 @@ +export const ABORT_CONTROLLER = Symbol('abortController'); +export const ABORT_SIGNAL = Symbol('abortSignal'); diff --git a/src/index.ts b/src/index.ts index c0ba618..d8efa3c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -3,3 +3,4 @@ export * from './abort-signal.decorator'; export * from './abort.module'; export * from './types'; export * from './throw-if-aborted'; +export * from './constants'; diff --git a/src/types.ts b/src/types.ts index cafd35e..d0ac86b 100644 --- a/src/types.ts +++ b/src/types.ts @@ -1,8 +1,9 @@ import { Request } from 'express'; +import { ABORT_CONTROLLER, ABORT_SIGNAL } from './constants'; export interface AbortControllerRequest extends Request { - abortController?: AbortController; - abortSignal?: AbortSignal; + [ABORT_CONTROLLER]?: AbortController; + [ABORT_SIGNAL]?: AbortSignal; } export interface AbortControllerOptions {