diff --git a/lib/types/route.d.ts b/lib/types/route.d.ts index 173964163..be2416850 100644 --- a/lib/types/route.d.ts +++ b/lib/types/route.d.ts @@ -255,6 +255,13 @@ export interface RouteOptionsPayload { */ maxBytes?: number | undefined; + /** + * @default 1000 + * Limits the number of parts allowed in multipart payloads. + * [See docs](https://github.com/hapijs/hapi/blob/master/API.md#-routeoptionspayloadmaxparts) + */ + maxParts?: number; + /** * @default none. * Overrides payload processing for multipart requests. Value can be one of: @@ -267,12 +274,7 @@ export interface RouteOptionsPayload { * * * * payload - the processed part payload. * [See docs](https://github.com/hapijs/hapi/blob/master/API.md#-routeoptionspayloadmultipart) */ - multipart?: - | false - | { - output: PayloadOutput | 'annotated'; - } - | undefined; + multipart?: boolean | { output: PayloadOutput | 'annotated' }; /** * @default 'data'. diff --git a/lib/types/server/methods.d.ts b/lib/types/server/methods.d.ts index 9b54dcfce..dd482f988 100644 --- a/lib/types/server/methods.d.ts +++ b/lib/types/server/methods.d.ts @@ -17,6 +17,8 @@ export type ServerMethod = (...args: any[]) => any; */ export interface ServerMethodCache extends PolicyOptions { generateTimeout: number | false; + cache?: string; + segment?: string; } /** diff --git a/package.json b/package.json index 7d582b913..43ed22394 100755 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "@hapi/bounce": "^3.0.1", "@hapi/call": "^9.0.1", "@hapi/catbox": "^12.1.1", - "@hapi/catbox-memory": "^6.0.1", + "@hapi/catbox-memory": "^6.0.2", "@hapi/heavy": "^8.0.1", "@hapi/hoek": "^11.0.2", "@hapi/mimos": "^7.0.1", diff --git a/test/types/index.ts b/test/types/index.ts index e6a824b6b..988edffb0 100644 --- a/test/types/index.ts +++ b/test/types/index.ts @@ -1,5 +1,6 @@ import { types as lab } from '@hapi/lab'; import { expect } from '@hapi/code'; +import * as CatboxMemory from '@hapi/catbox-memory'; import { Plugin, @@ -39,11 +40,17 @@ interface RequestDecorations { type AppRequest = Request; const route: ServerRoute = { - method: 'GET', + method: 'POST', path: '/', options: { app: { prefix: ['xx-'] + }, + payload: { + maxParts: 100, + maxBytes: 1024 * 1024, + output: 'stream', + multipart: true } }, handler: (request: AppRequest, h: ResponseToolkit) => { @@ -96,3 +103,24 @@ check.type(server.match('get', '/')); const sum = loadedServer.plugins.test.add(1, 2); expect(sum).to.equal(130); check.type(sum); + +server.cache.provision({ + name: 'some-cache', + provider: { + constructor: CatboxMemory.Engine, + options: { + partition: 'test' + } + } +}) + +server.method('test.add', (a: number, b: number) => a + b, { + bind: server, + cache: { + expiresIn: 1000, + generateTimeout: 100, + cache: 'some-cache', + segment: 'test-segment', + }, + generateKey: (a: number, b: number) => `${a}${b}` +}); \ No newline at end of file