MCPcopy Index your code
hub / github.com/tinyplex/tinybase / useCreatePersister

Function useCreatePersister

src/ui-react/hooks.ts:2312–2355  ·  view source on GitHub ↗
(
  store: PersistedStore<Persist> | undefined,
  create: (
    store: PersistedStore<Persist>,
  ) => PersisterOrUndefined | Promise<PersisterOrUndefined>,
  createDeps: DependencyList = EMPTY_ARRAY,
  then?: (persister: Persister<Persist>) => Promise<void>,
  thenDeps: DependencyList = EMPTY_ARRAY,
  destroy?: (persister: Persister<Persist>) => void,
  destroyDeps: DependencyList = EMPTY_ARRAY,
)

Source from the content-addressed store, hash-verified

2310 );
2311
2312export const useCreatePersister: typeof useCreatePersisterDecl = <
2313 Persist extends Persists,
2314 PersisterOrUndefined extends Persister<Persist> | undefined,
2315>(
2316 store: PersistedStore<Persist> | undefined,
2317 create: (
2318 store: PersistedStore<Persist>,
2319 ) => PersisterOrUndefined | Promise<PersisterOrUndefined>,
2320 createDeps: DependencyList = EMPTY_ARRAY,
2321 then?: (persister: Persister<Persist>) => Promise<void>,
2322 thenDeps: DependencyList = EMPTY_ARRAY,
2323 destroy?: (persister: Persister<Persist>) => void,
2324 destroyDeps: DependencyList = EMPTY_ARRAY,
2325): PersisterOrUndefined => {
2326 const [, rerender] = useState<[]>();
2327 const [persister, setPersister] = useState<any>();
2328 useEffect(
2329 () => {
2330 (async () => {
2331 const persister = store ? await create(store) : undefined;
2332 setPersister(persister);
2333 if (persister && then) {
2334 (async () => {
2335 await then(persister);
2336 rerender([]);
2337 })();
2338 }
2339 })();
2340 },
2341 // eslint-disable-next-line react-hooks/exhaustive-deps
2342 [store, ...createDeps, ...thenDeps],
2343 );
2344 useEffect(
2345 () => () => {
2346 if (persister) {
2347 persister.destroy();
2348 destroy?.(persister);
2349 }
2350 },
2351 // eslint-disable-next-line react-hooks/exhaustive-deps
2352 [persister, ...destroyDeps],
2353 );
2354 return persister;
2355};
2356
2357export const usePersisterIds: typeof usePersisterIdsDecl = () =>
2358 useThingIds(OFFSET_PERSISTER);

Callers 4

TestFunction · 0.90
InspectorFunction · 0.90
PersisterFunction · 0.50
PersisterFunction · 0.50

Calls 2

destroyMethod · 0.65
destroyFunction · 0.50

Tested by 1

TestFunction · 0.72

Used in the wild real call sites across dependent graphs

searching dependent graphs…