h3 0.4.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -116,11 +116,12 @@ Instead of adding helpers to `req` and `res`, h3 exposes them as composable util
116
116
  - `useCookies(req)`
117
117
  - `useCookie(req, name)`
118
118
  - `setCookie(res, name, value, opts?)`
119
+ - `deleteCookie(res, name, opts?)`
119
120
  - `useQuery(req)`
120
121
  - `send(res, data, type?)`
121
122
  - `sendRedirect(res, location, code=302)`
122
123
  - `appendHeader(res, name, value)`
123
- - `createError({ statusCode, statusMessage, data? }`
124
+ - `createError({ statusCode, statusMessage, data? })`
124
125
  - `sendError(res, error, debug?)`
125
126
  - `defineHandle(handle)`
126
127
  - `defineMiddleware(middlware)`
package/dist/index.cjs CHANGED
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  const ufo = require('ufo');
6
6
  const radix3 = require('radix3');
7
7
  const destr = require('destr');
8
- const cookie = require('cookie');
8
+ const cookieEs = require('cookie-es');
9
9
 
10
10
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e["default"] : e; }
11
11
 
@@ -161,15 +161,21 @@ function appendHeader(res, name, value) {
161
161
  }
162
162
 
163
163
  function useCookies(req) {
164
- return cookie.parse(req.headers.cookie || "");
164
+ return cookieEs.parse(req.headers.cookie || "");
165
165
  }
166
166
  function useCookie(req, name) {
167
167
  return useCookies(req)[name];
168
168
  }
169
169
  function setCookie(res, name, value, serializeOptions) {
170
- const cookieStr = cookie.serialize(name, value, serializeOptions);
170
+ const cookieStr = cookieEs.serialize(name, value, serializeOptions);
171
171
  appendHeader(res, "Set-Cookie", cookieStr);
172
172
  }
173
+ function deleteCookie(res, name, serializeOptions) {
174
+ setCookie(res, name, "", {
175
+ ...serializeOptions,
176
+ maxAge: 0
177
+ });
178
+ }
173
179
 
