From c39f4c912fbdb2429496353b42b58445ead8055f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Mon, 11 Aug 2025 07:26:19 +0200 Subject: [PATCH] Fix --- packages/effect-fc/src/Memo.ts | 5 ++++- packages/effect-fc/src/Suspense.ts | 5 ++++- packages/example/src/routes/dev/memo.tsx | 8 ++------ 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/packages/effect-fc/src/Memo.ts b/packages/effect-fc/src/Memo.ts index 4b25df7..7abf319 100644 --- a/packages/effect-fc/src/Memo.ts +++ b/packages/effect-fc/src/Memo.ts @@ -27,7 +27,10 @@ export const memo = >( self: T ): T & Memo> => Object.setPrototypeOf( Object.assign(function() {}, self), - Object.freeze({ ...Object.getPrototypeOf(self), ...MemoProto }), + Object.freeze(Object.setPrototypeOf( + Object.assign({}, MemoProto), + Object.getPrototypeOf(self), + )), ) export const withOptions: { diff --git a/packages/effect-fc/src/Suspense.ts b/packages/effect-fc/src/Suspense.ts index 3a906eb..c04df69 100644 --- a/packages/effect-fc/src/Suspense.ts +++ b/packages/effect-fc/src/Suspense.ts @@ -59,7 +59,10 @@ export const suspense = >( & Suspense ) => Object.setPrototypeOf( Object.assign(function() {}, self), - Object.freeze({ ...Object.getPrototypeOf(self), ...SuspenseProto }), + Object.freeze(Object.setPrototypeOf( + Object.assign({}, SuspenseProto), + Object.getPrototypeOf(self), + )), ) export const withOptions: { diff --git a/packages/example/src/routes/dev/memo.tsx b/packages/example/src/routes/dev/memo.tsx index cdd798b..4413107 100644 --- a/packages/example/src/routes/dev/memo.tsx +++ b/packages/example/src/routes/dev/memo.tsx @@ -25,16 +25,12 @@ const RouteComponent = Component.makeUntraced(function* RouteComponent() { Component.withRuntime(runtime.context) ) -const SubComponent = Component.makeUntraced(function* SubComponent() { +class SubComponent extends Component.makeUntraced(function* SubComponent() { const id = yield* makeUuid4.pipe(Effect.provide(GetRandomValues.CryptoRandom)) return {id} -}) +}) {} class MemoizedSubComponent extends Memo.memo(SubComponent) {} -console.log(MemoizedSubComponent.prototype) - -// console.log(Object.getPrototypeOf(SubComponent)) -// console.log(Object.getPrototypeOf(MemoizedSubComponent)) export const Route = createFileRoute("/dev/memo")({ component: RouteComponent,