@ensforge/react 0.1.0 → 0.1.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 (111) hide show
  1. package/README.md +10 -10
  2. package/dist/atoms/batch.d.ts +6 -6
  3. package/dist/atoms/batch.d.ts.map +1 -1
  4. package/dist/atoms/capabilities.d.ts +20 -20
  5. package/dist/atoms/capabilities.d.ts.map +1 -1
  6. package/dist/atoms/dns.d.ts +7 -7
  7. package/dist/atoms/dns.d.ts.map +1 -1
  8. package/dist/atoms/events.d.ts +35 -35
  9. package/dist/atoms/events.d.ts.map +1 -1
  10. package/dist/atoms/generic.d.ts +5 -4
  11. package/dist/atoms/generic.d.ts.map +1 -1
  12. package/dist/atoms/generic.js.map +1 -1
  13. package/dist/atoms/migration.d.ts +5 -5
  14. package/dist/atoms/migration.d.ts.map +1 -1
  15. package/dist/atoms/name.d.ts +24 -24
  16. package/dist/atoms/name.d.ts.map +1 -1
  17. package/dist/atoms/ownership.d.ts +2 -2
  18. package/dist/atoms/ownership.d.ts.map +1 -1
  19. package/dist/atoms/query.d.ts +6 -11
  20. package/dist/atoms/query.d.ts.map +1 -1
  21. package/dist/atoms/query.js +14 -11
  22. package/dist/atoms/query.js.map +1 -1
  23. package/dist/atoms/records.d.ts +12 -12
  24. package/dist/atoms/records.d.ts.map +1 -1
  25. package/dist/atoms/registration.d.ts +8 -8
  26. package/dist/atoms/registration.d.ts.map +1 -1
  27. package/dist/atoms/resolution.d.ts +8 -8
  28. package/dist/atoms/resolution.d.ts.map +1 -1
  29. package/dist/atoms/reverse.d.ts +2 -2
  30. package/dist/atoms/reverse.d.ts.map +1 -1
  31. package/dist/atoms/stream.d.ts +2 -2
  32. package/dist/atoms/stream.d.ts.map +1 -1
  33. package/dist/atoms/stream.js +6 -4
  34. package/dist/atoms/stream.js.map +1 -1
  35. package/dist/atoms/wrapping.d.ts +3 -3
  36. package/dist/atoms/wrapping.d.ts.map +1 -1
  37. package/dist/atoms.d.ts +3 -2
  38. package/dist/atoms.js +3 -2
  39. package/dist/cache/invalidation.d.ts +5 -5
  40. package/dist/cache/invalidation.d.ts.map +1 -1
  41. package/dist/cache/invalidation.js +3 -3
  42. package/dist/cache/invalidation.js.map +1 -1
  43. package/dist/cache/prefetch.d.ts +5 -4
  44. package/dist/cache/prefetch.d.ts.map +1 -1
  45. package/dist/cache/prefetch.js +3 -3
  46. package/dist/cache/prefetch.js.map +1 -1
  47. package/dist/cache/registry.d.ts +3 -3
  48. package/dist/cache/registry.d.ts.map +1 -1
  49. package/dist/cache/registry.js +2 -2
  50. package/dist/cache/registry.js.map +1 -1
  51. package/dist/cache.d.ts +4 -4
  52. package/dist/cache.js +4 -4
  53. package/dist/hooks/batch.d.ts +13 -13
  54. package/dist/hooks/batch.d.ts.map +1 -1
  55. package/dist/hooks/capabilities.d.ts +107 -107
  56. package/dist/hooks/capabilities.d.ts.map +1 -1
  57. package/dist/hooks/dns.d.ts +39 -39
  58. package/dist/hooks/dns.d.ts.map +1 -1
  59. package/dist/hooks/events.d.ts +118 -118
  60. package/dist/hooks/events.d.ts.map +1 -1
  61. package/dist/hooks/generic.d.ts +5 -5
  62. package/dist/hooks/generic.d.ts.map +1 -1
  63. package/dist/hooks/generic.js.map +1 -1
  64. package/dist/hooks/index.d.ts +4 -4
  65. package/dist/hooks/migration.d.ts +27 -27
  66. package/dist/hooks/migration.d.ts.map +1 -1
  67. package/dist/hooks/name.d.ts +77 -77
  68. package/dist/hooks/name.d.ts.map +1 -1
  69. package/dist/hooks/ownership.d.ts +5 -5
  70. package/dist/hooks/ownership.d.ts.map +1 -1
  71. package/dist/hooks/records.d.ts +69 -69
  72. package/dist/hooks/records.d.ts.map +1 -1
  73. package/dist/hooks/registration.d.ts +45 -45
  74. package/dist/hooks/registration.d.ts.map +1 -1
  75. package/dist/hooks/resolution.d.ts +33 -33
  76. package/dist/hooks/resolution.d.ts.map +1 -1
  77. package/dist/hooks/reverse.d.ts +9 -9
  78. package/dist/hooks/reverse.d.ts.map +1 -1
  79. package/dist/hooks/use-cache.d.ts +6 -6
  80. package/dist/hooks/use-cache.d.ts.map +1 -1
  81. package/dist/hooks/use-cache.js +4 -4
  82. package/dist/hooks/use-cache.js.map +1 -1
  83. package/dist/hooks/use-mutation.js +16 -31
  84. package/dist/hooks/use-mutation.js.map +1 -1
  85. package/dist/hooks/use-query.d.ts +6 -6
  86. package/dist/hooks/use-query.d.ts.map +1 -1
  87. package/dist/hooks/use-query.js +24 -52
  88. package/dist/hooks/use-query.js.map +1 -1
  89. package/dist/hooks/use-suspense-query.d.ts +9 -8
  90. package/dist/hooks/use-suspense-query.d.ts.map +1 -1
  91. package/dist/hooks/use-suspense-query.js +5 -5
  92. package/dist/hooks/use-suspense-query.js.map +1 -1
  93. package/dist/hooks/wrapping.d.ts +7 -7
  94. package/dist/hooks/wrapping.d.ts.map +1 -1
  95. package/dist/index.d.ts +11 -11
  96. package/dist/index.js +7 -7
  97. package/dist/mutation/options.d.ts +9 -7
  98. package/dist/mutation/options.d.ts.map +1 -1
  99. package/dist/mutation/result.d.ts +8 -10
  100. package/dist/mutation/result.d.ts.map +1 -1
  101. package/dist/provider/context.d.ts +4 -2
  102. package/dist/provider/context.d.ts.map +1 -1
  103. package/dist/provider/context.js.map +1 -1
  104. package/dist/query/options.d.ts +27 -24
  105. package/dist/query/options.d.ts.map +1 -1
  106. package/dist/query/options.js +26 -12
  107. package/dist/query/options.js.map +1 -1
  108. package/dist/query/result.d.ts +7 -13
  109. package/dist/query/result.d.ts.map +1 -1
  110. package/dist/query/result.js.map +1 -1
  111. package/package.json +2 -2
@@ -9,58 +9,44 @@ import { useContext, useRef, useState } from "react";
9
9
 
10
10
  //#region src/hooks/use-mutation.ts
