index.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. // src/helper/cookie/index.ts
  2. import { parse, parseSigned, serialize, serializeSigned } from "../../utils/cookie.js";
  3. var getCookie = (c, key, prefix) => {
  4. const cookie = c.req.raw.headers.get("Cookie");
  5. if (typeof key === "string") {
  6. if (!cookie) {
  7. return void 0;
  8. }
  9. let finalKey = key;
  10. if (prefix === "secure") {
  11. finalKey = "__Secure-" + key;
  12. } else if (prefix === "host") {
  13. finalKey = "__Host-" + key;
  14. }
  15. const obj2 = parse(cookie, finalKey);
  16. return obj2[finalKey];
  17. }
  18. if (!cookie) {
  19. return {};
  20. }
  21. const obj = parse(cookie);
  22. return obj;
  23. };
  24. var getSignedCookie = async (c, secret, key, prefix) => {
  25. const cookie = c.req.raw.headers.get("Cookie");
  26. if (typeof key === "string") {
  27. if (!cookie) {
  28. return void 0;
  29. }
  30. let finalKey = key;
  31. if (prefix === "secure") {
  32. finalKey = "__Secure-" + key;
  33. } else if (prefix === "host") {
  34. finalKey = "__Host-" + key;
  35. }
  36. const obj2 = await parseSigned(cookie, secret, finalKey);
  37. return obj2[finalKey];
  38. }
  39. if (!cookie) {
  40. return {};
  41. }
  42. const obj = await parseSigned(cookie, secret);
  43. return obj;
  44. };
  45. var generateCookie = (name, value, opt) => {
  46. let cookie;
  47. if (opt?.prefix === "secure") {
  48. cookie = serialize("__Secure-" + name, value, { path: "/", ...opt, secure: true });
  49. } else if (opt?.prefix === "host") {
  50. cookie = serialize("__Host-" + name, value, {
  51. ...opt,
  52. path: "/",
  53. secure: true,
  54. domain: void 0
  55. });
  56. } else {
  57. cookie = serialize(name, value, { path: "/", ...opt });
  58. }
  59. return cookie;
  60. };
  61. var setCookie = (c, name, value, opt) => {
  62. const cookie = generateCookie(name, value, opt);
  63. c.header("Set-Cookie", cookie, { append: true });
  64. };
  65. var generateSignedCookie = async (name, value, secret, opt) => {
  66. let cookie;
  67. if (opt?.prefix === "secure") {
  68. cookie = await serializeSigned("__Secure-" + name, value, secret, {
  69. path: "/",
  70. ...opt,
  71. secure: true
  72. });
  73. } else if (opt?.prefix === "host") {
  74. cookie = await serializeSigned("__Host-" + name, value, secret, {
  75. ...opt,
  76. path: "/",
  77. secure: true,
  78. domain: void 0
  79. });
  80. } else {
  81. cookie = await serializeSigned(name, value, secret, { path: "/", ...opt });
  82. }
  83. return cookie;
  84. };
  85. var setSignedCookie = async (c, name, value, secret, opt) => {
  86. const cookie = await generateSignedCookie(name, value, secret, opt);
  87. c.header("set-cookie", cookie, { append: true });
  88. };
  89. var deleteCookie = (c, name, opt) => {
  90. const deletedCookie = getCookie(c, name, opt?.prefix);
  91. setCookie(c, name, "", { ...opt, maxAge: 0 });
  92. return deletedCookie;
  93. };
  94. export {
  95. deleteCookie,
  96. generateCookie,
  97. generateSignedCookie,
  98. getCookie,
  99. getSignedCookie,
  100. setCookie,
  101. setSignedCookie
  102. };