@routup/body
Version:
Body plugin for routup.
1 lines • 7.79 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../src/parser/json.ts","../src/parser/raw.ts","../src/parser/text.ts","../src/parser/url-encoded.ts","../src/utils.ts","../src/module.ts","../src/request.ts"],"sourcesContent":["import type { OptionsJson } from 'body-parser';\nimport { json } from 'body-parser';\nimport { coreHandler } from 'routup';\n\nexport function createJsonHandler(options?: OptionsJson) {\n const handler = json(options);\n\n return coreHandler((req, res, next) => {\n handler(req, res, next);\n });\n}\n","import type { Options } from 'body-parser';\nimport { raw } from 'body-parser';\nimport { coreHandler } from 'routup';\n\nexport function createRawHandler(options?: Options) {\n const handler = raw(options);\n return coreHandler((req, res, next) => {\n handler(req, res, next);\n });\n}\n","import type { OptionsText } from 'body-parser';\nimport { text } from 'body-parser';\nimport { coreHandler } from 'routup';\n\nexport function createTextHandler(options?: OptionsText) {\n const handler = text(options);\n\n return coreHandler((req, res, next) => {\n handler(req, res, next);\n });\n}\n","import type { OptionsUrlencoded } from 'body-parser';\nimport { urlencoded } from 'body-parser';\nimport { coreHandler } from 'routup';\n\nexport function createUrlEncodedHandler(options?: OptionsUrlencoded) {\n const handler = urlencoded({\n extended: false,\n ...(options || {}),\n });\n\n return coreHandler((req, res, next) => {\n handler(req, res, next);\n });\n}\n","export function boolToObject<T>(input: T | boolean) : T {\n if (typeof input === 'boolean') {\n return {} as T;\n }\n\n return input;\n}\n\nexport function isObject(item: unknown) : item is Record<string, any> {\n return (\n !!item &&\n typeof item === 'object' &&\n !Array.isArray(item)\n );\n}\n","import type { Plugin } from 'routup';\nimport {\n createJsonHandler,\n createRawHandler,\n createTextHandler,\n createUrlEncodedHandler,\n} from './parser';\nimport type { Options } from './types';\nimport { boolToObject } from './utils';\n\nexport function body(options : Options = {}) : Plugin {\n if (\n typeof options.json === 'undefined' &&\n typeof options.raw === 'undefined' &&\n typeof options.urlEncoded === 'undefined' &&\n typeof options.text === 'undefined'\n ) {\n options.json = true;\n options.urlEncoded = true;\n }\n\n return {\n name: 'body',\n install: (router) => {\n if (options.json) {\n router.use(createJsonHandler(boolToObject(options.json)));\n }\n\n if (options.raw) {\n router.use(createRawHandler(boolToObject(options.raw)));\n }\n\n if (options.text) {\n router.use(createTextHandler(boolToObject(options.text)));\n }\n\n if (options.urlEncoded) {\n router.use(createUrlEncodedHandler(boolToObject(options.urlEncoded)));\n }\n },\n };\n}\n","import type { Request } from 'routup';\nimport { isObject } from './utils';\n\nconst BodySymbol = Symbol.for('ReqBody');\n\nexport function useRequestBody(req: Request) : Record<string, any>;\nexport function useRequestBody(req: Request, key: string) : any | undefined;\nexport function useRequestBody(req: Request, key?: string) {\n let body : Record<string, any> | undefined;\n\n /* istanbul ignore next */\n if ('body' in req) {\n body = (req as any).body;\n }\n\n if (BodySymbol in req) {\n if (body) {\n body = {\n ...(req as any)[BodySymbol],\n ...body,\n };\n } else {\n body = (req as any)[BodySymbol];\n }\n }\n\n if (body) {\n if (typeof key === 'string') {\n return body[key];\n }\n\n return body;\n }\n\n return typeof key === 'string' ?\n undefined :\n {};\n}\n\nexport function setRequestBody(req: Request, key: string, value: unknown) : void;\nexport function setRequestBody(req: Request, record: Record<string, any>) : void;\nexport function setRequestBody(req: Request, key: Record<string, any> | string, value?: unknown) : void {\n if (isObject(key)) {\n (req as any)[BodySymbol] = key;\n return;\n }\n\n (req as any)[BodySymbol] = {\n [key]: value,\n };\n}\n"],"names":["createJsonHandler","options","handler","json","coreHandler","req","res","next","createRawHandler","raw","createTextHandler","text","createUrlEncodedHandler","urlencoded","extended","boolToObject","input","isObject","item","Array","isArray","body","urlEncoded","name","install","router","use","BodySymbol","Symbol","for","useRequestBody","key","undefined","setRequestBody","value"],"mappings":"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"}