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

Function useCreatePersister

src/ui-solid/primitives.ts:1926–1970  ·  view source on GitHub ↗
(
  store: MaybeAccessor<PersistedStore<Persist> | undefined>,
  create: (
    store: PersistedStore<Persist>,
  ) => PersisterOrUndefined | Promise<PersisterOrUndefined>,
  then?: (persister: Persister<Persist>) => Promise<void>,
  destroy?: (persister: Persister<Persist>) => void,
)

Source from the content-addressed store, hash-verified

1924 );
1925
1926export const useCreatePersister = <
1927 Persist extends Persists,
1928 PersisterOrUndefined extends Persister<Persist> | undefined,
1929>(
1930 store: MaybeAccessor<PersistedStore<Persist> | undefined>,
1931 create: (
1932 store: PersistedStore<Persist>,
1933 ) => PersisterOrUndefined | Promise<PersisterOrUndefined>,
1934 then?: (persister: Persister<Persist>) => Promise<void>,
1935 destroy?: (persister: Persister<Persist>) => void,
1936): Accessor<PersisterOrUndefined | undefined> => {
1937 const [persister, setPersister] = createSignal<PersisterOrUndefined>();
1938 createEffect(() => {
1939 let current = true;
1940 let createdPersister: PersisterOrUndefined | undefined;
1941 const destroyPersister = (persister: Persister<Persist>) => {
1942 persister.destroy();
1943 destroy?.(persister);
1944 };
1945 (async () => {
1946 const resolvedStore = getThing(store);
1947 createdPersister = resolvedStore
1948 ? await create(resolvedStore)
1949 : undefined;
1950 if (!current) {
1951 if (createdPersister) {
1952 destroyPersister(createdPersister);
1953 }
1954 return;
1955 }
1956 setPersister(() => createdPersister);
1957 if (createdPersister && then) {
1958 await then(createdPersister);
1959 }
1960 })();
1961 onCleanup(() => {
1962 current = false;
1963 setPersister(() => undefined);
1964 if (createdPersister) {
1965 destroyPersister(createdPersister);
1966 }
1967 });
1968 });
1969 return persister;
1970};
1971
1972export const usePersisterIds = () => useThingIds(OFFSET_PERSISTER);
1973

Callers 2

primitives.test.tsFile · 0.90
InspectorFunction · 0.90

Calls 2

getThingFunction · 0.70
destroyPersisterFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…