UNPKG

@hazae41/glacier

Version:

Yet another React data (re)fetching library

1 lines 3.39 kB
{"version":3,"file":"helper.cjs","sources":["../../../../../../src/mods/queries/simple/helper.ts"],"sourcesContent":["import { core } from \"mods/core/core.js\";\nimport { FetcherfulQuerySettings } from \"mods/types/settings.js\";\nimport { State } from \"mods/types/state.js\";\nimport { Updater } from \"mods/types/updater.js\";\n\nexport namespace Simple {\n\n export function getCacheKey<K>(key: K) {\n if (typeof key === \"string\")\n return key\n return JSON.stringify(key)\n }\n\n export async function fetchOrThrow<K, D, F>(\n cacheKey: string,\n signal: AbortSignal,\n settings: FetcherfulQuerySettings<K, D, F>\n ): Promise<State<D, F>> {\n const fetched = await settings.fetcher(settings.key, { signal })\n\n return await core.replaceOrThrow(cacheKey, fetched, settings)\n }\n\n /**\n * Optimistic update\n * @param core \n * @param key \n * @param cacheKey \n * @param fetcher \n * @param updater \n * @param settings \n * @returns \n */\n export async function updateOrThrow<K, D, F>(\n cacheKey: string,\n updater: Updater<K, D, F>,\n signal: AbortSignal,\n settings: FetcherfulQuerySettings<K, D, F>\n ): Promise<State<D, F>> {\n const uuid = crypto.randomUUID()\n\n try {\n const generator = updater()\n\n let next = await generator.next()\n\n for (; !next.done; next = await generator.next())\n await core.optimizeOrThrow(cacheKey, uuid, next.value, settings)\n\n const fetcher = next.value ?? settings.fetcher\n const fetched = await fetcher(settings.key, { signal, cache: \"reload\" })\n\n core.deoptimize(cacheKey, uuid)\n\n return await core.replaceOrThrow(cacheKey, fetched, settings)\n } catch (e: unknown) {\n core.deoptimize(cacheKey, uuid)\n core.reoptimizeOrThrow(cacheKey, settings)\n throw e\n }\n }\n}"],"names":["Simple","core"],"mappings":";;;;AAKiBA,wBAwDhB;AAxDD,CAAA,UAAiB,MAAM,EAAA;IAErB,SAAgB,WAAW,CAAI,GAAM,EAAA;QACnC,IAAI,OAAO,GAAG,KAAK,QAAQ;AACzB,YAAA,OAAO,GAAG,CAAA;AACZ,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;KAC3B;AAJe,IAAA,MAAA,CAAA,WAAW,cAI1B,CAAA;AAEM,IAAA,eAAe,YAAY,CAChC,QAAgB,EAChB,MAAmB,EACnB,QAA0C,EAAA;AAE1C,QAAA,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;QAEhE,OAAO,MAAMC,SAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;KAC9D;AARqB,IAAA,MAAA,CAAA,YAAY,eAQjC,CAAA;AAED;;;;;;;;;AASG;IACI,eAAe,aAAa,CACjC,QAAgB,EAChB,OAAyB,EACzB,MAAmB,EACnB,QAA0C,EAAA;AAE1C,QAAA,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,EAAE,CAAA;AAEhC,QAAA,IAAI;AACF,YAAA,MAAM,SAAS,GAAG,OAAO,EAAE,CAAA;AAE3B,YAAA,IAAI,IAAI,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAA;YAEjC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE;AAC9C,gBAAA,MAAMA,SAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;YAElE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,OAAO,CAAA;AAC9C,YAAA,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;AAExE,YAAAA,SAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;YAE/B,OAAO,MAAMA,SAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;SAC9D;QAAC,OAAO,CAAU,EAAE;AACnB,YAAAA,SAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;AAC/B,YAAAA,SAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;AAC1C,YAAA,MAAM,CAAC,CAAA;SACR;KACF;AA3BqB,IAAA,MAAA,CAAA,aAAa,gBA2BlC,CAAA;AACH,CAAC,EAxDgBD,cAAM,KAANA,cAAM,GAwDtB,EAAA,CAAA,CAAA;;"}