11
11
  const makeMutationHook = (factory) => (options = {}) => {
12
- const { sdk } = useEnsforgeContext();
12
+ const { defaults, sdk } = useEnsforgeContext();
13
13
  const registry = useContext(RegistryContext);
14
14
  const atomRef = useRef(void 0);
15
15
  const [parameters, setParameters] = useState(void 0);
16
16
  if (atomRef.current === void 0) atomRef.current = factory(sdk);
17
17
  const atom = atomRef.current;
18
18
  const result = useAtomValue(atom);
19
+ const retry = options.retry ?? defaults.mutations?.retry ?? false;
19
20
  const mutateEffect = (nextParameters) => {
20
21
  const effect = Effect.sync(() => {
21
22
  setParameters(nextParameters);
22
23
  registry.set(atom, nextParameters);
23
24
  }).pipe(Effect.andThen(AtomRegistry.getResult(registry, atom, { suspendOnWaiting: true })));
24
- return options.retry === void 0 || options.retry === false ? effect : effect.pipe(Effect.retry({ times: options.retry }));
25
+ return retry === false ? effect : effect.pipe(Effect.retry(retry));
25
26
  };
26
- const runCallbacks = (exit, nextParameters, local) => {
27
- if (Exit.isSuccess(exit)) {
28
- options.onSuccess?.(exit.value, nextParameters);
29
- local?.onSuccess?.(exit.value, nextParameters);
30
- options.onSettled?.(exit.value, null, nextParameters);
31
- local?.onSettled?.(exit.value, null, nextParameters);
32
- return;
33
- }
34
- const error = errorFromCause(exit.cause);
35
- options.onError?.(error, nextParameters);
36
- local?.onError?.(error, nextParameters);
37
- options.onSettled?.(void 0, error, nextParameters);
38
- local?.onSettled?.(void 0, error, nextParameters);
39
- };
40
- const mutate = (nextParameters, callbacks) => {
41
- Effect.runPromiseExit(mutateEffect(nextParameters)).then((exit) => runCallbacks(exit, nextParameters, callbacks));
27
+ const notifyExit = (exit, nextParameters, local) => {
28
+ options.onExit?.(exit, nextParameters);
29
+ local?.onExit?.(exit, nextParameters);
42
30
  };
43
31
  const mutateAsync = async (nextParameters) => {
44
32
  const exit = await Effect.runPromiseExit(mutateEffect(nextParameters));
45
- runCallbacks(exit, nextParameters, void 0);
33
+ notifyExit(exit, nextParameters, void 0);
46
34
  if (Exit.isSuccess(exit)) return exit.value;
47
35
  throw Cause.squash(exit.cause);
48
36
  };
37
+ const mutate = (nextParameters, local) => {
38
+ Effect.runPromiseExit(mutateEffect(nextParameters)).then((exit) => notifyExit(exit, nextParameters, local));
39
+ };
49
40
  const cause = Option.getOrNull(AsyncResult.cause(result));
50
- const data = Option.getOrUndefined(AsyncResult.value(result));
51
- const isIdle = AsyncResult.isInitial(result) && !result.waiting;
52
- const isPending = result.waiting;
53
- const isError = AsyncResult.isFailure(result);
54
- const isSuccess = AsyncResult.isSuccess(result) && !result.waiting;
55
41
  return {
56
42
  cause,
57
- data,
43
+ data: Option.getOrUndefined(AsyncResult.value(result)),
58
44
  error: cause === null ? null : errorFromCause(cause),
59
45
  interrupt: () => registry.set(atom, Atom.Interrupt),
60
- isError,
61
- isIdle,
62
- isPending,
63
- isSuccess,
46
+ isFailure: AsyncResult.isFailure(result),
47
+ isInitial: AsyncResult.isInitial(result) && !result.waiting,
48
+ isSuccess: AsyncResult.isSuccess(result) && !result.waiting,
49
+ isWaiting: result.waiting,
64
50
  mutate,
65
51
  mutateAsync,
66
52
  mutateEffect,
@@ -69,8 +55,7 @@ const makeMutationHook = (factory) => (options = {}) => {
69
55
  setParameters(void 0);
70
56
  registry.set(atom, Atom.Reset);
71
57
  },
72
- result,
73
- status: isPending ? "pending" : isError ? "error" : isSuccess ? "success" : "idle"
58
+ result
74
59
  };
75
60
  };
76
61
 
@@ -1 +1 @@
1
- {"version":3,"file":"use-mutation.js","names":[],"sources":["../../src/hooks/use-mutation.ts"],"sourcesContent":["\"use client\";\n\nimport { useContext, useRef, useState } from \"react\";\n\nimport { RegistryContext, useAtomValue } from \"@effect/atom-react\";\nimport { Cause, Effect, Exit, Option } from \"effect\";\nimport { AsyncResult, Atom, AtomRegistry } from \"effect/unstable/reactivity\";\n\nimport type { EnsMutationAtomFactory } from \"../atoms/mutation.js\";\nimport type { EnsMutationCallbacks, EnsMutationOptions } from \"../mutation/options.js\";\nimport type { EnsMutationResult } from \"../mutation/result.js\";\nimport { useEnsforgeContext } from \"../provider/context.js\";\nimport { errorFromCause } from \"../query/result.js\";\n\nexport const makeMutationHook =\n <Parameters, Success, Failure>(factory: EnsMutationAtomFactory<Parameters, Success, Failure>) =>\n (\n options: EnsMutationOptions<Parameters, Success, Failure> = {},\n ): EnsMutationResult<Parameters, Success, Failure> => {\n const { sdk } = useEnsforgeContext();\n const registry = useContext(RegistryContext);\n const atomRef = useRef<ReturnType<typeof factory> | undefined>(undefined);\n const [parameters, setParameters] = useState<Parameters | undefined>(undefined);\n if (atomRef.current === undefined) atomRef.current = factory(sdk);\n const atom = atomRef.current;\n const result = useAtomValue(atom);\n\n const mutateEffect = (nextParameters: Parameters): Effect.Effect<Success, Failure> => {\n const effect = Effect.sync(() => {\n setParameters(nextParameters);\n registry.set(atom, nextParameters);\n }).pipe(\n Effect.andThen(\n AtomRegistry.getResult(registry, atom, {\n suspendOnWaiting: true,\n }),\n ),\n );\n return options.retry === undefined || options.retry === false\n ? effect\n : effect.pipe(Effect.retry({ times: options.retry }));\n };\n\n const runCallbacks = (\n exit: Exit.Exit<Success, Failure>,\n nextParameters: Parameters,\n local: EnsMutationCallbacks<Parameters, Success, Failure> | undefined,\n ) => {\n if (Exit.isSuccess(exit)) {\n options.onSuccess?.(exit.value, nextParameters);\n local?.onSuccess?.(exit.value, nextParameters);\n options.onSettled?.(exit.value, null, nextParameters);\n local?.onSettled?.(exit.value, null, nextParameters);\n return;\n }\n\n const error = errorFromCause(exit.cause);\n options.onError?.(error, nextParameters);\n local?.onError?.(error, nextParameters);\n options.onSettled?.(undefined, error, nextParameters);\n local?.onSettled?.(undefined, error, nextParameters);\n };\n\n const mutate = (\n nextParameters: Parameters,\n callbacks?: EnsMutationCallbacks<Parameters, Success, Failure>,\n ) => {\n void Effect.runPromiseExit(mutateEffect(nextParameters)).then((exit) =>\n runCallbacks(exit, nextParameters, callbacks),\n );\n };\n\n const mutateAsync = async (nextParameters: Parameters): Promise<Success> => {\n const exit = await Effect.runPromiseExit(mutateEffect(nextParameters));\n runCallbacks(exit, nextParameters, undefined);\n if (Exit.isSuccess(exit)) return exit.value;\n throw Cause.squash(exit.cause);\n };\n\n const cause = Option.getOrNull(AsyncResult.cause(result));\n const data = Option.getOrUndefined(AsyncResult.value(result));\n const isIdle = AsyncResult.isInitial(result) && !result.waiting;\n const isPending = result.waiting;\n const isError = AsyncResult.isFailure(result);\n const isSuccess = AsyncResult.isSuccess(result) && !result.waiting;\n\n return {\n cause,\n data,\n error: cause === null ? null : errorFromCause(cause),\n interrupt: () => registry.set(atom, Atom.Interrupt),\n isError,\n isIdle,\n isPending,\n isSuccess,\n mutate,\n mutateAsync,\n mutateEffect,\n parameters,\n reset: () => {\n setParameters(undefined);\n registry.set(atom, Atom.Reset);\n },\n result,\n status: isPending ? \"pending\" : isError ? \"error\" : isSuccess ? \"success\" : \"idle\",\n };\n };\n"],"mappings":";;;;;;;;;;AAcA,MAAa,oBACoB,aAE7B,UAA4D,CAAC,MACT;CACpD,MAAM,EAAE,QAAQ,mBAAmB;CACnC,MAAM,WAAW,WAAW,eAAe;CAC3C,MAAM,UAAU,OAA+C,MAAS;CACxE,MAAM,CAAC,YAAY,iBAAiB,SAAiC,MAAS;CAC9E,IAAI,QAAQ,YAAY,QAAW,QAAQ,UAAU,QAAQ,GAAG;CAChE,MAAM,OAAO,QAAQ;CACrB,MAAM,SAAS,aAAa,IAAI;CAEhC,MAAM,gBAAgB,mBAAgE;EACpF,MAAM,SAAS,OAAO,WAAW;GAC/B,cAAc,cAAc;GAC5B,SAAS,IAAI,MAAM,cAAc;EACnC,CAAC,CAAC,CAAC,KACD,OAAO,QACL,aAAa,UAAU,UAAU,MAAM,EACrC,kBAAkB,KACpB,CAAC,CACH,CACF;EACA,OAAO,QAAQ,UAAU,UAAa,QAAQ,UAAU,QACpD,SACA,OAAO,KAAK,OAAO,MAAM,EAAE,OAAO,QAAQ,MAAM,CAAC,CAAC;CACxD;CAEA,MAAM,gBACJ,MACA,gBACA,UACG;EACH,IAAI,KAAK,UAAU,IAAI,GAAG;GACxB,QAAQ,YAAY,KAAK,OAAO,cAAc;GAC9C,OAAO,YAAY,KAAK,OAAO,cAAc;GAC7C,QAAQ,YAAY,KAAK,OAAO,MAAM,cAAc;GACpD,OAAO,YAAY,KAAK,OAAO,MAAM,cAAc;GACnD;EACF;EAEA,MAAM,QAAQ,eAAe,KAAK,KAAK;EACvC,QAAQ,UAAU,OAAO,cAAc;EACvC,OAAO,UAAU,OAAO,cAAc;EACtC,QAAQ,YAAY,QAAW,OAAO,cAAc;EACpD,OAAO,YAAY,QAAW,OAAO,cAAc;CACrD;CAEA,MAAM,UACJ,gBACA,cACG;EACH,AAAK,OAAO,eAAe,aAAa,cAAc,CAAC,CAAC,CAAC,MAAM,SAC7D,aAAa,MAAM,gBAAgB,SAAS,CAC9C;CACF;CAEA,MAAM,cAAc,OAAO,mBAAiD;EAC1E,MAAM,OAAO,MAAM,OAAO,eAAe,aAAa,cAAc,CAAC;EACrE,aAAa,MAAM,gBAAgB,MAAS;EAC5C,IAAI,KAAK,UAAU,IAAI,GAAG,OAAO,KAAK;EACtC,MAAM,MAAM,OAAO,KAAK,KAAK;CAC/B;CAEA,MAAM,QAAQ,OAAO,UAAU,YAAY,MAAM,MAAM,CAAC;CACxD,MAAM,OAAO,OAAO,eAAe,YAAY,MAAM,MAAM,CAAC;CAC5D,MAAM,SAAS,YAAY,UAAU,MAAM,KAAK,CAAC,OAAO;CACxD,MAAM,YAAY,OAAO;CACzB,MAAM,UAAU,YAAY,UAAU,MAAM;CAC5C,MAAM,YAAY,YAAY,UAAU,MAAM,KAAK,CAAC,OAAO;CAE3D,OAAO;EACL;EACA;EACA,OAAO,UAAU,OAAO,OAAO,eAAe,KAAK;EACnD,iBAAiB,SAAS,IAAI,MAAM,KAAK,SAAS;EAClD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,aAAa;GACX,cAAc,MAAS;GACvB,SAAS,IAAI,MAAM,KAAK,KAAK;EAC/B;EACA;EACA,QAAQ,YAAY,YAAY,UAAU,UAAU,YAAY,YAAY;CAC9E;AACF"}
1
+ {"version":3,"file":"use-mutation.js","names":[],"sources":["../../src/hooks/use-mutation.ts"],"sourcesContent":["\"use client\";\n\nimport { useContext, useRef, useState } from \"react\";\n\nimport { RegistryContext, useAtomValue } from \"@effect/atom-react\";\nimport { Cause, Effect, Exit, Option, type Schedule } from \"effect\";\nimport { AsyncResult, Atom, AtomRegistry } from \"effect/unstable/reactivity\";\n\nimport type { EnsMutationAtomFactory } from \"../atoms/mutation.js\";\nimport type { EnsMutationExecutionOptions, EnsMutationOptions } from \"../mutation/options.js\";\nimport type { EnsMutationResult } from \"../mutation/result.js\";\nimport { useEnsforgeContext } from \"../provider/context.js\";\nimport { errorFromCause } from \"../query/result.js\";\n\nexport const makeMutationHook =\n <Parameters, Success, Failure>(factory: EnsMutationAtomFactory<Parameters, Success, Failure>) =>\n (\n options: EnsMutationOptions<Parameters, Success, Failure> = {},\n ): EnsMutationResult<Parameters, Success, Failure> => {\n const { defaults, sdk } = useEnsforgeContext();\n const registry = useContext(RegistryContext);\n const atomRef = useRef<ReturnType<typeof factory> | undefined>(undefined);\n const [parameters, setParameters] = useState<Parameters | undefined>(undefined);\n if (atomRef.current === undefined) atomRef.current = factory(sdk);\n const atom = atomRef.current;\n const result = useAtomValue(atom);\n const retry =\n options.retry ??\n (defaults.mutations?.retry as false | Schedule.Schedule<unknown, Failure> | undefined) ??\n false;\n\n const mutateEffect = (nextParameters: Parameters): Effect.Effect<Success, Failure> => {\n const effect = Effect.sync(() => {\n setParameters(nextParameters);\n registry.set(atom, nextParameters);\n }).pipe(\n Effect.andThen(\n AtomRegistry.getResult(registry, atom, {\n suspendOnWaiting: true,\n }),\n ),\n );\n return retry === false ? effect : effect.pipe(Effect.retry(retry));\n };\n\n const notifyExit = (\n exit: Exit.Exit<Success, Failure>,\n nextParameters: Parameters,\n local: EnsMutationExecutionOptions<Parameters, Success, Failure> | undefined,\n ) => {\n options.onExit?.(exit, nextParameters);\n local?.onExit?.(exit, nextParameters);\n };\n\n const mutateAsync = async (nextParameters: Parameters): Promise<Success> => {\n const exit = await Effect.runPromiseExit(mutateEffect(nextParameters));\n notifyExit(exit, nextParameters, undefined);\n if (Exit.isSuccess(exit)) return exit.value;\n throw Cause.squash(exit.cause);\n };\n\n const mutate = (\n nextParameters: Parameters,\n local?: EnsMutationExecutionOptions<Parameters, Success, Failure>,\n ) => {\n void Effect.runPromiseExit(mutateEffect(nextParameters)).then((exit) =>\n notifyExit(exit, nextParameters, local),\n );\n };\n\n const cause = Option.getOrNull(AsyncResult.cause(result));\n\n return {\n cause,\n data: Option.getOrUndefined(AsyncResult.value(result)),\n error: cause === null ? null : errorFromCause(cause),\n interrupt: () => registry.set(atom, Atom.Interrupt),\n isFailure: AsyncResult.isFailure(result),\n isInitial: AsyncResult.isInitial(result) && !result.waiting,\n isSuccess: AsyncResult.isSuccess(result) && !result.waiting,\n isWaiting: result.waiting,\n mutate,\n mutateAsync,\n mutateEffect,\n parameters,\n reset: () => {\n setParameters(undefined);\n registry.set(atom, Atom.Reset);\n },\n result,\n };\n };\n"],"mappings":";;;;;;;;;;AAcA,MAAa,oBACoB,aAE7B,UAA4D,CAAC,MACT;CACpD,MAAM,EAAE,UAAU,QAAQ,mBAAmB;CAC7C,MAAM,WAAW,WAAW,eAAe;CAC3C,MAAM,UAAU,OAA+C,MAAS;CACxE,MAAM,CAAC,YAAY,iBAAiB,SAAiC,MAAS;CAC9E,IAAI,QAAQ,YAAY,QAAW,QAAQ,UAAU,QAAQ,GAAG;CAChE,MAAM,OAAO,QAAQ;CACrB,MAAM,SAAS,aAAa,IAAI;CAChC,MAAM,QACJ,QAAQ,SACP,SAAS,WAAW,SACrB;CAEF,MAAM,gBAAgB,mBAAgE;EACpF,MAAM,SAAS,OAAO,WAAW;GAC/B,cAAc,cAAc;GAC5B,SAAS,IAAI,MAAM,cAAc;EACnC,CAAC,CAAC,CAAC,KACD,OAAO,QACL,aAAa,UAAU,UAAU,MAAM,EACrC,kBAAkB,KACpB,CAAC,CACH,CACF;EACA,OAAO,UAAU,QAAQ,SAAS,OAAO,KAAK,OAAO,MAAM,KAAK,CAAC;CACnE;CAEA,MAAM,cACJ,MACA,gBACA,UACG;EACH,QAAQ,SAAS,MAAM,cAAc;EACrC,OAAO,SAAS,MAAM,cAAc;CACtC;CAEA,MAAM,cAAc,OAAO,mBAAiD;EAC1E,MAAM,OAAO,MAAM,OAAO,eAAe,aAAa,cAAc,CAAC;EACrE,WAAW,MAAM,gBAAgB,MAAS;EAC1C,IAAI,KAAK,UAAU,IAAI,GAAG,OAAO,KAAK;EACtC,MAAM,MAAM,OAAO,KAAK,KAAK;CAC/B;CAEA,MAAM,UACJ,gBACA,UACG;EACH,AAAK,OAAO,eAAe,aAAa,cAAc,CAAC,CAAC,CAAC,MAAM,SAC7D,WAAW,MAAM,gBAAgB,KAAK,CACxC;CACF;CAEA,MAAM,QAAQ,OAAO,UAAU,YAAY,MAAM,MAAM,CAAC;CAExD,OAAO;EACL;EACA,MAAM,OAAO,eAAe,YAAY,MAAM,MAAM,CAAC;EACrD,OAAO,UAAU,OAAO,OAAO,eAAe,KAAK;EACnD,iBAAiB,SAAS,IAAI,MAAM,KAAK,SAAS;EAClD,WAAW,YAAY,UAAU,MAAM;EACvC,WAAW,YAAY,UAAU,MAAM,KAAK,CAAC,OAAO;EACpD,WAAW,YAAY,UAAU,MAAM,KAAK,CAAC,OAAO;EACpD,WAAW,OAAO;EAClB;EACA;EACA;EACA;EACA,aAAa;GACX,cAAc,MAAS;GACvB,SAAS,IAAI,MAAM,KAAK,KAAK;EAC/B;EACA;CACF;AACF"}
@@ -1,10 +1,10 @@
1
- import { EnsQueryAtomFactory } from "../atoms/query.js";
2
- import { UseEnsQueryParameters } from "../query/options.js";
3
- import { EnsQueryResult } from "../query/result.js";
1
+ import { UseEnsAtomParameters } from "../query/options.js";
2
+ import { EnsAtomFactory } from "../atoms/query.js";
3
+ import { EnsAtomResult } from "../query/result.js";
4
4
  import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity";
5
5
  //#region src/hooks/use-query.d.ts
6
- declare const makeQueryHook: <Parameters extends object, Success, Failure>(factory: EnsQueryAtomFactory<Parameters, Success, Failure>) => <Selected = Success>(input: UseEnsQueryParameters<Parameters, Success, Selected>) => EnsQueryResult<Selected, Failure>;
7
- declare const prefetchQueryAtom: <Success, Failure>(registry: AtomRegistry.AtomRegistry, atom: Atom.Atom<AsyncResult.AsyncResult<Success, Failure>>, signal?: AbortSignal) => Promise<Success>;
6
+ declare const makeQueryHook: <Parameters extends object, Success, Failure>(factory: EnsAtomFactory<Parameters, Success, Failure>) => <Mapped = Success>(input: UseEnsAtomParameters<Parameters, Success, Failure, Mapped>) => EnsAtomResult<Mapped, Failure>;
7
+ declare const prefetchAtom: <Success, Failure>(registry: AtomRegistry.AtomRegistry, atom: Atom.Atom<AsyncResult.AsyncResult<Success, Failure>>, signal?: AbortSignal) => Promise<Success>;
8
8
  //#endregion
9
- export { makeQueryHook, prefetchQueryAtom };
9
+ export { makeQueryHook, prefetchAtom };
10
10
  //# sourceMappingURL=use-query.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-query.d.ts","names":[],"sources":["../../src/hooks/use-query.ts"],"mappings":";;;;;cAiGa,gBACV,2BAA2B,SAAS,SACnC,SAAS,oBAAoB,YAAY,SAAS,cAEnD,WAAW,SACV,OAAO,sBAAsB,YAAY,SAAS,cACjD,eAAe,UAAU;cAGjB,oBAAqB,SAAS,SACzC,UAAU,aAAa,cACvB,MAAM,KAAK,KAAK,YAAY,YAAY,SAAS,WACjD,SAAS,gBACR,QAAQ"}
1
+ {"version":3,"file":"use-query.d.ts","names":[],"sources":["../../src/hooks/use-query.ts"],"mappings":";;;;;cAiFa,gBACV,2BAA2B,SAAS,SACnC,SAAS,eAAe,YAAY,SAAS,cAE9C,SAAS,SACR,OAAO,qBAAqB,YAAY,SAAS,SAAS,YACzD,cAAc,QAAQ;cAGd,eAAgB,SAAS,SACpC,UAAU,aAAa,cACvB,MAAM,KAAK,KAAK,YAAY,YAAY,SAAS,WACjD,SAAS,gBACR,QAAQ"}
@@ -1,81 +1,53 @@
1
1
  "use client";
2
2
 
3
+ import { resolveEnsAtomOptions } from "../query/options.js";
3
4
  import { useEnsforgeContext } from "../provider/context.js";
4
5
  import { errorFromCause, resultUpdatedAt } from "../query/result.js";
5
- import { resolveEnsQueryOptions } from "../query/options.js";
6
6
  import { Effect, Option } from "effect";
7
7
  import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity";
8
8
  import { RegistryContext, useAtomValue } from "@effect/atom-react";
9
- import { useContext, useEffect, useRef } from "react";
9
+ import { useContext } from "react";
10
10
 
11
11
  //#region src/hooks/use-query.ts
12
12
  const disabledAtom = Atom.make(AsyncResult.initial());
13
- const splitQueryParameters = (input) => {
14
- const { query, ...parameters } = input;
15
- return [parameters, query];
13
+ const splitAtomParameters = (input) => {
14
+ const { atom, enabled = true, map, ...parameters } = input;
15
+ return {
16
+ atom,
17
+ enabled,
18
+ map,
19
+ parameters
20
+ };
16
21
  };
17
22
  const useQueryAtom = (factory, input) => {
18
23
  const { defaults, sdk } = useEnsforgeContext();
19
24
  const registry = useContext(RegistryContext);
20
- const [parameters, query] = splitQueryParameters(input);
21
- const options = resolveEnsQueryOptions(defaults.queries, query);
22
- const enabled = query?.enabled ?? true;
23
- const atom = factory(sdk, parameters, options);
25
+ const { atom: atomOptions, enabled, map, parameters } = splitAtomParameters(input);
26
+ const atom = factory(sdk, parameters, resolveEnsAtomOptions(defaults.atoms, atomOptions));
24
27
  const rawResult = useAtomValue(enabled ? atom : disabledAtom);
25
- const result = query?.select === void 0 ? rawResult : AsyncResult.map(rawResult, query.select);
26
- const staleCheckedAtom = useRef(void 0);
27
- useEffect(() => {
28
- if (staleCheckedAtom.current === atom) return;
29
- staleCheckedAtom.current = atom;
30
- if (!enabled || !AsyncResult.isSuccess(rawResult)) return;
31
- if (Date.now() - rawResult.timestamp >= options.staleTime) registry.refresh(atom);
32
- }, [
33
- atom,
34
- enabled,
35
- options.staleTime,
36
- rawResult,
37
- registry
38
- ]);
39
- useEffect(() => {
40
- if (!enabled || options.refetchInterval === false) return;
41
- const interval = globalThis.setInterval(() => registry.refresh(atom), options.refetchInterval);
42
- return () => globalThis.clearInterval(interval);
43
- }, [
44
- atom,
45
- enabled,
46
- options.refetchInterval,
47
- registry
48
- ]);
49
- const refetchEffect = () => {
28
+ const result = map === void 0 ? rawResult : AsyncResult.map(rawResult, map);
29
+ const refreshEffect = () => {
50
30
  const effect = Effect.sync(() => registry.refresh(atom)).pipe(Effect.andThen(AtomRegistry.getResult(registry, atom, { suspendOnWaiting: true })));
51
- return query?.select === void 0 ? effect : effect.pipe(Effect.map(query.select));
31
+ return map === void 0 ? effect : effect.pipe(Effect.map(map));
52
32
  };
53
33
  const cause = Option.getOrNull(AsyncResult.cause(result));
54
- const data = Option.getOrUndefined(AsyncResult.value(result));
55
- const isPending = AsyncResult.isInitial(result);
56
- const isError = AsyncResult.isFailure(result);
57
- const isSuccess = AsyncResult.isSuccess(result);
58
34
  return {
59
35
  cause,
60
- data,
36
+ data: Option.getOrUndefined(AsyncResult.value(result)),
61
37
  error: cause === null ? null : errorFromCause(cause),
62
- fetchStatus: result.waiting ? "fetching" : "idle",
63
- isError,
64
- isFetching: result.waiting,
65
- isLoading: isPending && result.waiting,
66
- isPending,
67
- isRefetching: !isPending && result.waiting,
68
- isSuccess,
69
- refetch: () => Effect.runPromise(refetchEffect()),
70
- refetchEffect,
38
+ isFailure: AsyncResult.isFailure(result),
39
+ isInitial: AsyncResult.isInitial(result),
40
+ isSuccess: AsyncResult.isSuccess(result),
41
+ isWaiting: result.waiting,
42
+ refresh: () => Effect.runPromise(refreshEffect()),
43
+ refreshEffect,
71
44
  result,
72
- status: isPending ? "pending" : isError ? "error" : "success",
73
45
  updatedAt: resultUpdatedAt(result)
74
46
  };
75
47
  };
76
48
  const makeQueryHook = (factory) => (input) => useQueryAtom(factory, input);
77
- const prefetchQueryAtom = (registry, atom, signal) => Effect.runPromise(AtomRegistry.getResult(registry, atom, { suspendOnWaiting: true }), { signal });
49
+ const prefetchAtom = (registry, atom, signal) => Effect.runPromise(AtomRegistry.getResult(registry, atom, { suspendOnWaiting: true }), { signal });
78
50
 
79
51
  //#endregion
80
- export { makeQueryHook, prefetchQueryAtom, useQueryAtom };
52
+ export { makeQueryHook, prefetchAtom, useQueryAtom };
81
53
  //# sourceMappingURL=use-query.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-query.js","names":[],"sources":["../../src/hooks/use-query.ts"],"sourcesContent":["\"use client\";\n\nimport { useContext, useEffect, useRef } from \"react\";\n\nimport { useAtomValue, RegistryContext } from \"@effect/atom-react\";\nimport { Effect, Option } from \"effect\";\nimport { AsyncResult, Atom, AtomRegistry } from \"effect/unstable/reactivity\";\n\nimport type { EnsQueryAtomFactory } from \"../atoms/query.js\";\nimport { useEnsforgeContext } from \"../provider/context.js\";\nimport {\n resolveEnsQueryOptions,\n type EnsQueryOptions,\n type UseEnsQueryParameters,\n} from \"../query/options.js\";\nimport { errorFromCause, resultUpdatedAt, type EnsQueryResult } from \"../query/result.js\";\n\nconst disabledAtom = Atom.make(AsyncResult.initial<unknown, unknown>());\n\nconst splitQueryParameters = <Parameters extends object, Success, Selected>(\n input: UseEnsQueryParameters<Parameters, Success, Selected>,\n): readonly [Parameters, EnsQueryOptions<Success, Selected> | undefined] => {\n const { query, ...parameters } = input;\n return [parameters as Parameters, query];\n};\n\nexport const useQueryAtom = <Parameters extends object, Success, Failure, Selected = Success>(\n factory: EnsQueryAtomFactory<Parameters, Success, Failure>,\n input: UseEnsQueryParameters<Parameters, Success, Selected>,\n): EnsQueryResult<Selected, Failure> => {\n const { defaults, sdk } = useEnsforgeContext();\n const registry = useContext(RegistryContext);\n const [parameters, query] = splitQueryParameters(input);\n const options = resolveEnsQueryOptions(defaults.queries, query);\n const enabled = query?.enabled ?? true;\n const atom = factory(sdk, parameters, options);\n const activeAtom = (enabled ? atom : disabledAtom) as Atom.Atom<\n AsyncResult.AsyncResult<Success, Failure>\n >;\n const rawResult = useAtomValue(activeAtom);\n const result: AsyncResult.AsyncResult<Selected, Failure> =\n query?.select === undefined\n ? (rawResult as unknown as AsyncResult.AsyncResult<Selected, Failure>)\n : AsyncResult.map(rawResult, query.select);\n const staleCheckedAtom = useRef<Atom.Atom<unknown> | undefined>(undefined);\n\n useEffect(() => {\n if (staleCheckedAtom.current === atom) return;\n staleCheckedAtom.current = atom;\n if (!enabled || !AsyncResult.isSuccess(rawResult)) return;\n if (Date.now() - rawResult.timestamp >= options.staleTime) registry.refresh(atom);\n }, [atom, enabled, options.staleTime, rawResult, registry]);\n\n useEffect(() => {\n if (!enabled || options.refetchInterval === false) return;\n const interval = globalThis.setInterval(() => registry.refresh(atom), options.refetchInterval);\n return () => globalThis.clearInterval(interval);\n }, [atom, enabled, options.refetchInterval, registry]);\n\n const refetchEffect = (): Effect.Effect<Selected, Failure> => {\n const effect = Effect.sync(() => registry.refresh(atom)).pipe(\n Effect.andThen(\n AtomRegistry.getResult(registry, atom, {\n suspendOnWaiting: true,\n }),\n ),\n );\n return query?.select === undefined\n ? (effect as unknown as Effect.Effect<Selected, Failure>)\n : effect.pipe(Effect.map(query.select));\n };\n\n const cause = Option.getOrNull(AsyncResult.cause(result));\n const data = Option.getOrUndefined(AsyncResult.value(result));\n const isPending = AsyncResult.isInitial(result);\n const isError = AsyncResult.isFailure(result);\n const isSuccess = AsyncResult.isSuccess(result);\n\n return {\n cause,\n data,\n error: cause === null ? null : errorFromCause(cause),\n fetchStatus: result.waiting ? \"fetching\" : \"idle\",\n isError,\n isFetching: result.waiting,\n isLoading: isPending && result.waiting,\n isPending,\n isRefetching: !isPending && result.waiting,\n isSuccess,\n refetch: () => Effect.runPromise(refetchEffect()),\n refetchEffect,\n result,\n status: isPending ? \"pending\" : isError ? \"error\" : \"success\",\n updatedAt: resultUpdatedAt(result),\n };\n};\n\nexport const makeQueryHook =\n <Parameters extends object, Success, Failure>(\n factory: EnsQueryAtomFactory<Parameters, Success, Failure>,\n ) =>\n <Selected = Success>(\n input: UseEnsQueryParameters<Parameters, Success, Selected>,\n ): EnsQueryResult<Selected, Failure> =>\n useQueryAtom(factory, input);\n\nexport const prefetchQueryAtom = <Success, Failure>(\n registry: AtomRegistry.AtomRegistry,\n atom: Atom.Atom<AsyncResult.AsyncResult<Success, Failure>>,\n signal?: AbortSignal,\n): Promise<Success> =>\n Effect.runPromise(AtomRegistry.getResult(registry, atom, { suspendOnWaiting: true }), {\n signal,\n });\n"],"mappings":";;;;;;;;;;;AAiBA,MAAM,eAAe,KAAK,KAAK,YAAY,QAA0B,CAAC;AAEtE,MAAM,wBACJ,UAC0E;CAC1E,MAAM,EAAE,OAAO,GAAG,eAAe;CACjC,OAAO,CAAC,YAA0B,KAAK;AACzC;AAEA,MAAa,gBACX,SACA,UACsC;CACtC,MAAM,EAAE,UAAU,QAAQ,mBAAmB;CAC7C,MAAM,WAAW,WAAW,eAAe;CAC3C,MAAM,CAAC,YAAY,SAAS,qBAAqB,KAAK;CACtD,MAAM,UAAU,uBAAuB,SAAS,SAAS,KAAK;CAC9D,MAAM,UAAU,OAAO,WAAW;CAClC,MAAM,OAAO,QAAQ,KAAK,YAAY,OAAO;CAI7C,MAAM,YAAY,aAHE,UAAU,OAAO,YAGI;CACzC,MAAM,SACJ,OAAO,WAAW,SACb,YACD,YAAY,IAAI,WAAW,MAAM,MAAM;CAC7C,MAAM,mBAAmB,OAAuC,MAAS;CAEzE,gBAAgB;EACd,IAAI,iBAAiB,YAAY,MAAM;EACvC,iBAAiB,UAAU;EAC3B,IAAI,CAAC,WAAW,CAAC,YAAY,UAAU,SAAS,GAAG;EACnD,IAAI,KAAK,IAAI,IAAI,UAAU,aAAa,QAAQ,WAAW,SAAS,QAAQ,IAAI;CAClF,GAAG;EAAC;EAAM;EAAS,QAAQ;EAAW;EAAW;CAAQ,CAAC;CAE1D,gBAAgB;EACd,IAAI,CAAC,WAAW,QAAQ,oBAAoB,OAAO;EACnD,MAAM,WAAW,WAAW,kBAAkB,SAAS,QAAQ,IAAI,GAAG,QAAQ,eAAe;EAC7F,aAAa,WAAW,cAAc,QAAQ;CAChD,GAAG;EAAC;EAAM;EAAS,QAAQ;EAAiB;CAAQ,CAAC;CAErD,MAAM,sBAAwD;EAC5D,MAAM,SAAS,OAAO,WAAW,SAAS,QAAQ,IAAI,CAAC,CAAC,CAAC,KACvD,OAAO,QACL,aAAa,UAAU,UAAU,MAAM,EACrC,kBAAkB,KACpB,CAAC,CACH,CACF;EACA,OAAO,OAAO,WAAW,SACpB,SACD,OAAO,KAAK,OAAO,IAAI,MAAM,MAAM,CAAC;CAC1C;CAEA,MAAM,QAAQ,OAAO,UAAU,YAAY,MAAM,MAAM,CAAC;CACxD,MAAM,OAAO,OAAO,eAAe,YAAY,MAAM,MAAM,CAAC;CAC5D,MAAM,YAAY,YAAY,UAAU,MAAM;CAC9C,MAAM,UAAU,YAAY,UAAU,MAAM;CAC5C,MAAM,YAAY,YAAY,UAAU,MAAM;CAE9C,OAAO;EACL;EACA;EACA,OAAO,UAAU,OAAO,OAAO,eAAe,KAAK;EACnD,aAAa,OAAO,UAAU,aAAa;EAC3C;EACA,YAAY,OAAO;EACnB,WAAW,aAAa,OAAO;EAC/B;EACA,cAAc,CAAC,aAAa,OAAO;EACnC;EACA,eAAe,OAAO,WAAW,cAAc,CAAC;EAChD;EACA;EACA,QAAQ,YAAY,YAAY,UAAU,UAAU;EACpD,WAAW,gBAAgB,MAAM;CACnC;AACF;AAEA,MAAa,iBAET,aAGA,UAEA,aAAa,SAAS,KAAK;AAE/B,MAAa,qBACX,UACA,MACA,WAEA,OAAO,WAAW,aAAa,UAAU,UAAU,MAAM,EAAE,kBAAkB,KAAK,CAAC,GAAG,EACpF,OACF,CAAC"}
1
+ {"version":3,"file":"use-query.js","names":[],"sources":["../../src/hooks/use-query.ts"],"sourcesContent":["\"use client\";\n\nimport { useContext } from \"react\";\n\nimport { RegistryContext, useAtomValue } from \"@effect/atom-react\";\nimport { Effect, Option } from \"effect\";\nimport { AsyncResult, Atom, AtomRegistry } from \"effect/unstable/reactivity\";\n\nimport type { EnsAtomFactory } from \"../atoms/query.js\";\nimport { useEnsforgeContext } from \"../provider/context.js\";\nimport {\n resolveEnsAtomOptions,\n type EnsAtomOptions,\n type UseEnsAtomParameters,\n} from \"../query/options.js\";\nimport { errorFromCause, resultUpdatedAt, type EnsAtomResult } from \"../query/result.js\";\n\nconst disabledAtom = Atom.make(AsyncResult.initial<unknown, unknown>());\n\ninterface SplitAtomParameters<Parameters, Success, Failure, Mapped> {\n readonly atom: EnsAtomOptions<Failure> | undefined;\n readonly enabled: boolean;\n readonly map: ((value: Success) => Mapped) | undefined;\n readonly parameters: Parameters;\n}\n\nconst splitAtomParameters = <Parameters extends object, Success, Failure, Mapped>(\n input: UseEnsAtomParameters<Parameters, Success, Failure, Mapped>,\n): SplitAtomParameters<Parameters, Success, Failure, Mapped> => {\n const { atom, enabled = true, map, ...parameters } = input;\n return { atom, enabled, map, parameters: parameters as Parameters };\n};\n\nexport const useQueryAtom = <Parameters extends object, Success, Failure, Mapped = Success>(\n factory: EnsAtomFactory<Parameters, Success, Failure>,\n input: UseEnsAtomParameters<Parameters, Success, Failure, Mapped>,\n): EnsAtomResult<Mapped, Failure> => {\n const { defaults, sdk } = useEnsforgeContext();\n const registry = useContext(RegistryContext);\n const { atom: atomOptions, enabled, map, parameters } = splitAtomParameters(input);\n const options = resolveEnsAtomOptions(defaults.atoms, atomOptions);\n const atom = factory(sdk, parameters, options);\n const activeAtom = (enabled ? atom : disabledAtom) as Atom.Atom<\n AsyncResult.AsyncResult<Success, Failure>\n >;\n const rawResult = useAtomValue(activeAtom);\n const result: AsyncResult.AsyncResult<Mapped, Failure> =\n map === undefined\n ? (rawResult as unknown as AsyncResult.AsyncResult<Mapped, Failure>)\n : AsyncResult.map(rawResult, map);\n\n const refreshEffect = (): Effect.Effect<Mapped, Failure> => {\n const effect = Effect.sync(() => registry.refresh(atom)).pipe(\n Effect.andThen(\n AtomRegistry.getResult(registry, atom, {\n suspendOnWaiting: true,\n }),\n ),\n );\n return map === undefined\n ? (effect as unknown as Effect.Effect<Mapped, Failure>)\n : effect.pipe(Effect.map(map));\n };\n\n const cause = Option.getOrNull(AsyncResult.cause(result));\n\n return {\n cause,\n data: Option.getOrUndefined(AsyncResult.value(result)),\n error: cause === null ? null : errorFromCause(cause),\n isFailure: AsyncResult.isFailure(result),\n isInitial: AsyncResult.isInitial(result),\n isSuccess: AsyncResult.isSuccess(result),\n isWaiting: result.waiting,\n refresh: () => Effect.runPromise(refreshEffect()),\n refreshEffect,\n result,\n updatedAt: resultUpdatedAt(result),\n };\n};\n\nexport const makeQueryHook =\n <Parameters extends object, Success, Failure>(\n factory: EnsAtomFactory<Parameters, Success, Failure>,\n ) =>\n <Mapped = Success>(\n input: UseEnsAtomParameters<Parameters, Success, Failure, Mapped>,\n ): EnsAtomResult<Mapped, Failure> =>\n useQueryAtom(factory, input);\n\nexport const prefetchAtom = <Success, Failure>(\n registry: AtomRegistry.AtomRegistry,\n atom: Atom.Atom<AsyncResult.AsyncResult<Success, Failure>>,\n signal?: AbortSignal,\n): Promise<Success> =>\n Effect.runPromise(AtomRegistry.getResult(registry, atom, { suspendOnWaiting: true }), {\n signal,\n });\n"],"mappings":";;;;;;;;;;;AAiBA,MAAM,eAAe,KAAK,KAAK,YAAY,QAA0B,CAAC;AAStE,MAAM,uBACJ,UAC8D;CAC9D,MAAM,EAAE,MAAM,UAAU,MAAM,KAAK,GAAG,eAAe;CACrD,OAAO;EAAE;EAAM;EAAS;EAAiB;CAAyB;AACpE;AAEA,MAAa,gBACX,SACA,UACmC;CACnC,MAAM,EAAE,UAAU,QAAQ,mBAAmB;CAC7C,MAAM,WAAW,WAAW,eAAe;CAC3C,MAAM,EAAE,MAAM,aAAa,SAAS,KAAK,eAAe,oBAAoB,KAAK;CAEjF,MAAM,OAAO,QAAQ,KAAK,YADV,sBAAsB,SAAS,OAAO,WACV,CAAC;CAI7C,MAAM,YAAY,aAHE,UAAU,OAAO,YAGI;CACzC,MAAM,SACJ,QAAQ,SACH,YACD,YAAY,IAAI,WAAW,GAAG;CAEpC,MAAM,sBAAsD;EAC1D,MAAM,SAAS,OAAO,WAAW,SAAS,QAAQ,IAAI,CAAC,CAAC,CAAC,KACvD,OAAO,QACL,aAAa,UAAU,UAAU,MAAM,EACrC,kBAAkB,KACpB,CAAC,CACH,CACF;EACA,OAAO,QAAQ,SACV,SACD,OAAO,KAAK,OAAO,IAAI,GAAG,CAAC;CACjC;CAEA,MAAM,QAAQ,OAAO,UAAU,YAAY,MAAM,MAAM,CAAC;CAExD,OAAO;EACL;EACA,MAAM,OAAO,eAAe,YAAY,MAAM,MAAM,CAAC;EACrD,OAAO,UAAU,OAAO,OAAO,eAAe,KAAK;EACnD,WAAW,YAAY,UAAU,MAAM;EACvC,WAAW,YAAY,UAAU,MAAM;EACvC,WAAW,YAAY,UAAU,MAAM;EACvC,WAAW,OAAO;EAClB,eAAe,OAAO,WAAW,cAAc,CAAC;EAChD;EACA;EACA,WAAW,gBAAgB,MAAM;CACnC;AACF;AAEA,MAAa,iBAET,aAGA,UAEA,aAAa,SAAS,KAAK;AAE/B,MAAa,gBACX,UACA,MACA,WAEA,OAAO,WAAW,aAAa,UAAU,UAAU,MAAM,EAAE,kBAAkB,KAAK,CAAC,GAAG,EACpF,OACF,CAAC"}
@@ -1,15 +1,16 @@
1
- import { EnsQueryAtomFactory } from "../atoms/query.js";
2
- import { EnsQueryOptions } from "../query/options.js";
1
+ import { EnsAtomOptions } from "../query/options.js";
2
+ import { EnsAtomFactory } from "../atoms/query.js";
3
3
  //#region src/hooks/use-suspense-query.d.ts
4
- type UseEnsSuspenseQueryParameters<Parameters, Success, Selected = Success> = Parameters & {
5
- readonly query?: Omit<EnsQueryOptions<Success, Selected>, "enabled">;
4
+ type UseEnsSuspenseAtomParameters<Parameters, Success, Failure, Mapped = Success> = Parameters & {
5
+ readonly atom?: EnsAtomOptions<Failure>;
6
+ readonly map?: (value: Success) => Mapped;
6
7
  };
7
- interface EnsSuspenseQueryResult<Success> {
8
+ interface EnsSuspenseAtomResult<Success> {
8
9
  readonly data: Success;
9
- readonly isFetching: boolean;
10
+ readonly isWaiting: boolean;
10
11
  readonly updatedAt: number;
11
12
  }
12
- declare const makeSuspenseQueryHook: <Parameters extends object, Success, Failure>(factory: EnsQueryAtomFactory<Parameters, Success, Failure>) => <Selected = Success>(input: UseEnsSuspenseQueryParameters<Parameters, Success, Selected>) => EnsSuspenseQueryResult<Selected>;
13
+ declare const makeSuspenseQueryHook: <Parameters extends object, Success, Failure>(factory: EnsAtomFactory<Parameters, Success, Failure>) => <Mapped = Success>(input: UseEnsSuspenseAtomParameters<Parameters, Success, Failure, Mapped>) => EnsSuspenseAtomResult<Mapped>;
13
14
  //#endregion
14
- export { EnsSuspenseQueryResult, UseEnsSuspenseQueryParameters, makeSuspenseQueryHook };
15
+ export { EnsSuspenseAtomResult, UseEnsSuspenseAtomParameters, makeSuspenseQueryHook };
15
16
  //# sourceMappingURL=use-suspense-query.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-suspense-query.d.ts","names":[],"sources":["../../src/hooks/use-suspense-query.ts"],"mappings":";;;KAYY,8BAA8B,YAAY,SAAS,WAAW,WAAW;WAC1E,QAAQ,KAAK,gBAAgB,SAAS;;UAGhC,uBAAuB;WAC7B,MAAM;WACN;WACA;;cAGE,wBACV,2BAA2B,SAAS,SACnC,SAAS,oBAAoB,YAAY,SAAS,cAEnD,WAAW,SACV,OAAO,8BAA8B,YAAY,SAAS,cACzD,uBAAuB"}
1
+ {"version":3,"file":"use-suspense-query.d.ts","names":[],"sources":["../../src/hooks/use-suspense-query.ts"],"mappings":";;;KAYY,6BACV,YACA,SACA,SACA,SAAS,WACP;WACO,OAAO,eAAe;WACtB,OAAO,OAAO,YAAY;;UAGpB,sBAAsB;WAC5B,MAAM;WACN;WACA;;cAGE,wBACV,2BAA2B,SAAS,SACnC,SAAS,eAAe,YAAY,SAAS,cAE9C,SAAS,SACR,OAAO,6BAA6B,YAAY,SAAS,SAAS,YACjE,sBAAsB"}
@@ -1,18 +1,18 @@
1
1
  "use client";
2
2
 
3
+ import { resolveEnsAtomOptions } from "../query/options.js";
3
4
  import { useEnsforgeContext } from "../provider/context.js";
4
- import { resolveEnsQueryOptions } from "../query/options.js";
5
5
  import { useAtomSuspense } from "@effect/atom-react";
6
6
 
7
7
  //#region src/hooks/use-suspense-query.ts
8
8
  const makeSuspenseQueryHook = (factory) => (input) => {
9
9
  const { defaults, sdk } = useEnsforgeContext();
10
- const { query, ...parameters } = input;
11
- const atom = factory(sdk, parameters, resolveEnsQueryOptions(defaults.queries, query));
10
+ const { atom: atomOptions, map, ...parameters } = input;
11
+ const atom = factory(sdk, parameters, resolveEnsAtomOptions(defaults.atoms, atomOptions));
12
12
  const result = useAtomSuspense(atom, { suspendOnWaiting: false });
13
13
  return {
14
- data: query?.select === void 0 ? result.value : query.select(result.value),
15
- isFetching: result.waiting,
14
+ data: map === void 0 ? result.value : map(result.value),
15
+ isWaiting: result.waiting,
16
16
  updatedAt: result.timestamp
17
17
  };
18
18
  };
@@ -1 +1 @@
1
- {"version":3,"file":"use-suspense-query.js","names":[],"sources":["../../src/hooks/use-suspense-query.ts"],"sourcesContent":["\"use client\";\n\nimport { useAtomSuspense } from \"@effect/atom-react\";\n\nimport type { EnsQueryAtomFactory } from \"../atoms/query.js\";\nimport { useEnsforgeContext } from \"../provider/context.js\";\nimport {\n resolveEnsQueryOptions,\n type EnsQueryOptions,\n type UseEnsQueryParameters,\n} from \"../query/options.js\";\n\nexport type UseEnsSuspenseQueryParameters<Parameters, Success, Selected = Success> = Parameters & {\n readonly query?: Omit<EnsQueryOptions<Success, Selected>, \"enabled\">;\n};\n\nexport interface EnsSuspenseQueryResult<Success> {\n readonly data: Success;\n readonly isFetching: boolean;\n readonly updatedAt: number;\n}\n\nexport const makeSuspenseQueryHook =\n <Parameters extends object, Success, Failure>(\n factory: EnsQueryAtomFactory<Parameters, Success, Failure>,\n ) =>\n <Selected = Success>(\n input: UseEnsSuspenseQueryParameters<Parameters, Success, Selected>,\n ): EnsSuspenseQueryResult<Selected> => {\n const { defaults, sdk } = useEnsforgeContext();\n const { query, ...parameters } = input as UseEnsQueryParameters<Parameters, Success, Selected>;\n const options = resolveEnsQueryOptions(defaults.queries, query);\n const atom = factory(sdk, parameters as Parameters, options);\n const result = useAtomSuspense(atom, { suspendOnWaiting: false });\n\n return {\n data:\n query?.select === undefined\n ? (result.value as unknown as Selected)\n : query.select(result.value),\n isFetching: result.waiting,\n updatedAt: result.timestamp,\n };\n };\n"],"mappings":";;;;;;;AAsBA,MAAa,yBAET,aAGA,UACqC;CACrC,MAAM,EAAE,UAAU,QAAQ,mBAAmB;CAC7C,MAAM,EAAE,OAAO,GAAG,eAAe;CAEjC,MAAM,OAAO,QAAQ,KAAK,YADV,uBAAuB,SAAS,SAAS,KACC,CAAC;CAC3D,MAAM,SAAS,gBAAgB,MAAM,EAAE,kBAAkB,MAAM,CAAC;CAEhE,OAAO;EACL,MACE,OAAO,WAAW,SACb,OAAO,QACR,MAAM,OAAO,OAAO,KAAK;EAC/B,YAAY,OAAO;EACnB,WAAW,OAAO;CACpB;AACF"}
1
+ {"version":3,"file":"use-suspense-query.js","names":[],"sources":["../../src/hooks/use-suspense-query.ts"],"sourcesContent":["\"use client\";\n\nimport { useAtomSuspense } from \"@effect/atom-react\";\n\nimport type { EnsAtomFactory } from \"../atoms/query.js\";\nimport { useEnsforgeContext } from \"../provider/context.js\";\nimport {\n resolveEnsAtomOptions,\n type EnsAtomOptions,\n type UseEnsAtomParameters,\n} from \"../query/options.js\";\n\nexport type UseEnsSuspenseAtomParameters<\n Parameters,\n Success,\n Failure,\n Mapped = Success,\n> = Parameters & {\n readonly atom?: EnsAtomOptions<Failure>;\n readonly map?: (value: Success) => Mapped;\n};\n\nexport interface EnsSuspenseAtomResult<Success> {\n readonly data: Success;\n readonly isWaiting: boolean;\n readonly updatedAt: number;\n}\n\nexport const makeSuspenseQueryHook =\n <Parameters extends object, Success, Failure>(\n factory: EnsAtomFactory<Parameters, Success, Failure>,\n ) =>\n <Mapped = Success>(\n input: UseEnsSuspenseAtomParameters<Parameters, Success, Failure, Mapped>,\n ): EnsSuspenseAtomResult<Mapped> => {\n const { defaults, sdk } = useEnsforgeContext();\n const {\n atom: atomOptions,\n map,\n ...parameters\n } = input as UseEnsAtomParameters<Parameters, Success, Failure, Mapped>;\n const options = resolveEnsAtomOptions(defaults.atoms, atomOptions);\n const atom = factory(sdk, parameters as Parameters, options);\n const result = useAtomSuspense(atom, { suspendOnWaiting: false });\n\n return {\n data: map === undefined ? (result.value as unknown as Mapped) : map(result.value),\n isWaiting: result.waiting,\n updatedAt: result.timestamp,\n };\n };\n"],"mappings":";;;;;;;AA4BA,MAAa,yBAET,aAGA,UACkC;CAClC,MAAM,EAAE,UAAU,QAAQ,mBAAmB;CAC7C,MAAM,EACJ,MAAM,aACN,KACA,GAAG,eACD;CAEJ,MAAM,OAAO,QAAQ,KAAK,YADV,sBAAsB,SAAS,OAAO,WACI,CAAC;CAC3D,MAAM,SAAS,gBAAgB,MAAM,EAAE,kBAAkB,MAAM,CAAC;CAEhE,OAAO;EACL,MAAM,QAAQ,SAAa,OAAO,QAA8B,IAAI,OAAO,KAAK;EAChF,WAAW,OAAO;EAClB,WAAW,OAAO;CACpB;AACF"}
@@ -1,14 +1,14 @@
1
- import { UseEnsQueryParameters } from "../query/options.js";
2
- import { EnsSuspenseQueryResult, UseEnsSuspenseQueryParameters } from "./use-suspense-query.js";
3
- import { EnsQueryResult } from "../query/result.js";
1
+ import { UseEnsAtomParameters } from "../query/options.js";
2
+ import { EnsSuspenseAtomResult, UseEnsSuspenseAtomParameters } from "./use-suspense-query.js";
3
+ import { EnsAtomResult } from "../query/result.js";
4
4
  import { EnsMutationOptions } from "../mutation/options.js";
5
5
  import { EnsMutationResult } from "../mutation/result.js";
6
6
  import "../index.js";
7
7
  //#region src/hooks/wrapping.d.ts
8
- declare const useFuses: <Selected = import("@ensforge/core").GetFusesResult>(input: UseEnsQueryParameters<import("@ensforge/core").WrapperReadParameters, import("@ensforge/core").GetFusesResult, Selected>) => EnsQueryResult<Selected, import("@ensforge/core").GetCanonicalResourceError>;
9
- declare const useFusesSuspense: <Selected = import("@ensforge/core").GetFusesResult>(input: UseEnsSuspenseQueryParameters<import("@ensforge/core").WrapperReadParameters, import("@ensforge/core").GetFusesResult, Selected>) => EnsSuspenseQueryResult<Selected>;
10
- declare const useWrapperExpiry: <Selected = import("@ensforge/core").GetWrapperExpiryResult>(input: UseEnsQueryParameters<import("@ensforge/core").WrapperReadParameters, import("@ensforge/core").GetWrapperExpiryResult, Selected>) => EnsQueryResult<Selected, import("@ensforge/core").GetCanonicalResourceError>;
11
- declare const useWrapperExpirySuspense: <Selected = import("@ensforge/core").GetWrapperExpiryResult>(input: UseEnsSuspenseQueryParameters<import("@ensforge/core").WrapperReadParameters, import("@ensforge/core").GetWrapperExpiryResult, Selected>) => EnsSuspenseQueryResult<Selected>;
8
+ declare const useFuses: <Mapped = import("@ensforge/core").GetFusesResult>(input: UseEnsAtomParameters<import("@ensforge/core").WrapperReadParameters, import("@ensforge/core").GetFusesResult, import("@ensforge/core").GetCanonicalResourceError, Mapped>) => EnsAtomResult<Mapped, import("@ensforge/core").GetCanonicalResourceError>;
9
+ declare const useFusesSuspense: <Mapped = import("@ensforge/core").GetFusesResult>(input: UseEnsSuspenseAtomParameters<import("@ensforge/core").WrapperReadParameters, import("@ensforge/core").GetFusesResult, import("@ensforge/core").GetCanonicalResourceError, Mapped>) => EnsSuspenseAtomResult<Mapped>;
10
+ declare const useWrapperExpiry: <Mapped = import("@ensforge/core").GetWrapperExpiryResult>(input: UseEnsAtomParameters<import("@ensforge/core").WrapperReadParameters, import("@ensforge/core").GetWrapperExpiryResult, import("@ensforge/core").GetCanonicalResourceError, Mapped>) => EnsAtomResult<Mapped, import("@ensforge/core").GetCanonicalResourceError>;
11
+ declare const useWrapperExpirySuspense: <Mapped = import("@ensforge/core").GetWrapperExpiryResult>(input: UseEnsSuspenseAtomParameters<import("@ensforge/core").WrapperReadParameters, import("@ensforge/core").GetWrapperExpiryResult, import("@ensforge/core").GetCanonicalResourceError, Mapped>) => EnsSuspenseAtomResult<Mapped>;
12
12
  declare const useExtendSubnameExpiry: (options?: EnsMutationOptions<import("@ensforge/core").ExtendSubnameExpiryParameters, import("@ensforge/core").CallExecutionResult, import("@ensforge/core").WriteError>) => EnsMutationResult<import("@ensforge/core").ExtendSubnameExpiryParameters, import("@ensforge/core").CallExecutionResult, import("@ensforge/core").WriteError>;
13
13
  declare const useSetChildFuses: (options?: EnsMutationOptions<import("@ensforge/core").SetChildFusesParameters, import("@ensforge/core").CallExecutionResult, import("@ensforge/core").WriteError>) => EnsMutationResult<import("@ensforge/core").SetChildFusesParameters, import("@ensforge/core").CallExecutionResult, import("@ensforge/core").WriteError>;
14
14
  declare const useSetFuses: (options?: EnsMutationOptions<import("@ensforge/core").SetFusesParameters, import("@ensforge/core").CallExecutionResult, import("@ensforge/core").WriteError>) => EnsMutationResult<import("@ensforge/core").SetFusesParameters, import("@ensforge/core").CallExecutionResult, import("@ensforge/core").WriteError>;
@@ -1 +1 @@
1
- {"version":3,"file":"wrapping.d.ts","names":[],"sources":["../../src/hooks/wrapping.ts"],"mappings":";;;;;;;cAea,WAAQ,oCAAA,gBAAA,OAAA,+CAAA,gDAAA,gBAAA,cAAA,eAAA,mCAAA;cACR,mBAAgB,oCAAA,gBAAA,OAAA,uDAAA,gDAAA,gBAAA,cAAA,uBAAA;cAChB,mBAAgB,oCAAA,wBAAA,OAAA,+CAAA,gDAAA,wBAAA,cAAA,eAAA,mCAAA;cAChB,2BAAwB,oCAAA,wBAAA,OAAA,uDAAA,gDAAA,wBAAA,cAAA,uBAAA;cAExB,yBAAsB,UAAtB,4CAAsB,wDAAA,8CAAA,gBAAA,2CAAA,wDAAA,8CAAA;cACtB,mBAAgB,UAAhB,4CAAgB,kDAAA,8CAAA,gBAAA,2CAAA,kDAAA,8CAAA;cAChB,cAAW,UAAX,4CAAW,6CAAA,8CAAA,gBAAA,2CAAA,6CAAA,8CAAA;cACX,gBAAa,UAAb,4CAAa,+CAAA,8CAAA,gBAAA,2CAAA,+CAAA,8CAAA;cACb,cAAW,UAAX,4CAAW,6CAAA,yCAAA,gBAAA,2CAAA,6CAAA,yCAAA"}
1
+ {"version":3,"file":"wrapping.d.ts","names":[],"sources":["../../src/hooks/wrapping.ts"],"mappings":";;;;;;;cAea,WAAQ,kCAAA,gBAAA,OAAA,8CAAA,gDAAA,yCAAA,2BAAA,YAAA,cAAA,iCAAA;cACR,mBAAgB,kCAAA,gBAAA,OAAA,sDAAA,gDAAA,yCAAA,2BAAA,YAAA,sBAAA;cAChB,mBAAgB,kCAAA,wBAAA,OAAA,8CAAA,gDAAA,iDAAA,2BAAA,YAAA,cAAA,iCAAA;cAChB,2BAAwB,kCAAA,wBAAA,OAAA,sDAAA,gDAAA,iDAAA,2BAAA,YAAA,sBAAA;cAExB,yBAAsB,UAAtB,4CAAsB,wDAAA,8CAAA,gBAAA,2CAAA,wDAAA,8CAAA;cACtB,mBAAgB,UAAhB,4CAAgB,kDAAA,8CAAA,gBAAA,2CAAA,kDAAA,8CAAA;cAChB,cAAW,UAAX,4CAAW,6CAAA,8CAAA,gBAAA,2CAAA,6CAAA,8CAAA;cACX,gBAAa,UAAb,4CAAa,+CAAA,8CAAA,gBAAA,2CAAA,+CAAA,8CAAA;cACb,cAAW,UAAX,4CAAW,6CAAA,yCAAA,gBAAA,2CAAA,6CAAA,yCAAA"}
package/dist/index.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- import { EnsforgeInvalidation, invalidateEnsforge, invalidateEnsforgeEffect, makeInvalidationKeys } from "./cache/invalidation.js";
2
- import { prefetchEnsforge, prefetchEnsforgeEffect } from "./cache/prefetch.js";
3
- import { CreateEnsforgeRegistryOptions, createEnsforgeRegistry } from "./cache/registry.js";
1
+ import { EnsAtomDefaults, EnsAtomOptions, EnsAtomSwrOptions, ResolvedEnsAtomOptions, ResolvedEnsAtomSwrOptions, UseEnsAtomParameters, defaultEnsAtomOptions } from "./query/options.js";
2
+ import { Invalidation, invalidate, invalidateEffect, makeInvalidationKeys } from "./cache/invalidation.js";
3
+ import { prefetch, prefetchEffect } from "./cache/prefetch.js";
4
+ import { CreateRegistryOptions, createRegistry } from "./cache/registry.js";
4
5
  import "./cache.js";
5
- import { EnsQueryDefaults, EnsQueryOptions, ResolvedEnsQueryOptions, UseEnsQueryParameters, defaultEnsQueryOptions } from "./query/options.js";
6
- import { EnsSuspenseQueryResult, UseEnsSuspenseQueryParameters, makeSuspenseQueryHook } from "./hooks/use-suspense-query.js";
6
+ import { EnsSuspenseAtomResult, UseEnsSuspenseAtomParameters, makeSuspenseQueryHook } from "./hooks/use-suspense-query.js";
7
7
  import { useCallsStatus, useCallsStatusSuspense, useEstimateCalls, useEstimateCallsSuspense, useExecuteWritePlan, usePrepareCalls, usePrepareCallsSuspense, useResumeCalls, useSendCalls, useSimulateCalls, useSimulateCallsSuspense, useWalletCapabilities, useWalletCapabilitiesSuspense } from "./hooks/batch.js";
8
8
  import { useHasRegistryRoles, useHasRegistryRolesSuspense, useHasResolverRoles, useHasResolverRolesSuspense, useNameCapabilities, useNameCapabilitiesSuspense, useOperatorApproval, useOperatorApprovalSuspense, useRecordPermissions, useRecordPermissionsSuspense, useRegistryCapabilities, useRegistryCapabilitiesSuspense, useRegistryRoles, useRegistryRolesSuspense, useRequiredAuthorization, useRequiredAuthorizationSuspense, useResolverCapabilities, useResolverCapabilitiesSuspense, useResolverDelegateApproval, useResolverDelegateApprovalSuspense, useResolverRoles, useResolverRolesSuspense, useTokenApproval, useTokenApprovalSuspense, useWrapperPermissions, useWrapperPermissionsSuspense, useWriteTarget, useWriteTargetSuspense } from "./hooks/capabilities.js";
9
9
  import { useClaimDnsName, useDnsClaimStatus, useDnsClaimStatusSuspense, useDnsImportPlan, useDnsImportPlanSuspense, useDnsRecord, useDnsRecordSuspense, useDnsRecords, useDnsRecordsSuspense, useHasDnsRecords, useHasDnsRecordsSuspense, useImportDnsName, useSetDnsRecords, useSetZoneHash, useZoneHash, useZoneHashSuspense } from "./hooks/dns.js";
@@ -18,13 +18,13 @@ import { useAlias, useAliasSuspense, useCreateResolver, useGetOrCreateResolver,
18
18
  import { useClearPrimaryName, usePrimaryName, usePrimaryNameSuspense, useSetContractPrimaryName, useSetPrimaryName, useSetPrimaryNameForAddress } from "./hooks/reverse.js";
19
19
  import { useCreateSubname, useDeleteSubname, useSetSubnameExpiry, useSetSubnameManager, useSetSubnameRecord, useSetSubnameResolver, useTransferSubname } from "./hooks/subnames.js";
20
20
  import { useExtendSubnameExpiry, useFuses, useFusesSuspense, useSetChildFuses, useSetFuses, useUnwrapName, useWrapName, useWrapperExpiry, useWrapperExpirySuspense } from "./hooks/wrapping.js";
21
- import { EnsFetchStatus, EnsQueryResult, EnsQueryStatus } from "./query/result.js";
21
+ import { EnsAtomResult } from "./query/result.js";
22
22
  import { useReadBatch, useReadBatchSettled, useRecords } from "./hooks/generic.js";
23
- import { InvalidateEnsforge, useInvalidateEnsforge } from "./hooks/use-cache.js";
24
- import { EnsMutationCallbacks, EnsMutationOptions } from "./mutation/options.js";
25
- import { EnsMutationResult, EnsMutationStatus } from "./mutation/result.js";
23
+ import { Invalidate, useInvalidate } from "./hooks/use-cache.js";
24
+ import { EnsMutationDefaults, EnsMutationExecutionOptions, EnsMutationOptions } from "./mutation/options.js";
25
+ import { EnsMutationResult } from "./mutation/result.js";
26
26
  import { makeMutationHook } from "./hooks/use-mutation.js";
27
- import { makeQueryHook, prefetchQueryAtom } from "./hooks/use-query.js";
27
+ import { makeQueryHook, prefetchAtom } from "./hooks/use-query.js";
28
28
  import "./hooks/index.js";
29
29
  import { EnsforgeReactDefaults } from "./provider/context.js";
30
30
  import { EnsforgeProvider, EnsforgeProviderProps } from "./provider/ensforge-provider.js";
@@ -32,4 +32,4 @@ import { useEnsforge, useEnsforgeRegistry } from "./provider/hooks.js";
32
32
  import "./provider/index.js";
33
33
  import { Ensforge } from "@ensforge/sdk";
34
34
  export type * from "@ensforge/sdk";
35
- export { type CreateEnsforgeRegistryOptions, type EnsFetchStatus, type EnsMutationCallbacks, type EnsMutationOptions, type EnsMutationResult, type EnsMutationStatus, type EnsQueryDefaults, type EnsQueryOptions, type EnsQueryResult, type EnsQueryStatus, type EnsSuspenseQueryResult, Ensforge, type EnsforgeInvalidation, EnsforgeProvider, type EnsforgeProviderProps, type EnsforgeReactDefaults, type InvalidateEnsforge, type ResolvedEnsQueryOptions, type UseEnsQueryParameters, type UseEnsSuspenseQueryParameters, createEnsforgeRegistry, defaultEnsQueryOptions, invalidateEnsforge, invalidateEnsforgeEffect, makeInvalidationKeys, makeMutationHook, makeQueryHook, makeSuspenseQueryHook, prefetchEnsforge, prefetchEnsforgeEffect, prefetchQueryAtom, useAbi, useAbiSuspense, useAddress, useAddressSuspense, useAddresses, useAddressesSuspense, useAlias, useAliasSuspense, useApproveMigration, useApproveName, useApprovePaymentToken, useApproveRenewalPayment, useAvatar, useAvatarSuspense, useCallsStatus, useCallsStatusSuspense, useCanonicalResource, useCanonicalResourceSuspense, useClaimDnsName, useClearAvatar, useClearNameApproval, useClearPrimaryName, useClearRecords, useCommitName, useCommitmentStatus, useCommitmentStatusSuspense, useCompleteRegistration, useContentHash, useContentHashSuspense, useCreateResolver, useCreateSubname, useData, useDataSuspense, useDeleteSubname, useDnsClaimStatus, useDnsClaimStatusSuspense, useDnsImportPlan, useDnsImportPlanSuspense, useDnsRecord, useDnsRecordSuspense, useDnsRecords, useDnsRecordsSuspense, useEnsEvents, useEnsEventsSuspense, useEnsforge, useEnsforgeRegistry, useEstimateCalls, useEstimateCallsSuspense, useExecuteWritePlan, useExpiry, useExpirySuspense, useExtendSubnameExpiry, useFuses, useFusesSuspense, useGetOrCreateResolver, useGrantRegistryRoles, useGrantResolverRoles, useGrantResolverRootRoles, useHasDnsRecords, useHasDnsRecordsSuspense, useHasRegistryRoles, useHasRegistryRolesSuspense, useHasResolverRoles, useHasResolverRolesSuspense, useImportDnsName, useInterface, useInterfaceSuspense, useInvalidateEnsforge, useIsAvailable, useIsAvailableSuspense, useIsMigrated, useIsMigratedSuspense, useIsPaymentTokenSupported, useIsPaymentTokenSupportedSuspense, useIsRenewable, useIsRenewableSuspense, useIsReserved, useIsReservedSuspense, useIsWrapped, useIsWrappedSuspense, useManager, useManagerSuspense, useMigrateName, useMigrateNames, useMigrationEligibility, useMigrationEligibilitySuspense, useMigrationPlan, useMigrationPlanSuspense, useMigrationStatus, useMigrationStatusSuspense, useMigrationTarget, useMigrationTargetSuspense, useNameCapabilities, useNameCapabilitiesSuspense, useNameHistory, useNameHistorySuspense, useNameRecord, useNameRecordSuspense, useNameState, useNameStateSuspense, useNameStatus, useNameStatusSuspense, useOperatorApproval, useOperatorApprovalSuspense, useOwner, useOwnerSuspense, usePredictResolverAddress, usePredictResolverAddressSuspense, usePrepareCalls, usePrepareCallsSuspense, usePrimaryName, usePrimaryNameSuspense, useProtocol, useProtocolSuspense, usePubkey, usePubkeySuspense, useReadBatch, useReadBatchSettled, useReclaimName, useRecordPermissions, useRecordPermissionsSuspense, useRecords, useRegisterName, useRegisterNames, useRegistrant, useRegistrantSuspense, useRegistrationCommitment, useRegistrationCommitmentSuspense, useRegistrationParameters, useRegistrationParametersSuspense, useRegistrationPlan, useRegistrationPlanSuspense, useRegistrationPrice, useRegistrationPriceSuspense, useRegistry, useRegistryCapabilities, useRegistryCapabilitiesSuspense, useRegistryRoles, useRegistryRolesSuspense, useRegistrySuspense, useRenewName, useRenewNames, useRenewalPrice, useRenewalPriceSuspense, useRequiredAuthorization, useRequiredAuthorizationSuspense, useResolve, useResolveBatch, useResolveBatchSuspense, useResolveSuspense, useResolveWithResolver, useResolveWithResolverSuspense, useResolver, useResolverCapabilities, useResolverCapabilitiesSuspense, useResolverDelegateApproval, useResolverDelegateApprovalSuspense, useResolverRoles, useResolverRolesSuspense, useResolverSuspense, useResolverVersion, useResolverVersionSuspense, useResumeCalls, useRevokeRegistryRoles, useRevokeResolverRoles, useRevokeResolverRootRoles, useSendCalls, useSetAbi, useSetAddress, useSetAddresses, useSetAlias, useSetAvatar, useSetChildFuses, useSetContentHash, useSetContractPrimaryName, useSetData, useSetDnsRecords, useSetFuses, useSetInterface, useSetManager, useSetName, useSetOperatorApproval, useSetPrimaryName, useSetPrimaryNameForAddress, useSetPubkey, useSetRecordPermissions, useSetRecords, useSetResolver, useSetResolverAndRecords, useSetResolverDelegateApproval, useSetSubnameExpiry, useSetSubnameManager, useSetSubnameRecord, useSetSubnameResolver, useSetText, useSetTexts, useSetTtl, useSetZoneHash, useSimulateCalls, useSimulateCallsSuspense, useText, useTextSuspense, useTexts, useTextsSuspense, useTokenApproval, useTokenApprovalSuspense, useTokenId, useTokenIdSuspense, useTransferName, useTransferRegistrant, useTransferSubname, useTtl, useTtlSuspense, useUnwrapName, useUpgradeResolver, useWalletCapabilities, useWalletCapabilitiesSuspense, useWatchEnsEvents, useWrapName, useWrapperExpiry, useWrapperExpirySuspense, useWrapperPermissions, useWrapperPermissionsSuspense, useWriteTarget, useWriteTargetSuspense, useZoneHash, useZoneHashSuspense };
35
+ export { type CreateRegistryOptions, type EnsAtomDefaults, type EnsAtomOptions, type EnsAtomResult, type EnsAtomSwrOptions, type EnsMutationDefaults, type EnsMutationExecutionOptions, type EnsMutationOptions, type EnsMutationResult, type EnsSuspenseAtomResult, Ensforge, EnsforgeProvider, type EnsforgeProviderProps, type EnsforgeReactDefaults, type Invalidate, type Invalidation, type ResolvedEnsAtomOptions, type ResolvedEnsAtomSwrOptions, type UseEnsAtomParameters, type UseEnsSuspenseAtomParameters, createRegistry, defaultEnsAtomOptions, invalidate, invalidateEffect, makeInvalidationKeys, makeMutationHook, makeQueryHook, makeSuspenseQueryHook, prefetch, prefetchAtom, prefetchEffect, useAbi, useAbiSuspense, useAddress, useAddressSuspense, useAddresses, useAddressesSuspense, useAlias, useAliasSuspense, useApproveMigration, useApproveName, useApprovePaymentToken, useApproveRenewalPayment, useAvatar, useAvatarSuspense, useCallsStatus, useCallsStatusSuspense, useCanonicalResource, useCanonicalResourceSuspense, useClaimDnsName, useClearAvatar, useClearNameApproval, useClearPrimaryName, useClearRecords, useCommitName, useCommitmentStatus, useCommitmentStatusSuspense, useCompleteRegistration, useContentHash, useContentHashSuspense, useCreateResolver, useCreateSubname, useData, useDataSuspense, useDeleteSubname, useDnsClaimStatus, useDnsClaimStatusSuspense, useDnsImportPlan, useDnsImportPlanSuspense, useDnsRecord, useDnsRecordSuspense, useDnsRecords, useDnsRecordsSuspense, useEnsEvents, useEnsEventsSuspense, useEnsforge, useEnsforgeRegistry, useEstimateCalls, useEstimateCallsSuspense, useExecuteWritePlan, useExpiry, useExpirySuspense, useExtendSubnameExpiry, useFuses, useFusesSuspense, useGetOrCreateResolver, useGrantRegistryRoles, useGrantResolverRoles, useGrantResolverRootRoles, useHasDnsRecords, useHasDnsRecordsSuspense, useHasRegistryRoles, useHasRegistryRolesSuspense, useHasResolverRoles, useHasResolverRolesSuspense, useImportDnsName, useInterface, useInterfaceSuspense, useInvalidate, useIsAvailable, useIsAvailableSuspense, useIsMigrated, useIsMigratedSuspense, useIsPaymentTokenSupported, useIsPaymentTokenSupportedSuspense, useIsRenewable, useIsRenewableSuspense, useIsReserved, useIsReservedSuspense, useIsWrapped, useIsWrappedSuspense, useManager, useManagerSuspense, useMigrateName, useMigrateNames, useMigrationEligibility, useMigrationEligibilitySuspense, useMigrationPlan, useMigrationPlanSuspense, useMigrationStatus, useMigrationStatusSuspense, useMigrationTarget, useMigrationTargetSuspense, useNameCapabilities, useNameCapabilitiesSuspense, useNameHistory, useNameHistorySuspense, useNameRecord, useNameRecordSuspense, useNameState, useNameStateSuspense, useNameStatus, useNameStatusSuspense, useOperatorApproval, useOperatorApprovalSuspense, useOwner, useOwnerSuspense, usePredictResolverAddress, usePredictResolverAddressSuspense, usePrepareCalls, usePrepareCallsSuspense, usePrimaryName, usePrimaryNameSuspense, useProtocol, useProtocolSuspense, usePubkey, usePubkeySuspense, useReadBatch, useReadBatchSettled, useReclaimName, useRecordPermissions, useRecordPermissionsSuspense, useRecords, useRegisterName, useRegisterNames, useRegistrant, useRegistrantSuspense, useRegistrationCommitment, useRegistrationCommitmentSuspense, useRegistrationParameters, useRegistrationParametersSuspense, useRegistrationPlan, useRegistrationPlanSuspense, useRegistrationPrice, useRegistrationPriceSuspense, useRegistry, useRegistryCapabilities, useRegistryCapabilitiesSuspense, useRegistryRoles, useRegistryRolesSuspense, useRegistrySuspense, useRenewName, useRenewNames, useRenewalPrice, useRenewalPriceSuspense, useRequiredAuthorization, useRequiredAuthorizationSuspense, useResolve, useResolveBatch, useResolveBatchSuspense, useResolveSuspense, useResolveWithResolver, useResolveWithResolverSuspense, useResolver, useResolverCapabilities, useResolverCapabilitiesSuspense, useResolverDelegateApproval, useResolverDelegateApprovalSuspense, useResolverRoles, useResolverRolesSuspense, useResolverSuspense, useResolverVersion, useResolverVersionSuspense, useResumeCalls, useRevokeRegistryRoles, useRevokeResolverRoles, useRevokeResolverRootRoles, useSendCalls, useSetAbi, useSetAddress, useSetAddresses, useSetAlias, useSetAvatar, useSetChildFuses, useSetContentHash, useSetContractPrimaryName, useSetData, useSetDnsRecords, useSetFuses, useSetInterface, useSetManager, useSetName, useSetOperatorApproval, useSetPrimaryName, useSetPrimaryNameForAddress, useSetPubkey, useSetRecordPermissions, useSetRecords, useSetResolver, useSetResolverAndRecords, useSetResolverDelegateApproval, useSetSubnameExpiry, useSetSubnameManager, useSetSubnameRecord, useSetSubnameResolver, useSetText, useSetTexts, useSetTtl, useSetZoneHash, useSimulateCalls, useSimulateCallsSuspense, useText, useTextSuspense, useTexts, useTextsSuspense, useTokenApproval, useTokenApprovalSuspense, useTokenId, useTokenIdSuspense, useTransferName, useTransferRegistrant, useTransferSubname, useTtl, useTtlSuspense, useUnwrapName, useUpgradeResolver, useWalletCapabilities, useWalletCapabilitiesSuspense, useWatchEnsEvents, useWrapName, useWrapperExpiry, useWrapperExpirySuspense, useWrapperPermissions, useWrapperPermissionsSuspense, useWriteTarget, useWriteTargetSuspense, useZoneHash, useZoneHashSuspense };
package/dist/index.js CHANGED
@@ -1,11 +1,11 @@
1
1
  "use client";
2
2
 
3
- import { invalidateEnsforge, invalidateEnsforgeEffect, makeInvalidationKeys } from "./cache/invalidation.js";
4
- import { prefetchEnsforge, prefetchEnsforgeEffect } from "./cache/prefetch.js";
5
- import { createEnsforgeRegistry } from "./cache/registry.js";
3
+ import { invalidate, invalidateEffect, makeInvalidationKeys } from "./cache/invalidation.js";
4
+ import { prefetch, prefetchEffect } from "./cache/prefetch.js";
5
+ import { createRegistry } from "./cache/registry.js";
6
+ import { defaultEnsAtomOptions } from "./query/options.js";
6
7
  import { makeMutationHook } from "./hooks/use-mutation.js";
7
- import { defaultEnsQueryOptions } from "./query/options.js";
8
- import { makeQueryHook, prefetchQueryAtom } from "./hooks/use-query.js";
8
+ import { makeQueryHook, prefetchAtom } from "./hooks/use-query.js";
9
9
  import { makeSuspenseQueryHook } from "./hooks/use-suspense-query.js";
10
10
  import { useCallsStatus, useCallsStatusSuspense, useEstimateCalls, useEstimateCallsSuspense, useExecuteWritePlan, usePrepareCalls, usePrepareCallsSuspense, useResumeCalls, useSendCalls, useSimulateCalls, useSimulateCallsSuspense, useWalletCapabilities, useWalletCapabilitiesSuspense } from "./hooks/batch.js";
11
11
  import { useHasRegistryRoles, useHasRegistryRolesSuspense, useHasResolverRoles, useHasResolverRolesSuspense, useNameCapabilities, useNameCapabilitiesSuspense, useOperatorApproval, useOperatorApprovalSuspense, useRecordPermissions, useRecordPermissionsSuspense, useRegistryCapabilities, useRegistryCapabilitiesSuspense, useRegistryRoles, useRegistryRolesSuspense, useRequiredAuthorization, useRequiredAuthorizationSuspense, useResolverCapabilities, useResolverCapabilitiesSuspense, useResolverDelegateApproval, useResolverDelegateApprovalSuspense, useResolverRoles, useResolverRolesSuspense, useTokenApproval, useTokenApprovalSuspense, useWrapperPermissions, useWrapperPermissionsSuspense, useWriteTarget, useWriteTargetSuspense } from "./hooks/capabilities.js";
@@ -22,9 +22,9 @@ import { useClearPrimaryName, usePrimaryName, usePrimaryNameSuspense, useSetCont
22
22
  import { useCreateSubname, useDeleteSubname, useSetSubnameExpiry, useSetSubnameManager, useSetSubnameRecord, useSetSubnameResolver, useTransferSubname } from "./hooks/subnames.js";
23
23
  import { useExtendSubnameExpiry, useFuses, useFusesSuspense, useSetChildFuses, useSetFuses, useUnwrapName, useWrapName, useWrapperExpiry, useWrapperExpirySuspense } from "./hooks/wrapping.js";
24
24
  import { useReadBatch, useReadBatchSettled, useRecords } from "./hooks/generic.js";
25
- import { useInvalidateEnsforge } from "./hooks/use-cache.js";
25
+ import { useInvalidate } from "./hooks/use-cache.js";
26
26
  import { EnsforgeProvider } from "./provider/ensforge-provider.js";
27
27
  import { useEnsforge, useEnsforgeRegistry } from "./provider/hooks.js";
28
28
  import { Ensforge } from "@ensforge/sdk";
29
29
 
30
- export { Ensforge, EnsforgeProvider, createEnsforgeRegistry, defaultEnsQueryOptions, invalidateEnsforge, invalidateEnsforgeEffect, makeInvalidationKeys, makeMutationHook, makeQueryHook, makeSuspenseQueryHook, prefetchEnsforge, prefetchEnsforgeEffect, prefetchQueryAtom, useAbi, useAbiSuspense, useAddress, useAddressSuspense, useAddresses, useAddressesSuspense, useAlias, useAliasSuspense, useApproveMigration, useApproveName, useApprovePaymentToken, useApproveRenewalPayment, useAvatar, useAvatarSuspense, useCallsStatus, useCallsStatusSuspense, useCanonicalResource, useCanonicalResourceSuspense, useClaimDnsName, useClearAvatar, useClearNameApproval, useClearPrimaryName, useClearRecords, useCommitName, useCommitmentStatus, useCommitmentStatusSuspense, useCompleteRegistration, useContentHash, useContentHashSuspense, useCreateResolver, useCreateSubname, useData, useDataSuspense, useDeleteSubname, useDnsClaimStatus, useDnsClaimStatusSuspense, useDnsImportPlan, useDnsImportPlanSuspense, useDnsRecord, useDnsRecordSuspense, useDnsRecords, useDnsRecordsSuspense, useEnsEvents, useEnsEventsSuspense, useEnsforge, useEnsforgeRegistry, useEstimateCalls, useEstimateCallsSuspense, useExecuteWritePlan, useExpiry, useExpirySuspense, useExtendSubnameExpiry, useFuses, useFusesSuspense, useGetOrCreateResolver, useGrantRegistryRoles, useGrantResolverRoles, useGrantResolverRootRoles, useHasDnsRecords, useHasDnsRecordsSuspense, useHasRegistryRoles, useHasRegistryRolesSuspense, useHasResolverRoles, useHasResolverRolesSuspense, useImportDnsName, useInterface, useInterfaceSuspense, useInvalidateEnsforge, useIsAvailable, useIsAvailableSuspense, useIsMigrated, useIsMigratedSuspense, useIsPaymentTokenSupported, useIsPaymentTokenSupportedSuspense, useIsRenewable, useIsRenewableSuspense, useIsReserved, useIsReservedSuspense, useIsWrapped, useIsWrappedSuspense, useManager, useManagerSuspense, useMigrateName, useMigrateNames, useMigrationEligibility, useMigrationEligibilitySuspense, useMigrationPlan, useMigrationPlanSuspense, useMigrationStatus, useMigrationStatusSuspense, useMigrationTarget, useMigrationTargetSuspense, useNameCapabilities, useNameCapabilitiesSuspense, useNameHistory, useNameHistorySuspense, useNameRecord, useNameRecordSuspense, useNameState, useNameStateSuspense, useNameStatus, useNameStatusSuspense, useOperatorApproval, useOperatorApprovalSuspense, useOwner, useOwnerSuspense, usePredictResolverAddress, usePredictResolverAddressSuspense, usePrepareCalls, usePrepareCallsSuspense, usePrimaryName, usePrimaryNameSuspense, useProtocol, useProtocolSuspense, usePubkey, usePubkeySuspense, useReadBatch, useReadBatchSettled, useReclaimName, useRecordPermissions, useRecordPermissionsSuspense, useRecords, useRegisterName, useRegisterNames, useRegistrant, useRegistrantSuspense, useRegistrationCommitment, useRegistrationCommitmentSuspense, useRegistrationParameters, useRegistrationParametersSuspense, useRegistrationPlan, useRegistrationPlanSuspense, useRegistrationPrice, useRegistrationPriceSuspense, useRegistry, useRegistryCapabilities, useRegistryCapabilitiesSuspense, useRegistryRoles, useRegistryRolesSuspense, useRegistrySuspense, useRenewName, useRenewNames, useRenewalPrice, useRenewalPriceSuspense, useRequiredAuthorization, useRequiredAuthorizationSuspense, useResolve, useResolveBatch, useResolveBatchSuspense, useResolveSuspense, useResolveWithResolver, useResolveWithResolverSuspense, useResolver, useResolverCapabilities, useResolverCapabilitiesSuspense, useResolverDelegateApproval, useResolverDelegateApprovalSuspense, useResolverRoles, useResolverRolesSuspense, useResolverSuspense, useResolverVersion, useResolverVersionSuspense, useResumeCalls, useRevokeRegistryRoles, useRevokeResolverRoles, useRevokeResolverRootRoles, useSendCalls, useSetAbi, useSetAddress, useSetAddresses, useSetAlias, useSetAvatar, useSetChildFuses, useSetContentHash, useSetContractPrimaryName, useSetData, useSetDnsRecords, useSetFuses, useSetInterface, useSetManager, useSetName, useSetOperatorApproval, useSetPrimaryName, useSetPrimaryNameForAddress, useSetPubkey, useSetRecordPermissions, useSetRecords, useSetResolver, useSetResolverAndRecords, useSetResolverDelegateApproval, useSetSubnameExpiry, useSetSubnameManager, useSetSubnameRecord, useSetSubnameResolver, useSetText, useSetTexts, useSetTtl, useSetZoneHash, useSimulateCalls, useSimulateCallsSuspense, useText, useTextSuspense, useTexts, useTextsSuspense, useTokenApproval, useTokenApprovalSuspense, useTokenId, useTokenIdSuspense, useTransferName, useTransferRegistrant, useTransferSubname, useTtl, useTtlSuspense, useUnwrapName, useUpgradeResolver, useWalletCapabilities, useWalletCapabilitiesSuspense, useWatchEnsEvents, useWrapName, useWrapperExpiry, useWrapperExpirySuspense, useWrapperPermissions, useWrapperPermissionsSuspense, useWriteTarget, useWriteTargetSuspense, useZoneHash, useZoneHashSuspense };
30
+ export { Ensforge, EnsforgeProvider, createRegistry, defaultEnsAtomOptions, invalidate, invalidateEffect, makeInvalidationKeys, makeMutationHook, makeQueryHook, makeSuspenseQueryHook, prefetch, prefetchAtom, prefetchEffect, useAbi, useAbiSuspense, useAddress, useAddressSuspense, useAddresses, useAddressesSuspense, useAlias, useAliasSuspense, useApproveMigration, useApproveName, useApprovePaymentToken, useApproveRenewalPayment, useAvatar, useAvatarSuspense, useCallsStatus, useCallsStatusSuspense, useCanonicalResource, useCanonicalResourceSuspense, useClaimDnsName, useClearAvatar, useClearNameApproval, useClearPrimaryName, useClearRecords, useCommitName, useCommitmentStatus, useCommitmentStatusSuspense, useCompleteRegistration, useContentHash, useContentHashSuspense, useCreateResolver, useCreateSubname, useData, useDataSuspense, useDeleteSubname, useDnsClaimStatus, useDnsClaimStatusSuspense, useDnsImportPlan, useDnsImportPlanSuspense, useDnsRecord, useDnsRecordSuspense, useDnsRecords, useDnsRecordsSuspense, useEnsEvents, useEnsEventsSuspense, useEnsforge, useEnsforgeRegistry, useEstimateCalls, useEstimateCallsSuspense, useExecuteWritePlan, useExpiry, useExpirySuspense, useExtendSubnameExpiry, useFuses, useFusesSuspense, useGetOrCreateResolver, useGrantRegistryRoles, useGrantResolverRoles, useGrantResolverRootRoles, useHasDnsRecords, useHasDnsRecordsSuspense, useHasRegistryRoles, useHasRegistryRolesSuspense, useHasResolverRoles, useHasResolverRolesSuspense, useImportDnsName, useInterface, useInterfaceSuspense, useInvalidate, useIsAvailable, useIsAvailableSuspense, useIsMigrated, useIsMigratedSuspense, useIsPaymentTokenSupported, useIsPaymentTokenSupportedSuspense, useIsRenewable, useIsRenewableSuspense, useIsReserved, useIsReservedSuspense, useIsWrapped, useIsWrappedSuspense, useManager, useManagerSuspense, useMigrateName, useMigrateNames, useMigrationEligibility, useMigrationEligibilitySuspense, useMigrationPlan, useMigrationPlanSuspense, useMigrationStatus, useMigrationStatusSuspense, useMigrationTarget, useMigrationTargetSuspense, useNameCapabilities, useNameCapabilitiesSuspense, useNameHistory, useNameHistorySuspense, useNameRecord, useNameRecordSuspense, useNameState, useNameStateSuspense, useNameStatus, useNameStatusSuspense, useOperatorApproval, useOperatorApprovalSuspense, useOwner, useOwnerSuspense, usePredictResolverAddress, usePredictResolverAddressSuspense, usePrepareCalls, usePrepareCallsSuspense, usePrimaryName, usePrimaryNameSuspense, useProtocol, useProtocolSuspense, usePubkey, usePubkeySuspense, useReadBatch, useReadBatchSettled, useReclaimName, useRecordPermissions, useRecordPermissionsSuspense, useRecords, useRegisterName, useRegisterNames, useRegistrant, useRegistrantSuspense, useRegistrationCommitment, useRegistrationCommitmentSuspense, useRegistrationParameters, useRegistrationParametersSuspense, useRegistrationPlan, useRegistrationPlanSuspense, useRegistrationPrice, useRegistrationPriceSuspense, useRegistry, useRegistryCapabilities, useRegistryCapabilitiesSuspense, useRegistryRoles, useRegistryRolesSuspense, useRegistrySuspense, useRenewName, useRenewNames, useRenewalPrice, useRenewalPriceSuspense, useRequiredAuthorization, useRequiredAuthorizationSuspense, useResolve, useResolveBatch, useResolveBatchSuspense, useResolveSuspense, useResolveWithResolver, useResolveWithResolverSuspense, useResolver, useResolverCapabilities, useResolverCapabilitiesSuspense, useResolverDelegateApproval, useResolverDelegateApprovalSuspense, useResolverRoles, useResolverRolesSuspense, useResolverSuspense, useResolverVersion, useResolverVersionSuspense, useResumeCalls, useRevokeRegistryRoles, useRevokeResolverRoles, useRevokeResolverRootRoles, useSendCalls, useSetAbi, useSetAddress, useSetAddresses, useSetAlias, useSetAvatar, useSetChildFuses, useSetContentHash, useSetContractPrimaryName, useSetData, useSetDnsRecords, useSetFuses, useSetInterface, useSetManager, useSetName, useSetOperatorApproval, useSetPrimaryName, useSetPrimaryNameForAddress, useSetPubkey, useSetRecordPermissions, useSetRecords, useSetResolver, useSetResolverAndRecords, useSetResolverDelegateApproval, useSetSubnameExpiry, useSetSubnameManager, useSetSubnameRecord, useSetSubnameResolver, useSetText, useSetTexts, useSetTtl, useSetZoneHash, useSimulateCalls, useSimulateCallsSuspense, useText, useTextSuspense, useTexts, useTextsSuspense, useTokenApproval, useTokenApprovalSuspense, useTokenId, useTokenIdSuspense, useTransferName, useTransferRegistrant, useTransferSubname, useTtl, useTtlSuspense, useUnwrapName, useUpgradeResolver, useWalletCapabilities, useWalletCapabilitiesSuspense, useWatchEnsEvents, useWrapName, useWrapperExpiry, useWrapperExpirySuspense, useWrapperPermissions, useWrapperPermissionsSuspense, useWriteTarget, useWriteTargetSuspense, useZoneHash, useZoneHashSuspense };
@@ -1,12 +1,14 @@
1
+ import { Exit, Schedule } from "effect";
1
2
  //#region src/mutation/options.d.ts
2
- interface EnsMutationCallbacks<Parameters, Success, Failure> {
3
- readonly onError?: (error: Failure | Error, parameters: Parameters) => void;
4
- readonly onSettled?: (data: Success | undefined, error: Failure | Error | null, parameters: Parameters) => void;
5
- readonly onSuccess?: (data: Success, parameters: Parameters) => void;
3
+ interface EnsMutationExecutionOptions<Parameters, Success, Failure> {
4
+ readonly onExit?: (exit: Exit.Exit<Success, Failure>, parameters: Parameters) => void;
6
5
  }
7
- interface EnsMutationOptions<Parameters, Success, Failure> extends EnsMutationCallbacks<Parameters, Success, Failure> {
8
- readonly retry?: false | number;
6
+ interface EnsMutationOptions<Parameters, Success, Failure> extends EnsMutationExecutionOptions<Parameters, Success, Failure> {
7
+ readonly retry?: false | Schedule.Schedule<unknown, Failure>;
8
+ }
9
+ interface EnsMutationDefaults {
10
+ readonly retry?: false | Schedule.Schedule<unknown, unknown>;
9
11
  }
10
12
  //#endregion
11
- export { EnsMutationCallbacks, EnsMutationOptions };
13
+ export { EnsMutationDefaults, EnsMutationExecutionOptions, EnsMutationOptions };
12
14
  //# sourceMappingURL=options.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","names":[],"sources":["../../src/mutation/options.ts"],"mappings":";UAAiB,qBAAqB,YAAY,SAAS;WAChD,WAAW,OAAO,UAAU,OAAO,YAAY;WAC/C,aACP,MAAM,qBACN,OAAO,UAAU,cACjB,YAAY;WAEL,aAAa,MAAM,SAAS,YAAY;;UAGlC,mBAAmB,YAAY,SAAS,iBAAiB,qBACxE,YACA,SACA;WAES"}
1
+ {"version":3,"file":"options.d.ts","names":[],"sources":["../../src/mutation/options.ts"],"mappings":";;UAEiB,4BAA4B,YAAY,SAAS;WACvD,UAAU,MAAM,KAAK,KAAK,SAAS,UAAU,YAAY;;UAGnD,mBACf,YACA,SACA,iBACQ,4BAA4B,YAAY,SAAS;WAChD,gBAAgB,SAAS,kBAAkB;;UAGrC;WACN,gBAAgB,SAAS"}
@@ -1,25 +1,23 @@
1
- import { EnsMutationCallbacks } from "./options.js";
1
+ import { EnsMutationExecutionOptions } from "./options.js";
2
2
  import { Cause, Effect } from "effect";
3
3
  import { AsyncResult } from "effect/unstable/reactivity";
4
4
  //#region src/mutation/result.d.ts
5
- type EnsMutationStatus = "idle" | "pending" | "success" | "error";
6
5
  interface EnsMutationResult<Parameters, Success, Failure> {
7
6
  readonly cause: Cause.Cause<Failure> | null;
8
7
  readonly data: Success | undefined;
9
8
  readonly error: Failure | Error | null;
10
- readonly interrupt: () => void;
11
- readonly isError: boolean;
12
- readonly isIdle: boolean;
13
- readonly isPending: boolean;
14
- readonly isSuccess: boolean;
15
- readonly mutate: (parameters: Parameters, callbacks?: EnsMutationCallbacks<Parameters, Success, Failure>) => void;
9
+ readonly mutate: (parameters: Parameters, options?: EnsMutationExecutionOptions<Parameters, Success, Failure>) => void;
16
10
  readonly mutateAsync: (parameters: Parameters) => Promise<Success>;
17
11
  readonly mutateEffect: (parameters: Parameters) => Effect.Effect<Success, Failure>;
12
+ readonly interrupt: () => void;
13
+ readonly isFailure: boolean;
14
+ readonly isInitial: boolean;
15
+ readonly isSuccess: boolean;
16
+ readonly isWaiting: boolean;
18
17
  readonly parameters: Parameters | undefined;
19
18
  readonly reset: () => void;
20
19
  readonly result: AsyncResult.AsyncResult<Success, Failure>;
21
- readonly status: EnsMutationStatus;
22
20
  }
23
21
  //#endregion
24
- export { EnsMutationResult, EnsMutationStatus };
22
+ export { EnsMutationResult };
25
23
  //# sourceMappingURL=result.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"result.d.ts","names":[],"sources":["../../src/mutation/result.ts"],"mappings":";;;;KAKY;UAEK,kBAAkB,YAAY,SAAS;WAC7C,OAAO,MAAM,MAAM;WACnB,MAAM;WACN,OAAO,UAAU;WACjB;WACA;WACA;WACA;WACA;WACA,SACP,YAAY,YACZ,YAAY,qBAAqB,YAAY,SAAS;WAE/C,cAAc,YAAY,eAAe,QAAQ;WACjD,eAAe,YAAY,eAAe,OAAO,OAAO,SAAS;WACjE,YAAY;WACZ;WACA,QAAQ,YAAY,YAAY,SAAS;WACzC,QAAQ"}
1
+ {"version":3,"file":"result.d.ts","names":[],"sources":["../../src/mutation/result.ts"],"mappings":";;;;UAKiB,kBAAkB,YAAY,SAAS;WAC7C,OAAO,MAAM,MAAM;WACnB,MAAM;WACN,OAAO,UAAU;WACjB,SACP,YAAY,YACZ,UAAU,4BAA4B,YAAY,SAAS;WAEpD,cAAc,YAAY,eAAe,QAAQ;WACjD,eAAe,YAAY,eAAe,OAAO,OAAO,SAAS;WACjE;WACA;WACA;WACA;WACA;WACA,YAAY;WACZ;WACA,QAAQ,YAAY,YAAY,SAAS"}
@@ -1,8 +1,10 @@
1
- import { EnsQueryDefaults } from "../query/options.js";
1
+ import { EnsAtomDefaults } from "../query/options.js";
2
+ import { EnsMutationDefaults } from "../mutation/options.js";
2
3
  import { Ensforge } from "@ensforge/sdk";
3
4
  //#region src/provider/context.d.ts
4
5
  interface EnsforgeReactDefaults {
5
- readonly queries?: EnsQueryDefaults;
6
+ readonly atoms?: EnsAtomDefaults;
7
+ readonly mutations?: EnsMutationDefaults;
6
8
  }
7
9
  //#endregion
8
10
  export { EnsforgeReactDefaults };