diff options
| author | akiyamn | 2023-09-24 23:22:21 +1000 |
|---|---|---|
| committer | akiyamn | 2023-09-24 23:22:21 +1000 |
| commit | 4e87195739f2a5d9a05451b48773c8afdc680765 (patch) | |
| tree | 9cba501844a4a11dcbdffc4050ed8189561c55ed /node_modules/wrangler/templates/middleware/middleware-miniflare3-json-error.ts | |
| download | price-tracker-worker-4e87195739f2a5d9a05451b48773c8afdc680765.tar.gz price-tracker-worker-4e87195739f2a5d9a05451b48773c8afdc680765.zip | |
Initial commit (by create-cloudflare CLI)
Diffstat (limited to 'node_modules/wrangler/templates/middleware/middleware-miniflare3-json-error.ts')
| -rw-r--r-- | node_modules/wrangler/templates/middleware/middleware-miniflare3-json-error.ts | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/node_modules/wrangler/templates/middleware/middleware-miniflare3-json-error.ts b/node_modules/wrangler/templates/middleware/middleware-miniflare3-json-error.ts new file mode 100644 index 0000000..9377781 --- /dev/null +++ b/node_modules/wrangler/templates/middleware/middleware-miniflare3-json-error.ts @@ -0,0 +1,33 @@ +import type { Middleware } from "./common"; + +interface JsonError { + message?: string; + name?: string; + stack?: string; + cause?: JsonError; +} + +function reduceError(e: any): JsonError { + return { + name: e?.name, + message: e?.message ?? String(e), + stack: e?.stack, + cause: e?.cause === undefined ? undefined : reduceError(e.cause), + }; +} + +// See comment in `bundle.ts` for details on why this is needed +const jsonError: Middleware = async (request, env, _ctx, middlewareCtx) => { + try { + return await middlewareCtx.next(request, env); + } catch (e: any) { + const error = reduceError(e); + return Response.json(error, { + status: 500, + headers: { "MF-Experimental-Error-Stack": "true" }, + }); + } +}; + +export default jsonError; +export const wrap = undefined; |
