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), Object.getPrototypeOf(self),
) )
export const memoWithEquivalence: { export const memoWithOptions: {
<T extends Component<any, any, any>>( <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>>> self: ExcludeKeys<T, keyof Memoized<Component.Props<T>>>
) => T & Memoized<Component.Props<T>> ) => T & Memoized<Component.Props<T>>
<T extends Component<any, any, any>>( <T extends Component<any, any, any>>(
self: ExcludeKeys<T, keyof Memoized<Component.Props<T>>>, 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>> ): T & Memoized<Component.Props<T>>
} = Function.dual(2, <T extends Component<any, any, any>>( } = Function.dual(2, <T extends Component<any, any, any>>(
self: ExcludeKeys<T, keyof Memoized<Component.Props<T>>>, 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( ): T & Memoized<Component.Props<T>> => Object.setPrototypeOf(
{ ...self, memo: true, memoOptions: { propsAreEqual } }, { ...self, memo: true, memoOptions },
Object.getPrototypeOf(self), Object.getPrototypeOf(self),
)) ))