make body reusable
This commit is contained in:
26
src/index.ts
26
src/index.ts
@@ -102,6 +102,14 @@ export type RouterCorsConfig = {
|
|||||||
optionsSuccessStatus?: number
|
optionsSuccessStatus?: number
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export type RouterBuffer = {
|
||||||
|
arrayBuffer?: ArrayBuffer
|
||||||
|
text?: string
|
||||||
|
json?: any
|
||||||
|
formData?: FormData
|
||||||
|
blob?: Blob
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Router
|
* Router
|
||||||
*
|
*
|
||||||
@@ -142,6 +150,14 @@ export class Router<TEnv = any, TExt = any> {
|
|||||||
*/
|
*/
|
||||||
protected corsConfig: RouterCorsConfig = {}
|
protected corsConfig: RouterCorsConfig = {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Buffer
|
||||||
|
*
|
||||||
|
* @protected
|
||||||
|
* @type {RouterBuffer}
|
||||||
|
*/
|
||||||
|
protected buffer: RouterBuffer = {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* CORS enabled
|
* CORS enabled
|
||||||
*
|
*
|
||||||
@@ -392,11 +408,11 @@ export class Router<TEnv = any, TExt = any> {
|
|||||||
raw: request,
|
raw: request,
|
||||||
params: {},
|
params: {},
|
||||||
query: {},
|
query: {},
|
||||||
arrayBuffer: (): Promise<ArrayBuffer> => request.arrayBuffer(),
|
arrayBuffer: async (): Promise<ArrayBuffer> => this.buffer.arrayBuffer ? this.buffer.arrayBuffer : this.buffer.arrayBuffer = await request.arrayBuffer(),
|
||||||
text: (): Promise<string> => request.text(),
|
text: async (): Promise<string> => this.buffer.text ? this.buffer.text : this.buffer.text = await request.text(),
|
||||||
json: <T>(): Promise<T> => request.json<T>(),
|
json: async <T>(): Promise<T> => this.buffer.json ? this.buffer.json : this.buffer.json = await request.json<T>(),
|
||||||
formData: (): Promise<FormData> => request.formData(),
|
formData: async (): Promise<FormData> => this.buffer.formData ? this.buffer.formData : this.buffer.formData = await request.formData(),
|
||||||
blob: (): Promise<Blob> => request.blob(),
|
blob: async (): Promise<Blob> => this.buffer.blob ? this.buffer.blob : this.buffer.blob = await request.blob(),
|
||||||
bearer: () => request.headers.get('Authorization')?.replace(/^(B|b)earer /, '').trim() ?? '',
|
bearer: () => request.headers.get('Authorization')?.replace(/^(B|b)earer /, '').trim() ?? '',
|
||||||
} as RouterRequest<TExt>
|
} as RouterRequest<TExt>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user