UNPKG

@d3vtool/kazejs

Version:

A flexible Node.js web framework built with TypeScript, focusing on dependency injection, routing, middleware, and schema validation. Supports dynamic routes, global middleware, static files, and customizable error handling for scalable apps.

66 lines (65 loc) 2.87 kB
"use strict"; var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { if (kind === "m") throw new TypeError("Private method is not writable"); if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; }; var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); }; var _Cookie_cookiesMap; Object.defineProperty(exports, "__esModule", { value: true }); exports.Cookie = void 0; exports.createCookie = createCookie; exports.parseCookies = parseCookies; const utils_1 = require("@d3vtool/utils"); function createCookie(key, value, options) { let cookie = [`${key}=${value}`]; Object.keys(options).forEach(optionKey => { const optionValue = options[optionKey]; if (optionKey === "sameSite" || optionKey === "httpOnly") { cookie.push(`${utils_1.StringUtils.toTitleCase(optionKey)}=${optionValue}`); } else if (optionKey === "maxAge") { cookie.push(`Max-Age=${optionValue}`); } if (typeof optionValue === "string") { cookie.push(`${optionKey}=${optionValue}`); } else if (optionValue instanceof Date) { cookie.push(`${optionKey}=${optionValue.toUTCString()}`); } else if (typeof optionValue === "boolean") { cookie.push(optionKey); } }); return cookie.join("; "); } class Cookie { constructor(cookies) { _Cookie_cookiesMap.set(this, void 0); __classPrivateFieldSet(this, _Cookie_cookiesMap, cookies, "f"); } get(key) { return __classPrivateFieldGet(this, _Cookie_cookiesMap, "f")[key]; } } exports.Cookie = Cookie; _Cookie_cookiesMap = new WeakMap(); function parseCookies(ctx, next) { const cookiesStr = ctx.req.headers["cookie"]; if (!cookiesStr) { return next(); } const cPairs = cookiesStr.split("; "); const cookies = cPairs.reduce((acc, cookie) => { const [key, value] = cookie.split("="); acc[key] = value; return acc; }, {}); ctx.req.cookies = new Cookie(cookies); next(); }