diff --git a/packages/io-ts-http/README.md b/packages/io-ts-http/README.md index f045f2e8..7f3d9e1b 100644 --- a/packages/io-ts-http/README.md +++ b/packages/io-ts-http/README.md @@ -131,7 +131,7 @@ value; for example: import { apiSpec } from '@api-ts/io-ts-http'; import { GetMessage, CreateMessage } from './routes/message'; -import { GetUser, CreateUser, UpdateUser, DeleteUser } from './routes/user'; +import { GetUser, CreateUser, PatchUser, UpdateUser, DeleteUser } from './routes/user'; /** * message-user service @@ -148,6 +148,7 @@ export const API = apiSpec({ post: CreateUser, put: UpdateUser, delete: DeleteUser, + patch: PatchUser, }, }); ``` diff --git a/packages/io-ts-http/docs/apiSpec.md b/packages/io-ts-http/docs/apiSpec.md index 008d1a5f..b5756b3a 100644 --- a/packages/io-ts-http/docs/apiSpec.md +++ b/packages/io-ts-http/docs/apiSpec.md @@ -13,7 +13,7 @@ not do anything aside from enforce the correct type of the parameter passed to i import { apiSpec } from '@api-ts/io-ts-http'; import { GetMessage, CreateMessage } from './routes/message'; -import { GetUser, CreateUser, UpdateUser, DeleteUser } from './routes/user'; +import { GetUser, CreateUser, PatchUser, UpdateUser, DeleteUser } from './routes/user'; /** * Example service @@ -30,6 +30,7 @@ export const API = apiSpec({ post: CreateUser, put: UpdateUser, delete: DeleteUser, + patch: PatchUser, }, }); ``` diff --git a/packages/io-ts-http/src/httpRoute.ts b/packages/io-ts-http/src/httpRoute.ts index 22c73074..a2384299 100644 --- a/packages/io-ts-http/src/httpRoute.ts +++ b/packages/io-ts-http/src/httpRoute.ts @@ -8,6 +8,7 @@ export const Method = t.keyof({ post: 1, put: 1, delete: 1, + patch: 1, }); export type Method = t.TypeOf; @@ -39,7 +40,7 @@ type UnknownKeysToError = { [ApiAction in keyof Spec]: { [M in keyof Spec[ApiAction]]: M extends Method ? Spec[ApiAction][M] - : `Unsupported HTTP Method. Use "get" | "post" | "put" | "delete"`; + : `Unsupported HTTP Method. Use "get" | "post" | "put" | "delete" | "patch"`; }; }; diff --git a/packages/typed-express-router/src/index.ts b/packages/typed-express-router/src/index.ts index e1b66aad..12392ebd 100644 --- a/packages/typed-express-router/src/index.ts +++ b/packages/typed-express-router/src/index.ts @@ -191,10 +191,12 @@ export function wrapRouter( post: makeAddRoute('post'), put: makeAddRoute('put'), delete: makeAddRoute('delete'), + patch: makeAddRoute('patch'), getUnchecked: makeAddUncheckedRoute('get'), postUnchecked: makeAddUncheckedRoute('post'), putUnchecked: makeAddUncheckedRoute('put'), deleteUnchecked: makeAddUncheckedRoute('delete'), + patchUnchecked: makeAddUncheckedRoute('patch'), use: (middleware: UncheckedRequestHandler) => { routerMiddleware.push(middleware); }, diff --git a/packages/typed-express-router/src/types.ts b/packages/typed-express-router/src/types.ts index b19cfc74..0954df0a 100644 --- a/packages/typed-express-router/src/types.ts +++ b/packages/typed-express-router/src/types.ts @@ -114,7 +114,7 @@ export type AddUncheckedRouteHandler = Omit< express.Router, - 'get' | 'post' | 'put' | 'delete' | 'use' + 'get' | 'post' | 'put' | 'delete' | 'use' | 'patch' > & express.RequestHandler & { use: (middleware: UncheckedRequestHandler) => void; @@ -122,8 +122,10 @@ export type WrappedRouter = Omit< post: AddRouteHandler; put: AddRouteHandler; delete: AddRouteHandler; + patch: AddRouteHandler; getUnchecked: AddUncheckedRouteHandler; postUnchecked: AddUncheckedRouteHandler; putUnchecked: AddUncheckedRouteHandler; deleteUnchecked: AddUncheckedRouteHandler; + patchUnchecked: AddUncheckedRouteHandler; };