UNPKG

alinea

Version:

[![npm](https://img.shields.io/npm/v/alinea.svg)](https://npmjs.org/package/alinea) [![install size](https://packagephobia.com/badge?p=alinea)](https://packagephobia.com/result?p=alinea)

33 lines (31 loc) 798 B
import { loadable } from "../../chunks/chunk-ZHH24SIG.js"; import { atom } from "../../chunks/chunk-OBOPLPUQ.js"; import "../../chunks/chunk-U5RRZUYZ.js"; // src/dashboard/util/Loader.ts function loader(asynAtom) { const currentAtom = atom(void 0); return atom( (get, { setSelf }) => { const next = get(loadable(asynAtom)); if (next.state === "hasData") setSelf(next.data); return { data: next.state === "hasData" ? next.data : get(currentAtom), error: next.state === "hasError" ? next.error : void 0, isError: next.state === "hasError", isLoading: next.state === "loading", isSuccess: next.state === "hasData" }; }, (get, set, value) => { set(currentAtom, value); } ); } export { loader };