174
180
  class H3Error extends Error {
175
181
  constructor() {
@@ -274,7 +280,7 @@ function createHandle(stack, options) {
274
280
  const type = typeof val;
275
281
  if (type === "string") {
276
282
  return send(res, val, MIMES.html);
277
- } else if (type === "object" && val !== void 0) {
283
+ } else if (type === "object" || type === "boolean" || type === "number") {
278
284
  if (val && val.buffer) {
279
285
  return send(res, val);
280
286
  } else if (val instanceof Error) {
@@ -353,6 +359,7 @@ exports.createRouter = createRouter;
353
359
  exports.defaultContentType = defaultContentType;
354
360
  exports.defineHandle = defineHandle;
355
361
  exports.defineMiddleware = defineMiddleware;
362
+ exports.deleteCookie = deleteCookie;
356
363
  exports.isMethod = isMethod;
357
364
  exports.lazyHandle = lazyHandle;
358
365
  exports.promisifyHandle = promisifyHandle;
package/dist/index.d.ts CHANGED
@@ -232,6 +232,16 @@ declare function useCookie(req: IncomingMessage, name: string): string | undefin
232
232
  * ```
233
233
  */
234
234
  declare function setCookie(res: ServerResponse, name: string, value: string, serializeOptions?: CookieSerializeOptions): void;
235
+ /**
236
+ * Set a cookie value by name.
237
+ * @param res {ServerResponse} A ServerResponse object created by [http.Server](https://nodejs.org/api/http.html#http_class_http_server)
238
+ * @param name Name of the cookie to delete
239
+ * @param serializeOptions {CookieSerializeOptions} Cookie options
240
+ * ```ts
241
+ * deleteCookie(res, 'SessionId')
242
+ * ```
243
+ */
244
+ declare function deleteCookie(res: ServerResponse, name: string, serializeOptions?: CookieSerializeOptions): void;
235
245
 
236
246
  declare type HTTPMethod = 'GET' | 'HEAD' | 'POST' | 'PUT' | 'DELETE' | 'CONNECT' | 'OPTIONS' | 'TRACE';
237
247
 
@@ -257,4 +267,4 @@ interface Router extends AddRouteShortcuts {
257
267
  }
258
268
  declare function createRouter(): Router;
259
269
 
260
- export { AddRouteShortcuts, AddWithMethod, App, AppOptions, AppUse, H3Error, Handle, HandleWithParams, InputLayer, InputStack, Layer, LazyHandle, MIMES, Matcher, Middleware, PHandle, Router, RouterMethod, Stack, appendHeader, assertMethod, callHandle, createApp, createError, createHandle, createRouter, defaultContentType, defineHandle, defineMiddleware, isMethod, lazyHandle, promisifyHandle, send, sendError, sendRedirect, setCookie, use, useBase, useBody, useCookie, useCookies, useMethod, useQuery, useRawBody };
270
+ export { AddRouteShortcuts, AddWithMethod, App, AppOptions, AppUse, H3Error, Handle, HandleWithParams, InputLayer, InputStack, Layer, LazyHandle, MIMES, Matcher, Middleware, PHandle, Router, RouterMethod, Stack, appendHeader, assertMethod, callHandle, createApp, createError, createHandle, createRouter, defaultContentType, defineHandle, defineMiddleware, deleteCookie, isMethod, lazyHandle, promisifyHandle, send, sendError, sendRedirect, setCookie, use, useBase, useBody, useCookie, useCookies, useMethod, useQuery, useRawBody };
package/dist/index.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import { withoutTrailingSlash, withoutBase, getQuery } from 'ufo';
2
2
  import { createRouter as createRouter$1 } from 'radix3';
3
3
  import destr from 'destr';
4
- import { parse, serialize } from 'cookie';
4
+ import { parse, serialize } from 'cookie-es';
5
5
 
6
6
  const defineHandle = (handler) => handler;
7
7
  const defineMiddleware = (middleware) => middleware;
@@ -162,6 +162,12 @@ function setCookie(res, name, value, serializeOptions) {
162
162
  const cookieStr = serialize(name, value, serializeOptions);
163
163
  appendHeader(res, "Set-Cookie", cookieStr);
164
164
  }
165
+ function deleteCookie(res, name, serializeOptions) {
166
+ setCookie(res, name, "", {
167
+ ...serializeOptions,
168
+ maxAge: 0
169
+ });
170
+ }
165
171
 
166
172
  class H3Error extends Error {
167
173
  constructor() {
@@ -266,7 +272,7 @@ function createHandle(stack, options) {
266
272
  const type = typeof val;
267
273
  if (type === "string") {
268
274
  return send(res, val, MIMES.html);
269
- } else if (type === "object" && val !== void 0) {
275
+ } else if (type === "object" || type === "boolean" || type === "number") {
270
276
  if (val && val.buffer) {
271
277
  return send(res, val);
272
278
  } else if (val instanceof Error) {
@@ -333,4 +339,4 @@ function createRouter() {
333
339
  return router;
334
340
  }
335
341
 
336
- export { H3Error, MIMES, appendHeader, assertMethod, callHandle, createApp, createError, createHandle, createRouter, defaultContentType, defineHandle, defineMiddleware, isMethod, lazyHandle, promisifyHandle, send, sendError, sendRedirect, setCookie, use, useBase, useBody, useCookie, useCookies, useMethod, useQuery, useRawBody };
342
+ export { H3Error, MIMES, appendHeader, assertMethod, callHandle, createApp, createError, createHandle, createRouter, defaultContentType, defineHandle, defineMiddleware, deleteCookie, isMethod, lazyHandle, promisifyHandle, send, sendError, sendRedirect, setCookie, use, useBase, useBody, useCookie, useCookies, useMethod, useQuery, useRawBody };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "h3",
3
- "version": "0.4.0",
3
+ "version": "0.4.1",
4
4
  "description": "Tiny JavaScript Server",
5
5
  "repository": "unjs/h3",
6
6
  "license": "MIT",
@@ -26,7 +26,7 @@
26
26
  "test": "vitest run"
27
27
  },
28
28
  "dependencies": {
29
- "cookie": "^0.4.2",
29
+ "cookie-es": "^0.5.0",
30
30
  "destr": "^1.1.0",
31
31
  "radix3": "^0.1.1",
32
32
  "ufo": "^0.7.11"
@@ -41,7 +41,6 @@
41
41
  "autocannon": "latest",
42
42
  "c8": "latest",
43
43
  "connect": "latest",
44
- "cookie-es": "latest",
45
44
  "eslint": "latest",
46
45
  "express": "latest",
47
46
  "get-port": "^5.0.0",