@routup/cookie
Version:
Cookie plugin for routup.
1 lines • 5.55 kB
Source Map (JSON)
{"version":3,"file":"index.cjs","sources":["../src/utils.ts","../src/request.ts","../src/handler.ts","../src/module.ts","../src/response.ts"],"sourcesContent":["import type { Request } from 'routup';\nimport { HeaderName } from 'routup';\nimport { parse } from 'cookie-es';\nimport type { ParseOptions } from './types';\n\nexport function parseRequestCookies(req: Request, options?: ParseOptions) {\n return parse(req.headers[HeaderName.COOKIE] || '', options || {});\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 { Request } from 'routup';\nimport { isObject } from './utils';\n\nconst CookieSymbol = Symbol.for('ReqCookie');\n\nexport function useRequestCookies(\n req: Request,\n) : Record<string, string> {\n if (CookieSymbol in req) {\n return (req as any)[CookieSymbol];\n }\n\n return {};\n}\n\nexport function hasRequestCookies(req: Request) {\n return CookieSymbol in req &&\n isObject((req as any)[CookieSymbol]);\n}\n\nexport function useRequestCookie(req: Request, name: string) : string | undefined {\n return useRequestCookies(req)[name];\n}\n\nexport function setRequestCookies(req: Request, key: string, value: unknown) : void;\nexport function setRequestCookies(req: Request, record: Record<string, any>) : void;\nexport function setRequestCookies(req: Request, key: Record<string, any> | string, value?: unknown) : void {\n if (isObject(key)) {\n (req as any)[CookieSymbol] = key;\n return;\n }\n\n (req as any)[CookieSymbol] = {\n [key]: value,\n };\n}\n","import {\n coreHandler,\n} from 'routup';\n\nimport {\n hasRequestCookies,\n setRequestCookies,\n} from './request';\n\nimport type { ParseOptions } from './types';\nimport { parseRequestCookies } from './utils';\n\nexport function createHandler(options?: ParseOptions) {\n return coreHandler((req, res, next) => {\n if (hasRequestCookies(req)) {\n next();\n return;\n }\n\n setRequestCookies(req, parseRequestCookies(req, options));\n\n next();\n });\n}\n","import type { Plugin } from 'routup';\nimport { createHandler } from './handler';\nimport type { Options } from './types';\n\nexport function cookie(options: Options = {}) : Plugin {\n return {\n name: 'cookie',\n install: (router) => {\n router.use(createHandler(options.parse));\n },\n };\n}\n","import type { Response } from 'routup';\nimport { HeaderName, appendResponseHeader } from 'routup';\nimport { serialize } from 'cookie-es';\nimport type { SerializeOptions } from './types';\n\nexport function setResponseCookie(res: Response, name: string, value: string, options?: SerializeOptions) {\n appendResponseHeader(res, HeaderName.SET_COOKIE, serialize(name, value, {\n path: '/',\n ...(options || {}),\n }));\n}\n\n/* istanbul ignore next */\nexport function unsetResponseCookie(res: Response, name: string, options?: SerializeOptions) {\n setResponseCookie(res, name, '', {\n ...(options || {}),\n maxAge: 0,\n });\n}\n"],"names":["parseRequestCookies","req","options","parse","headers","HeaderName","COOKIE","isObject","item","Array","isArray","CookieSymbol","Symbol","for","useRequestCookies","hasRequestCookies","useRequestCookie","name","setRequestCookies","key","value","createHandler","coreHandler","res","next","cookie","install","router","use","setResponseCookie","appendResponseHeader","SET_COOKIE","serialize","path","unsetResponseCookie","maxAge"],"mappings":";;;;;;;AAKO,SAASA,mBAAAA,CAAoBC,GAAY,EAAEC,OAAsB,EAAA;IACpE,OAAOC,cAAAA,CAAMF,GAAAA,CAAIG,OAAO,CAACC,iBAAAA,CAAWC,MAAM,CAAC,IAAI,EAAA,EAAIJ,OAAAA,IAAW,EAAC,CAAA;AACnE;AAEO,SAASK,SAASC,IAAa,EAAA;IAClC,OACI,CAAC,CAACA,IAAAA,IACF,OAAOA,SAAS,QAAA,IAChB,CAACC,KAAAA,CAAMC,OAAO,CAACF,IAAAA,CAAAA;AAEvB;;ACZA,MAAMG,YAAAA,GAAeC,MAAAA,CAAOC,GAAG,CAAC,WAAA,CAAA;AAEzB,SAASC,kBACZb,GAAY,EAAA;AAEZ,IAAA,IAAIU,gBAAgBV,GAAAA,EAAK;QACrB,OAAQA,GAAW,CAACU,YAAAA,CAAa;AACrC;AAEA,IAAA,OAAO,EAAC;AACZ;AAEO,SAASI,kBAAkBd,GAAY,EAAA;AAC1C,IAAA,OAAOU,gBAAgBV,GAAAA,IACnBM,QAAAA,CAAS,GAAY,CAACI,YAAAA,CAAa,CAAA;AAC3C;AAEO,SAASK,gBAAAA,CAAiBf,GAAY,EAAEgB,IAAY,EAAA;IACvD,OAAOH,iBAAAA,CAAkBb,GAAAA,CAAI,CAACgB,IAAAA,CAAK;AACvC;AAIO,SAASC,iBAAAA,CAAkBjB,GAAY,EAAEkB,GAAiC,EAAEC,KAAe,EAAA;AAC9F,IAAA,IAAIb,SAASY,GAAAA,CAAAA,EAAM;QACdlB,GAAW,CAACU,aAAa,GAAGQ,GAAAA;AAC7B,QAAA;AACJ;IAEClB,GAAW,CAACU,aAAa,GAAG;AACzB,QAAA,CAACQ,MAAMC;AACX,KAAA;AACJ;;ACvBO,SAASC,cAAcnB,OAAsB,EAAA;IAChD,OAAOoB,kBAAAA,CAAY,CAACrB,GAAAA,EAAKsB,GAAAA,EAAKC,IAAAA,GAAAA;AAC1B,QAAA,IAAIT,kBAAkBd,GAAAA,CAAAA,EAAM;AACxBuB,YAAAA,IAAAA,EAAAA;AACA,YAAA;AACJ;QAEAN,iBAAAA,CAAkBjB,GAAAA,EAAKD,oBAAoBC,GAAAA,EAAKC,OAAAA,CAAAA,CAAAA;AAEhDsB,QAAAA,IAAAA,EAAAA;AACJ,KAAA,CAAA;AACJ;;ACnBO,SAASC,MAAAA,CAAOvB,OAAAA,GAAmB,EAAE,EAAA;IACxC,OAAO;QACHe,IAAAA,EAAM,QAAA;AACNS,QAAAA,OAAAA,EAAS,CAACC,MAAAA,GAAAA;AACNA,YAAAA,MAAAA,CAAOC,GAAG,CAACP,aAAAA,CAAcnB,OAAAA,CAAQC,KAAK,CAAA,CAAA;AAC1C;AACJ,KAAA;AACJ;;ACNO,SAAS0B,kBAAkBN,GAAa,EAAEN,IAAY,EAAEG,KAAa,EAAElB,OAA0B,EAAA;AACpG4B,IAAAA,2BAAAA,CAAqBP,KAAKlB,iBAAAA,CAAW0B,UAAU,EAAEC,kBAAAA,CAAUf,MAAMG,KAAAA,EAAO;QACpEa,IAAAA,EAAM,GAAA;QACN,GAAI/B,OAAAA,IAAW;AACnB,KAAA,CAAA,CAAA;AACJ;AAEA,2BACO,SAASgC,mBAAAA,CAAoBX,GAAa,EAAEN,IAAY,EAAEf,OAA0B,EAAA;IACvF2B,iBAAAA,CAAkBN,GAAAA,EAAKN,MAAM,EAAA,EAAI;QAC7B,GAAIf,OAAAA,IAAW,EAAE;QACjBiC,MAAAA,EAAQ;AACZ,KAAA,CAAA;AACJ;;;;;;;;;;;;;;;;;"}