use-abcd 1.4.3 → 1.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/README.md +225 -406
  2. package/dist/chunks/client-lHRDCo64.js +30 -0
  3. package/dist/chunks/client-lHRDCo64.js.map +1 -0
  4. package/dist/chunks/utils-C2wXstxP.js +828 -0
  5. package/dist/chunks/utils-C2wXstxP.js.map +1 -0
  6. package/dist/collection.d.ts +13 -5
  7. package/dist/examples/Benchmark.d.ts +2 -0
  8. package/dist/examples/LocalNotes.d.ts +2 -0
  9. package/dist/index.d.ts +5 -4
  10. package/dist/index.js +1071 -1789
  11. package/dist/index.js.map +1 -1
  12. package/dist/item.d.ts +3 -2
  13. package/dist/mocks/handlers.d.ts +0 -1
  14. package/dist/node.d.ts +5 -1
  15. package/dist/runtime/client.d.ts +10 -48
  16. package/dist/runtime/client.js +5 -13
  17. package/dist/runtime/client.js.map +1 -1
  18. package/dist/runtime/index.d.ts +5 -5
  19. package/dist/runtime/local.d.ts +32 -0
  20. package/dist/runtime/server.d.ts +25 -35
  21. package/dist/runtime/server.js +58 -107
  22. package/dist/runtime/server.js.map +1 -1
  23. package/dist/runtime/types.d.ts +28 -63
  24. package/dist/sync-queue.d.ts +7 -44
  25. package/dist/types.d.ts +22 -18
  26. package/dist/useCrud.d.ts +5 -3
  27. package/dist/useCrudTree.d.ts +3 -3
  28. package/dist/useItem.d.ts +3 -1
  29. package/dist/useNode.d.ts +3 -0
  30. package/dist/useSyncState.d.ts +2 -2
  31. package/dist/utils.d.ts +3 -4
  32. package/package.json +4 -2
  33. package/dist/cache.test.d.ts +0 -1
  34. package/dist/chunks/client-BfugfaiH.js +0 -144
  35. package/dist/chunks/client-BfugfaiH.js.map +0 -1
  36. package/dist/chunks/types-Dy4rYb2N.js +0 -19
  37. package/dist/chunks/types-Dy4rYb2N.js.map +0 -1
  38. package/dist/collection.e2e.test.d.ts +0 -1
  39. package/dist/fetch-handler.test.d.ts +0 -1
  40. package/dist/item-cache.test.d.ts +0 -1
  41. package/dist/node.test.d.ts +0 -1
  42. package/dist/runtime/client.test.d.ts +0 -1
  43. package/dist/runtime/server.test.d.ts +0 -1
  44. package/dist/sync-queue.test.d.ts +0 -1
  45. package/dist/useCrud.test.d.ts +0 -1
  46. package/dist/useCrudTree.test.d.ts +0 -1
  47. /package/dist/{App.d.ts → examples/App.d.ts} +0 -0
  48. /package/dist/{main.d.ts → examples/main.d.ts} +0 -0
@@ -0,0 +1,30 @@
1
+ function i(e) {
2
+ const a = typeof e == "string" ? e : e.endpoint, c = typeof e == "string" ? {} : e.headers ?? {}, d = typeof e == "string" ? void 0 : e.scope;
3
+ return async (t, o) => {
4
+ if (o.aborted) throw new Error("Operation aborted");
5
+ const y = {
6
+ scope: d,
7
+ query: t.query,
8
+ changes: t.changes
9
+ }, r = await fetch(a, {
10
+ method: "POST",
11
+ headers: { "Content-Type": "application/json", ...c },
12
+ body: JSON.stringify(y),
13
+ signal: o
14
+ });
15
+ if (!r.ok) {
16
+ let n = "Request failed";
17
+ try {
18
+ const s = await r.json();
19
+ s.error && (n = s.error);
20
+ } catch {
21
+ }
22
+ throw new Error(n);
23
+ }
24
+ return r.json();
25
+ };
26
+ }
27
+ export {
28
+ i as c
29
+ };
30
+ //# sourceMappingURL=client-lHRDCo64.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-lHRDCo64.js","sources":["../../src/runtime/client.ts"],"sourcesContent":["import type { Change } from \"../types\";\nimport type { SyncRequestBody, SyncResponseBody } from \"./types\";\n\nexport type { SyncRequestBody, SyncResponseBody };\n\nexport type SyncClientConfig = {\n endpoint: string;\n headers?: Record<string, string>;\n scope?: string;\n};\n\nexport function createSyncClient<T extends { id: string }, Q = unknown>(\n config: string | SyncClientConfig,\n) {\n const endpoint = typeof config === \"string\" ? config : config.endpoint;\n const headers = typeof config === \"string\" ? {} : (config.headers ?? {});\n const scope = typeof config === \"string\" ? undefined : config.scope;\n\n return async (\n params: { query?: Q; changes?: Change<T>[] },\n signal: AbortSignal,\n ): Promise<SyncResponseBody<T>> => {\n if (signal.aborted) throw new Error(\"Operation aborted\");\n\n const body: SyncRequestBody<T, Q> = {\n scope,\n query: params.query,\n changes: params.changes,\n };\n\n const response = await fetch(endpoint, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...headers },\n body: JSON.stringify(body),\n signal,\n });\n\n if (!response.ok) {\n let errorMsg = \"Request failed\";\n try {\n const errorBody = await response.json();\n if (errorBody.error) errorMsg = errorBody.error;\n } catch {\n // Ignore JSON parse errors\n }\n throw new Error(errorMsg);\n }\n\n return response.json();\n };\n}\n"],"names":["createSyncClient","config","endpoint","headers","scope","params","signal","body","response","errorMsg","errorBody"],"mappings":"AAWO,SAASA,EACdC,GACA;AACA,QAAMC,IAAW,OAAOD,KAAW,WAAWA,IAASA,EAAO,UACxDE,IAAU,OAAOF,KAAW,WAAW,CAAA,IAAMA,EAAO,WAAW,CAAA,GAC/DG,IAAQ,OAAOH,KAAW,WAAW,SAAYA,EAAO;AAE9D,SAAO,OACLI,GACAC,MACiC;AACjC,QAAIA,EAAO,QAAS,OAAM,IAAI,MAAM,mBAAmB;AAEvD,UAAMC,IAA8B;AAAA,MAClC,OAAAH;AAAA,MACA,OAAOC,EAAO;AAAA,MACd,SAASA,EAAO;AAAA,IAAA,GAGZG,IAAW,MAAM,MAAMN,GAAU;AAAA,MACrC,QAAQ;AAAA,MACR,SAAS,EAAE,gBAAgB,oBAAoB,GAAGC,EAAA;AAAA,MAClD,MAAM,KAAK,UAAUI,CAAI;AAAA,MACzB,QAAAD;AAAA,IAAA,CACD;AAED,QAAI,CAACE,EAAS,IAAI;AAChB,UAAIC,IAAW;AACf,UAAI;AACF,cAAMC,IAAY,MAAMF,EAAS,KAAA;AACjC,QAAIE,EAAU,UAAOD,IAAWC,EAAU;AAAA,MAC5C,QAAQ;AAAA,MAER;AACA,YAAM,IAAI,MAAMD,CAAQ;AAAA,IAC1B;AAEA,WAAOD,EAAS,KAAA;AAAA,EAClB;AACF;"}