Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(useMemoize)!: rename type UseMemoizedFn to UseMemoizeReturn and new type UseMemoizeOptions #1872

Merged
merged 1 commit into from Jul 12, 2022
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
18 changes: 10 additions & 8 deletions packages/core/useMemoize/index.ts
Expand Up @@ -49,7 +49,7 @@ const getMapVue2Compat = <Value>(): UseMemoizeCache<CacheKey, Value> => {
/**
* Memoized function
*/
export interface UseMemoizedFn <Result, Args extends unknown[]> {
export interface UseMemoizeReturn <Result, Args extends unknown[]> {
/**
* Get result from cache or call memoized function
*/
Expand All @@ -76,16 +76,18 @@ export interface UseMemoizedFn <Result, Args extends unknown[]> {
cache: UseMemoizeCache<CacheKey, Result>
}

export interface UseMemoizeOptions<Result, Args extends unknown[]> {
getKey?: (...args: Args) => string
cache?: UseMemoizeCache<CacheKey, Result>
}

/**
* Reactive function result cache based on arguments
*/
export function useMemoize<Result, Args extends unknown[]>(
resolver: (...args: Args) => Result,
options?: {
getKey?: (...args: Args) => string
cache?: UseMemoizeCache<CacheKey, Result>
},
): UseMemoizedFn<Result, Args> {
options?: UseMemoizeOptions<Result, Args>,
): UseMemoizeReturn<Result, Args> {
const initCache = (): UseMemoizeCache<CacheKey, Result> => {
if (options?.cache)
return reactive(options.cache)
Expand Down Expand Up @@ -127,7 +129,7 @@ export function useMemoize<Result, Args extends unknown[]>(
cache.clear()
}

const memoized: Partial<UseMemoizedFn<Result, Args>> = (...args: Args): Result => {
const memoized: Partial<UseMemoizeReturn<Result, Args>> = (...args: Args): Result => {
// Get data from cache
const key = generateKey(...args)
if (cache.has(key))
Expand All @@ -140,5 +142,5 @@ export function useMemoize<Result, Args extends unknown[]>(
memoized.generateKey = generateKey
memoized.cache = cache

return memoized as UseMemoizedFn<Result, Args>
return memoized as UseMemoizeReturn<Result, Args>
}