0.1.2 #3

Merged
Thilawyn merged 28 commits from next into master 2025-07-23 21:28:25 +02:00
Showing only changes of commit c9df6e7a88 - Show all commits

View File

@@ -370,21 +370,21 @@ export const memo = <T extends Component<any, any, any>>(
Object.getPrototypeOf(self),
)
export const memoWithEquivalence: {
export const memoWithOptions: {
<T extends Component<any, any, any>>(
propsAreEqual: Equivalence.Equivalence<Component.Props<T>>
memoOptions: Partial<Memoized.Options<Component.Props<T>>>
): (
self: ExcludeKeys<T, keyof Memoized<Component.Props<T>>>
) => T & Memoized<Component.Props<T>>
<T extends Component<any, any, any>>(
self: ExcludeKeys<T, keyof Memoized<Component.Props<T>>>,
propsAreEqual: Equivalence.Equivalence<Component.Props<T>>,
memoOptions: Partial<Memoized.Options<Component.Props<T>>>,
): T & Memoized<Component.Props<T>>
} = Function.dual(2, <T extends Component<any, any, any>>(
self: ExcludeKeys<T, keyof Memoized<Component.Props<T>>>,
propsAreEqual: Equivalence.Equivalence<Component.Props<T>>,
memoOptions: Partial<Memoized.Options<Component.Props<T>>>,
): T & Memoized<Component.Props<T>> => Object.setPrototypeOf(
{ ...self, memo: true, memoOptions: { propsAreEqual } },
{ ...self, memo: true, memoOptions },
Object.getPrototypeOf(self),
))