diff --git a/bun.lockb b/bun.lockb index dfe3657..e4c9990 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000..9ffce1a Binary files /dev/null and b/favicon.ico differ diff --git a/package.json b/package.json index dbb6616..314b27d 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "type": "module", "scripts": { "prepare": "panda codegen", - "update-deps": "taze -I", + "update-deps": "taze -f -I", "build": "remix vite:build", "build-sourcemaps": "remix vite:build --config ./vite-sourcemaps.config.ts", "upload-sourcemaps": "bun ./src/build/upload-sourcemaps.ts", @@ -20,7 +20,7 @@ "sync-icons": "bun generateReadmeIcons -h 50" }, "dependencies": { - "@effect/platform": "^0.71.6", + "@effect/platform": "^0.72.0", "@remix-run/css-bundle": "^2.15.2", "@remix-run/node": "^2.15.2", "@remix-run/react": "^2.15.2", @@ -29,9 +29,9 @@ "cacheable": "^1.8.6", "comment-json": "^4.2.5", "date-fns": "^4.1.0", - "effect": "^3.11.9", - "effect-cloudflare-r2-layer": "^1.0.38", - "effect-errors": "^1.7.45", + "effect": "^3.12.0", + "effect-cloudflare-r2-layer": "^1.0.43", + "effect-errors": "^1.8.4", "framer-motion": "^11.15.0", "highlight.js": "^11.11.0", "isbot": "^5.1.18", @@ -43,7 +43,7 @@ }, "devDependencies": { "@biomejs/biome": "^1.9.4", - "@iconify/json": "^2.2.287", + "@iconify/json": "^2.2.288", "@pandacss/dev": "^0.49.0", "@remix-run/dev": "^2.15.2", "@svgr/core": "^8.1.0", diff --git a/src/server/loader/logic/collect-error-details/index.ts b/src/server/loader/logic/collect-error-details/index.ts index fae9d75..049dc14 100644 --- a/src/server/loader/logic/collect-error-details/index.ts +++ b/src/server/loader/logic/collect-error-details/index.ts @@ -1,7 +1,7 @@ import { FetchHttpClient } from '@effect/platform'; import { NodeFileSystem } from '@effect/platform-node'; import { Effect, Layer, pipe } from 'effect'; -import { captureErrors, prettyPrint } from 'effect-errors'; +import { captureErrors, prettyPrintFromCapturedErrors } from 'effect-errors'; import type { Cause } from 'effect/Cause'; import { getErrorSourcesFromMapFile } from './logic/get-error-sources-from-map-file'; @@ -9,14 +9,20 @@ import { getErrorSourcesFromMapFile } from './logic/get-error-sources-from-map-f export const collectErrorDetails = (cause: Cause) => pipe( Effect.gen(function* () { + const captured = yield* captureErrors(cause, {}); + // Serverside logging - const errorsText = prettyPrint(cause, { stripCwd: false }); + const errorsText = prettyPrintFromCapturedErrors(captured, { + stripCwd: true, + hideStackTrace: true, + reverseSpans: true, + }); console.error(errorsText); - const { errors } = yield* captureErrors(cause, {}); - - if (errors.every((e) => e.location !== undefined)) { - const errorsWithSources = yield* getErrorSourcesFromMapFile(errors); + if (captured.errors.every((e) => e.location !== undefined)) { + const errorsWithSources = yield* getErrorSourcesFromMapFile( + captured.errors, + ); return yield* Effect.succeed({ _tag: 'effect-post-mapped-errors' as const, @@ -26,7 +32,7 @@ export const collectErrorDetails = (cause: Cause) => return yield* Effect.succeed({ _tag: 'effect-natively-mapped-errors' as const, - errors, + errors: captured.errors, }); }), Effect.scoped, diff --git a/src/server/remote-resources/get-map-file-from-r2.ts b/src/server/remote-resources/get-map-file-from-r2.ts index 576ecbf..5639961 100644 --- a/src/server/remote-resources/get-map-file-from-r2.ts +++ b/src/server/remote-resources/get-map-file-from-r2.ts @@ -1,5 +1,4 @@ -import { FetchHttpClient } from '@effect/platform'; -import { Effect, Layer, pipe } from 'effect'; +import { Effect, pipe } from 'effect'; import { CloudflareR2StorageLayerLive, FileStorageLayer, @@ -22,9 +21,6 @@ export const getMapFileFromR2 = (branchName: string) => 'remix-effect-errors', `build/server/${branchName}/index.js.map`, ), - Effect.scoped, - Effect.provide( - Layer.mergeAll(CloudflareR2StorageLayerLive, FetchHttpClient.layer), - ), + Effect.provide(CloudflareR2StorageLayerLive), Effect.withSpan('get-map-file-from-r2', { attributes: { branchName } }), );