@routup/body
Version:
Body plugin for routup.
1 lines • 7.99 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 bodyParser from 'body-parser';\nimport { coreHandler } from 'routup';\n\nexport function createJsonHandler(options?: OptionsJson) {\n const handler = bodyParser.json(options);\n\n return coreHandler((req, res, next) => {\n handler(req, res, next);\n });\n}\n","import type { Options } from 'body-parser';\nimport bodyParser from 'body-parser';\nimport { coreHandler } from 'routup';\n\nexport function createRawHandler(options?: Options) {\n const handler = bodyParser.raw(options);\n return coreHandler((req, res, next) => {\n handler(req, res, next);\n });\n}\n","import type { OptionsText } from 'body-parser';\nimport bodyParser from 'body-parser';\nimport { coreHandler } from 'routup';\n\nexport function createTextHandler(options?: OptionsText) {\n const handler = bodyParser.text(options);\n\n return coreHandler((req, res, next) => {\n handler(req, res, next);\n });\n}\n","import type { OptionsUrlencoded } from 'body-parser';\nimport bodyParser from 'body-parser';\nimport { coreHandler } from 'routup';\n\nexport function createUrlEncodedHandler(options?: OptionsUrlencoded) {\n const handler = bodyParser.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","bodyParser","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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"}