alien-middleware 0.6.0 → 0.6.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.
@@ -0,0 +1,18 @@
1
+ // src/url.ts
2
+ var urlDescriptor = {
3
+ configurable: true,
4
+ get() {
5
+ const url = new URL(this.request.url);
6
+ Object.defineProperty(this, "url", { value: url });
7
+ return url;
8
+ }
9
+ };
10
+ function defineParsedURL(context) {
11
+ if (!("url" in context)) {
12
+ Object.defineProperty(context, "url", urlDescriptor);
13
+ }
14
+ }
15
+
16
+ export {
17
+ defineParsedURL
18
+ };
package/dist/index.js CHANGED
@@ -1,16 +1,12 @@
1
+ import {
2
+ defineParsedURL
3
+ } from "./chunk-DEWCXAOT.js";
4
+
1
5
  // src/index.ts
2
6
  var kRequestChain = Symbol("requestChain");
3
7
  var kResponseChain = Symbol("responseChain");
4
8
  var kIgnoreNotFound = Symbol("ignoreNotFound");
5
9
  var kMiddlewareCache = Symbol("middlewareCache");
6
- var urlDescriptor = {
7
- configurable: true,
8
- get() {
9
- const url = new URL(this.request.url);
10
- Object.defineProperty(this, "url", { value: url });
11
- return url;
12
- }
13
- };
14
10
  var MiddlewareChain = class _MiddlewareChain {
15
11
  [kRequestChain] = [];
16
12
  [kResponseChain] = [];
@@ -53,9 +49,7 @@ function createHandler(requestChain, responseChain) {
53
49
  async function handler(parentContext) {
54
50
  const context = Object.create(parentContext);
55
51
  context[kIgnoreNotFound] = true;
56
- if (!("url" in context)) {
57
- Object.defineProperty(context, "url", urlDescriptor);
58
- }
52
+ defineParsedURL(context);
59
53
  const cache = context[kMiddlewareCache] ||= /* @__PURE__ */ new Set();
60
54
  let response;
61
55
  let env;
@@ -74,11 +68,14 @@ function createHandler(requestChain, responseChain) {
74
68
  break;
75
69
  }
76
70
  for (const key in result) {
77
- const descriptor = Object.getOwnPropertyDescriptor(result, key);
78
71
  if (key === "env") {
79
72
  env ||= createExtendedEnv(context);
80
- Object.defineProperty(env, key, descriptor);
73
+ Object.defineProperties(
74
+ env,
75
+ Object.getOwnPropertyDescriptors(result.env)
76
+ );
81
77
  } else {
78
+ const descriptor = Object.getOwnPropertyDescriptor(result, key);
82
79
  descriptor.configurable = false;
83
80
  Object.defineProperty(context, key, descriptor);
84
81
  }
package/dist/router.js CHANGED
@@ -1,12 +1,12 @@
1
+ import {
2
+ defineParsedURL
3
+ } from "./chunk-DEWCXAOT.js";
4
+
1
5
  // src/router.ts
2
6
  import { compilePaths } from "pathic";
3
7
 
4
8
  // node_modules/.pnpm/radashi@12.5.0-beta.6d5c035/node_modules/radashi/dist/radashi.js
5
9
  var isArray = /* @__PURE__ */ (() => Array.isArray)();
6
- var asyncIteratorSymbol = (
7
- /* c8 ignore next */
8
- Symbol.asyncIterator || Symbol.for("Symbol.asyncIterator")
9
- );
10
10
  function isFunction(value) {
11
11
  return typeof value === "function";
12
12
  }
@@ -16,6 +16,7 @@ function routes(middlewares) {
16
16
  const paths = [];
17
17
  const filters = [];
18
18
  const handlers = [];
19
+ let matcher;
19
20
  function use(method, path, handler) {
20
21
  if (isFunction(path)) {
21
22
  paths.push(method);
@@ -28,13 +29,15 @@ function routes(middlewares) {
28
29
  );
29
30
  handlers.push(handler);
30
31
  }
32
+ matcher = void 0;
31
33
  return router;
32
34
  }
33
- let matcher;
34
35
  function router(context) {
36
+ defineParsedURL(context);
37
+ const { request, url } = context;
38
+ const method = request.method;
35
39
  matcher ||= compilePaths(paths);
36
- const method = context.request.method;
37
- return matcher(context.request.path, (index, params) => {
40
+ return matcher(url.pathname, (index, params) => {
38
41
  if (!filters[index] || filters[index](method)) {
39
42
  context.method = method;
40
43
  context.params = params;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "alien-middleware",
3
3
  "type": "module",
4
- "version": "0.6.0",
4
+ "version": "0.6.1",
5
5
  "exports": {
6
6
  ".": {
7
7
  "types": "./dist/index.d.ts",
@@ -29,6 +29,7 @@
29
29
  "@alloc/prettier-config": "^1.0.0",
30
30
  "@hattip/core": "^0.0.49",
31
31
  "@types/node": "^22.15.3",
32
+ "@vitest/coverage-v8": "^3.1.3",
32
33
  "prettier": "^3.5.3",
33
34
  "radashi": "12.5.0-beta.6d5c035",
34
35
  "rimraf": "^6.0.1",