@mokup/runtime 0.1.1 → 1.0.0

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/dist/index.cjs CHANGED
@@ -216,7 +216,7 @@ function normalizeRules(value) {
216
216
  if (typeof value === "function") {
217
217
  return [
218
218
  {
219
- response: value
219
+ handler: value
220
220
  }
221
221
  ];
222
222
  }
@@ -225,7 +225,7 @@ function normalizeRules(value) {
225
225
  }
226
226
  return [
227
227
  {
228
- response: value
228
+ handler: value
229
229
  }
230
230
  ];
231
231
  }
@@ -233,7 +233,7 @@ async function executeRule(rule, context) {
233
233
  if (!rule) {
234
234
  return void 0;
235
235
  }
236
- const value = rule.response;
236
+ const value = rule.handler;
237
237
  if (typeof value === "function") {
238
238
  const handler = value;
239
239
  return handler(context);
@@ -474,6 +474,18 @@ function applyRouteOverrides(response, route) {
474
474
  }
475
475
  return new Response(response.body, { status, headers });
476
476
  }
477
+ function resolveResponse(value, fallback) {
478
+ if (value instanceof Response) {
479
+ return value;
480
+ }
481
+ if (value && typeof value === "object" && "res" in value) {
482
+ const resolved = value.res;
483
+ if (resolved instanceof Response) {
484
+ return resolved;
485
+ }
486
+ }
487
+ return fallback;
488
+ }
477
489
  function normalizeHandlerValue(c, value) {
478
490
  if (value instanceof Response) {
479
491
  return value;
@@ -530,11 +542,13 @@ function createRouteHandler(params) {
530
542
  function createFinalizeMiddleware(route) {
531
543
  return async (c, next) => {
532
544
  const response = await next();
533
- const resolved = response ?? c.res;
545
+ const resolved = resolveResponse(response, c.res);
534
546
  if (route.delay && route.delay > 0) {
535
547
  await delay(route.delay);
536
548
  }
537
- return applyRouteOverrides(resolved, route);
549
+ const overridden = applyRouteOverrides(resolved, route);
550
+ c.res = overridden;
551
+ return overridden;
538
552
  };
539
553
  }
540
554
  async function buildApp(params) {
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- import { Context, MiddlewareHandler, Hono } from '@mokup/shared/hono';
2
- export { handle } from '@mokup/shared/hono';
1
+ import { Context, Hono } from '@mokup/shared/hono';
2
+ export { Context, MiddlewareHandler, handle } from '@mokup/shared/hono';
3
3
 
4
4
  type RouteToken = {
5
5
  type: 'static';
@@ -78,9 +78,9 @@ interface RuntimeResult {
78
78
  headers: Record<string, string>;
79
79
  body: string | Uint8Array | null;
80
80
  }
81
- type MockContext = Context;
82
- type MockMiddleware = MiddlewareHandler;
83
- type MockResponseHandler = (context: Context) => Response | Promise<Response> | unknown;
81
+ type RequestHandler = (context: Context) => Response | Promise<Response> | unknown;
82
+ type RouteResponse = unknown | RequestHandler;
83
+
84
84
  interface RuntimeOptions {
85
85
  manifest: Manifest | (() => Promise<Manifest>);
86
86
  moduleBase?: string | URL;
@@ -94,4 +94,4 @@ declare function createRuntime(options: RuntimeOptions): {
94
94
  };
95
95
 
96
96
  export { compareRouteScore, createRuntime, createRuntimeApp, matchRouteTokens, normalizePathname, parseRouteTemplate, scoreRouteTokens };
97
- export type { HttpMethod, Manifest, ManifestModuleRef, ManifestResponse, ManifestRoute, MockContext, MockMiddleware, MockResponseHandler, ModuleMap, ParsedRouteTemplate, RouteToken, RuntimeOptions, RuntimeRequest, RuntimeResult };
97
+ export type { HttpMethod, Manifest, ManifestModuleRef, ManifestResponse, ManifestRoute, ModuleMap, ParsedRouteTemplate, RequestHandler, RouteResponse, RouteToken, RuntimeOptions, RuntimeRequest, RuntimeResult };
package/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
- import { Context, MiddlewareHandler, Hono } from '@mokup/shared/hono';
2
- export { handle } from '@mokup/shared/hono';
1
+ import { Context, Hono } from '@mokup/shared/hono';
2
+ export { Context, MiddlewareHandler, handle } from '@mokup/shared/hono';
3
3
 
4
4
  type RouteToken = {
5
5
  type: 'static';
@@ -78,9 +78,9 @@ interface RuntimeResult {
78
78
  headers: Record<string, string>;
79
79
  body: string | Uint8Array | null;
80
80
  }
81
- type MockContext = Context;
82
- type MockMiddleware = MiddlewareHandler;
83
- type MockResponseHandler = (context: Context) => Response | Promise<Response> | unknown;
81
+ type RequestHandler = (context: Context) => Response | Promise<Response> | unknown;
82
+ type RouteResponse = unknown | RequestHandler;
83
+
84
84
  interface RuntimeOptions {
85
85
  manifest: Manifest | (() => Promise<Manifest>);
86
86
  moduleBase?: string | URL;
@@ -94,4 +94,4 @@ declare function createRuntime(options: RuntimeOptions): {
94
94
  };
95
95
 
96
96
  export { compareRouteScore, createRuntime, createRuntimeApp, matchRouteTokens, normalizePathname, parseRouteTemplate, scoreRouteTokens };
97
- export type { HttpMethod, Manifest, ManifestModuleRef, ManifestResponse, ManifestRoute, MockContext, MockMiddleware, MockResponseHandler, ModuleMap, ParsedRouteTemplate, RouteToken, RuntimeOptions, RuntimeRequest, RuntimeResult };
97
+ export type { HttpMethod, Manifest, ManifestModuleRef, ManifestResponse, ManifestRoute, ModuleMap, ParsedRouteTemplate, RequestHandler, RouteResponse, RouteToken, RuntimeOptions, RuntimeRequest, RuntimeResult };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { Context, MiddlewareHandler, Hono } from '@mokup/shared/hono';
2
- export { handle } from '@mokup/shared/hono';
1
+ import { Context, Hono } from '@mokup/shared/hono';
2
+ export { Context, MiddlewareHandler, handle } from '@mokup/shared/hono';
3
3
 
4
4
  type RouteToken = {
5
5
  type: 'static';
@@ -78,9 +78,9 @@ interface RuntimeResult {
78
78
  headers: Record<string, string>;
79
79
  body: string | Uint8Array | null;
80
80
  }
81
- type MockContext = Context;
82
- type MockMiddleware = MiddlewareHandler;
83
- type MockResponseHandler = (context: Context) => Response | Promise<Response> | unknown;
81
+ type RequestHandler = (context: Context) => Response | Promise<Response> | unknown;
82
+ type RouteResponse = unknown | RequestHandler;
83
+
84
84
  interface RuntimeOptions {
85
85
  manifest: Manifest | (() => Promise<Manifest>);
86
86
  moduleBase?: string | URL;
@@ -94,4 +94,4 @@ declare function createRuntime(options: RuntimeOptions): {
94
94
  };
95
95
 
96
96
  export { compareRouteScore, createRuntime, createRuntimeApp, matchRouteTokens, normalizePathname, parseRouteTemplate, scoreRouteTokens };
97
- export type { HttpMethod, Manifest, ManifestModuleRef, ManifestResponse, ManifestRoute, MockContext, MockMiddleware, MockResponseHandler, ModuleMap, ParsedRouteTemplate, RouteToken, RuntimeOptions, RuntimeRequest, RuntimeResult };
97
+ export type { HttpMethod, Manifest, ManifestModuleRef, ManifestResponse, ManifestRoute, ModuleMap, ParsedRouteTemplate, RequestHandler, RouteResponse, RouteToken, RuntimeOptions, RuntimeRequest, RuntimeResult };
package/dist/index.mjs CHANGED
@@ -215,7 +215,7 @@ function normalizeRules(value) {
215
215
  if (typeof value === "function") {
216
216
  return [
217
217
  {
218
- response: value
218
+ handler: value
219
219
  }
220
220
  ];
221
221
  }
@@ -224,7 +224,7 @@ function normalizeRules(value) {
224
224
  }
225
225
  return [
226
226
  {
227
- response: value
227
+ handler: value
228
228
  }
229
229
  ];
230
230
  }
@@ -232,7 +232,7 @@ async function executeRule(rule, context) {
232
232
  if (!rule) {
233
233
  return void 0;
234
234
  }
235
- const value = rule.response;
235
+ const value = rule.handler;
236
236
  if (typeof value === "function") {
237
237
  const handler = value;
238
238
  return handler(context);
@@ -473,6 +473,18 @@ function applyRouteOverrides(response, route) {
473
473
  }
474
474
  return new Response(response.body, { status, headers });
475
475
  }
476
+ function resolveResponse(value, fallback) {
477
+ if (value instanceof Response) {
478
+ return value;
479
+ }
480
+ if (value && typeof value === "object" && "res" in value) {
481
+ const resolved = value.res;
482
+ if (resolved instanceof Response) {
483
+ return resolved;
484
+ }
485
+ }
486
+ return fallback;
487
+ }
476
488
  function normalizeHandlerValue(c, value) {
477
489
  if (value instanceof Response) {
478
490
  return value;
@@ -529,11 +541,13 @@ function createRouteHandler(params) {
529
541
  function createFinalizeMiddleware(route) {
530
542
  return async (c, next) => {
531
543
  const response = await next();
532
- const resolved = response ?? c.res;
544
+ const resolved = resolveResponse(response, c.res);
533
545
  if (route.delay && route.delay > 0) {
534
546
  await delay(route.delay);
535
547
  }
536
- return applyRouteOverrides(resolved, route);
548
+ const overridden = applyRouteOverrides(resolved, route);
549
+ c.res = overridden;
550
+ return overridden;
537
551
  };
538
552
  }
539
553
  async function buildApp(params) {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mokup/runtime",
3
3
  "type": "module",
4
- "version": "0.1.1",
4
+ "version": "1.0.0",
5
5
  "description": "Cross-runtime mock matching and response handling for mokup.",
6
6
  "license": "MIT",
7
7
  "homepage": "https://mokup.icebreaker.top",
@@ -27,7 +27,7 @@
27
27
  "dist"
28
28
  ],
29
29
  "dependencies": {
30
- "@mokup/shared": "0.1.0"
30
+ "@mokup/shared": "1.0.0"
31
31
  },
32
32
  "devDependencies": {
33
33
  "typescript": "^5.9.3",