diff --git a/.changeset/nest-middleware-option-types.md b/.changeset/nest-middleware-option-types.md new file mode 100644 index 0000000..0befa25 --- /dev/null +++ b/.changeset/nest-middleware-option-types.md @@ -0,0 +1,12 @@ +--- +'@rineex/cookie-parser-mw-module': minor +'@rineex/response-time-mw-module': minor +'@rineex/cors-mw-module': patch +--- + +Export middleware option types from Nest middleware modules and align CORS +typing with the `cors` package. + +- Re-export `CookieParseOptions` from `@rineex/cookie-parser-mw-module` +- Export local `ResponseTimeOptions` from `@rineex/response-time-mw-module` +- Use `CorsOptions` from `cors` in `@rineex/cors-mw-module` diff --git a/.vscode/settings.json b/.vscode/settings.json index e262475..8d3fb4c 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -15,5 +15,6 @@ { "mode": "auto" } - ] + ], + "js/ts.tsdk.path": "node_modules/typescript/lib" } diff --git a/package.json b/package.json index 28a0a7e..58c4606 100644 --- a/package.json +++ b/package.json @@ -39,6 +39,7 @@ "prettier": "3.7.4", "simple-git-hooks": "2.13.1", "turbo": "2.6.3", + "typescript": "^5.9.3", "vitest": "4.0.16" }, "volta": { diff --git a/packages/nest/cookie-middleware-module/src/index.ts b/packages/nest/cookie-middleware-module/src/index.ts index 86db9af..ab3a81f 100644 --- a/packages/nest/cookie-middleware-module/src/index.ts +++ b/packages/nest/cookie-middleware-module/src/index.ts @@ -1,2 +1,3 @@ export * from './middleware'; export { CookieParserModule } from './module'; +export type { CookieParseOptions } from 'cookie-parser'; diff --git a/packages/nest/cors-middleware-module/src/middleware.ts b/packages/nest/cors-middleware-module/src/middleware.ts index 78622b4..06153c0 100644 --- a/packages/nest/cors-middleware-module/src/middleware.ts +++ b/packages/nest/cors-middleware-module/src/middleware.ts @@ -1,5 +1,5 @@ import type { NestMiddleware } from '@nestjs/common'; -import type { CorsOptions } from '@nestjs/common/interfaces/external/cors-options.interface'; +import type { CorsOptions } from 'cors'; import type { NextFunction, Request, Response } from 'express'; import { Inject, Injectable } from '@nestjs/common'; diff --git a/packages/nest/cors-middleware-module/src/module.ts b/packages/nest/cors-middleware-module/src/module.ts index a852e31..dd489d3 100644 --- a/packages/nest/cors-middleware-module/src/module.ts +++ b/packages/nest/cors-middleware-module/src/module.ts @@ -1,5 +1,5 @@ import type { MiddlewareConsumer, NestModule, Provider } from '@nestjs/common'; -import type { CorsOptions } from '@nestjs/common/interfaces/external/cors-options.interface'; +import type { CorsOptions } from 'cors'; import { ConfigurableModuleBuilder, HttpStatus, Module } from '@nestjs/common'; diff --git a/packages/nest/response-time-middleware-module/package.json b/packages/nest/response-time-middleware-module/package.json index 2323be1..6e962e4 100644 --- a/packages/nest/response-time-middleware-module/package.json +++ b/packages/nest/response-time-middleware-module/package.json @@ -43,9 +43,9 @@ "@nestjs/core": "11.0.1", "@nestjs/testing": "11.0.1", "@rineex/eslint-config": "workspace:*", - "@types/response-time": "2.3.9", "@types/express": "5.0.3", "@types/jest": "29.5.14", + "@types/response-time": "2.3.9", "eslint": "9.28.0", "express": "5.1.0", "jest": "29.7.0", diff --git a/packages/nest/response-time-middleware-module/src/index.ts b/packages/nest/response-time-middleware-module/src/index.ts index 63a2ec4..6c1b13b 100644 --- a/packages/nest/response-time-middleware-module/src/index.ts +++ b/packages/nest/response-time-middleware-module/src/index.ts @@ -1,2 +1,3 @@ export * from './middleware'; export { ResponseTimeModule } from './module'; +export type { ResponseTimeOptions } from './options'; diff --git a/packages/nest/response-time-middleware-module/src/middleware.ts b/packages/nest/response-time-middleware-module/src/middleware.ts index b96875d..38af70b 100644 --- a/packages/nest/response-time-middleware-module/src/middleware.ts +++ b/packages/nest/response-time-middleware-module/src/middleware.ts @@ -1,6 +1,6 @@ import type { NestMiddleware } from '@nestjs/common'; import type { NextFunction, Request, Response } from 'express'; -import type { ResponseTimeOptions } from 'response-time'; +import type { ResponseTimeOptions } from './options'; import { Inject, Injectable } from '@nestjs/common'; import responseTime from 'response-time'; diff --git a/packages/nest/response-time-middleware-module/src/module.ts b/packages/nest/response-time-middleware-module/src/module.ts index d7917b9..fa5550c 100644 --- a/packages/nest/response-time-middleware-module/src/module.ts +++ b/packages/nest/response-time-middleware-module/src/module.ts @@ -1,5 +1,5 @@ import type { MiddlewareConsumer, NestModule } from '@nestjs/common'; -import type { ResponseTimeOptions } from 'response-time'; +import type { ResponseTimeOptions } from './options'; import { ConfigurableModuleBuilder, Module } from '@nestjs/common'; diff --git a/packages/nest/response-time-middleware-module/src/options.ts b/packages/nest/response-time-middleware-module/src/options.ts new file mode 100644 index 0000000..6a15465 --- /dev/null +++ b/packages/nest/response-time-middleware-module/src/options.ts @@ -0,0 +1,5 @@ +export interface ResponseTimeOptions { + digits?: number; + header?: string; + suffix?: boolean; +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 258e63f..a48eb20 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,7 +16,7 @@ importers: version: 2.29.8(@types/node@24.10.4) '@fullstacksjs/eslint-config': specifier: 13.8.2 - version: 13.8.2(@types/eslint@9.6.1)(@typescript-eslint/eslint-plugin@8.48.0(@typescript-eslint/parser@8.44.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/utils@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(jest@29.7.0(@types/node@24.10.4))(prettier@3.7.4)(react@19.2.3)(tailwindcss@4.1.18)(typescript@5.9.3)(vitest@4.0.16) + version: 13.8.2(@types/eslint@9.6.1)(@typescript-eslint/eslint-plugin@8.48.0(@typescript-eslint/parser@8.48.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/utils@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(jest@29.7.0(@types/node@24.10.4))(prettier@3.7.4)(react@19.2.3)(tailwindcss@4.1.18)(typescript@5.9.3)(vitest@4.0.16) '@svitejs/changesets-changelog-github-compact': specifier: 1.2.0 version: 1.2.0 @@ -41,6 +41,9 @@ importers: turbo: specifier: 2.6.3 version: 2.6.3 + typescript: + specifier: ^5.9.3 + version: 5.9.3 vitest: specifier: 4.0.16 version: 4.0.16(@opentelemetry/api@1.9.0)(@types/node@24.10.4)(@vitest/ui@4.0.16)(jiti@2.6.1)(terser@5.46.0)(yaml@2.8.2) @@ -257,7 +260,7 @@ importers: devDependencies: '@fullstacksjs/eslint-config': specifier: 13.8.2 - version: 13.8.2(@types/eslint@9.6.1)(@typescript-eslint/eslint-plugin@8.48.0(@typescript-eslint/parser@8.48.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/utils@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(jest@29.7.0(@types/node@24.10.4))(prettier@3.7.4)(react@19.2.3)(tailwindcss@4.1.18)(typescript@5.9.3)(vitest@4.0.16) + version: 13.8.2(@types/eslint@9.6.1)(@typescript-eslint/eslint-plugin@8.48.0(@typescript-eslint/parser@8.44.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/utils@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(jest@29.7.0(@types/node@24.10.4))(prettier@3.7.4)(react@19.2.3)(tailwindcss@4.1.18)(typescript@5.9.3)(vitest@4.0.16) eslint-plugin-react-hooks: specifier: 7.0.1 version: 7.0.1(eslint@9.39.2(jiti@2.6.1)) @@ -2070,6 +2073,7 @@ packages: '@svitejs/changesets-changelog-github-compact@1.2.0': resolution: {integrity: sha512-08eKiDAjj4zLug1taXSIJ0kGL5cawjVCyJkBb6EWSg5fEPX6L+Wtr0CH2If4j5KYylz85iaZiFlUItvgJvll5g==} engines: {node: ^14.13.1 || ^16.0.0 || >=18} + deprecated: unmaintained '@tokenizer/inflate@0.4.1': resolution: {integrity: sha512-2mAv+8pkG6GIZiF1kNg1jAjh27IDxEPKwdGul3snfztFerfPGI1LjDezZp3i7BElXompqEtPmoPx6c2wgtWsOA==} @@ -5453,6 +5457,7 @@ packages: tsconfck@3.1.6: resolution: {integrity: sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==} engines: {node: ^18 || >=20} + deprecated: unmaintained hasBin: true peerDependencies: typescript: ^5.0.0