diff --git a/.changeset/real-cats-rest.md b/.changeset/real-cats-rest.md new file mode 100644 index 000000000..95a955278 --- /dev/null +++ b/.changeset/real-cats-rest.md @@ -0,0 +1,6 @@ +--- +"@stackflow/react": major +"@stackflow/config": major +--- + +Remove data loader cache diff --git a/config/src/ActivityLoader.ts b/config/src/ActivityLoader.ts index fcf56c403..78b9239cb 100644 --- a/config/src/ActivityLoader.ts +++ b/config/src/ActivityLoader.ts @@ -1,19 +1,12 @@ import type { ActivityLoaderArgs } from "./ActivityLoaderArgs"; import type { RegisteredActivityName } from "./RegisteredActivityName"; -export type ActivityLoader = { - (args: ActivityLoaderArgs): any; - loaderCacheMaxAge?: number; -}; +export type ActivityLoader = ( + args: ActivityLoaderArgs, +) => any; export function loader( loaderFn: (args: ActivityLoaderArgs) => any, - options?: { - loaderCacheMaxAge?: number; - }, ): ActivityLoader { - return Object.assign( - (args: ActivityLoaderArgs) => loaderFn(args), - options, - ); + return (args: ActivityLoaderArgs) => loaderFn(args); } diff --git a/integrations/react/src/future/stackflow.tsx b/integrations/react/src/future/stackflow.tsx index 99c5ee329..be92c9c4a 100644 --- a/integrations/react/src/future/stackflow.tsx +++ b/integrations/react/src/future/stackflow.tsx @@ -50,8 +50,6 @@ export type StackflowOutput = { stepActions: StepActions; }; -const DEFAULT_LOADER_CACHE_MAX_AGE = 1000 * 30; - export function stackflow< T extends ActivityDefinition, R extends { @@ -60,17 +58,7 @@ export function stackflow< >; }, >(input: StackflowInput): StackflowOutput { - const loaderDataCacheMap = new Map(); const loadData = (activityName: string, activityParams: {}) => { - const cache = loaderDataCacheMap.get(activityName); - const cacheEntry = cache?.find((entry) => - isEqual(entry.params, activityParams), - ); - - if (cacheEntry) { - return cacheEntry.data; - } - const activityConfig = input.config.activities.find( (activity) => activity.name === activityName, ); @@ -83,40 +71,6 @@ export function stackflow< params: activityParams, config: input.config, }); - const newCacheEntry = { - params: activityParams, - data: loaderData, - }; - - if (cache) { - cache.push(newCacheEntry); - } else { - loaderDataCacheMap.set(activityName, [newCacheEntry]); - } - - const clearCache = () => { - const cache = loaderDataCacheMap.get(activityName); - - if (!cache) return; - - loaderDataCacheMap.set( - activityName, - cache.filter((entry) => entry !== newCacheEntry), - ); - }; - const clearCacheAfterMaxAge = () => { - setTimeout( - clearCache, - activityConfig.loader?.loaderCacheMaxAge ?? - DEFAULT_LOADER_CACHE_MAX_AGE, - ); - }; - - Promise.resolve(loaderData).then(clearCacheAfterMaxAge, (error) => { - clearCache(); - - throw error; - }); return loaderData; };