@ensforge/react 0.1.0 → 0.2.0
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.
- package/README.md +17 -10
- package/dist/atoms/batch.d.ts +6 -6
- package/dist/atoms/batch.d.ts.map +1 -1
- package/dist/atoms/capabilities.d.ts +23 -23
- package/dist/atoms/capabilities.d.ts.map +1 -1
- package/dist/atoms/dns.d.ts +16 -14
- package/dist/atoms/dns.d.ts.map +1 -1
- package/dist/atoms/events.d.ts +42 -42
- package/dist/atoms/events.d.ts.map +1 -1
- package/dist/atoms/generic.d.ts +8 -5
- package/dist/atoms/generic.d.ts.map +1 -1
- package/dist/atoms/generic.js.map +1 -1
- package/dist/atoms/migration.d.ts +6 -6
- package/dist/atoms/migration.d.ts.map +1 -1
- package/dist/atoms/name.d.ts +24 -24
- package/dist/atoms/name.d.ts.map +1 -1
- package/dist/atoms/ownership.d.ts +2 -2
- package/dist/atoms/ownership.d.ts.map +1 -1
- package/dist/atoms/query.d.ts +6 -11
- package/dist/atoms/query.d.ts.map +1 -1
- package/dist/atoms/query.js +14 -11
- package/dist/atoms/query.js.map +1 -1
- package/dist/atoms/records.d.ts +13 -13
- package/dist/atoms/records.d.ts.map +1 -1
- package/dist/atoms/registration.d.ts +41 -11
- package/dist/atoms/registration.d.ts.map +1 -1
- package/dist/atoms/resolution.d.ts +10 -10
- package/dist/atoms/resolution.d.ts.map +1 -1
- package/dist/atoms/reverse.d.ts +2 -2
- package/dist/atoms/reverse.d.ts.map +1 -1
- package/dist/atoms/stream.d.ts +2 -2
- package/dist/atoms/stream.d.ts.map +1 -1
- package/dist/atoms/stream.js +6 -4
- package/dist/atoms/stream.js.map +1 -1
- package/dist/atoms/wrapping.d.ts +3 -3
- package/dist/atoms/wrapping.d.ts.map +1 -1
- package/dist/atoms.d.ts +3 -2
- package/dist/atoms.js +3 -2
- package/dist/cache/invalidation.d.ts +5 -5
- package/dist/cache/invalidation.d.ts.map +1 -1
- package/dist/cache/invalidation.js +3 -3
- package/dist/cache/invalidation.js.map +1 -1
- package/dist/cache/prefetch.d.ts +5 -4
- package/dist/cache/prefetch.d.ts.map +1 -1
- package/dist/cache/prefetch.js +3 -3
- package/dist/cache/prefetch.js.map +1 -1
- package/dist/cache/registry.d.ts +3 -3
- package/dist/cache/registry.d.ts.map +1 -1
- package/dist/cache/registry.js +2 -2
- package/dist/cache/registry.js.map +1 -1
- package/dist/cache.d.ts +4 -4
- package/dist/cache.js +4 -4
- package/dist/hooks/batch.d.ts +13 -13
- package/dist/hooks/batch.d.ts.map +1 -1
- package/dist/hooks/capabilities.d.ts +119 -119
- package/dist/hooks/capabilities.d.ts.map +1 -1
- package/dist/hooks/dns.d.ts +44 -40
- package/dist/hooks/dns.d.ts.map +1 -1
- package/dist/hooks/events.d.ts +132 -132
- package/dist/hooks/events.d.ts.map +1 -1
- package/dist/hooks/generic.d.ts +8 -6
- package/dist/hooks/generic.d.ts.map +1 -1
- package/dist/hooks/generic.js.map +1 -1
- package/dist/hooks/index.d.ts +4 -4
- package/dist/hooks/migration.d.ts +28 -28
- package/dist/hooks/migration.d.ts.map +1 -1
- package/dist/hooks/name.d.ts +77 -77
- package/dist/hooks/name.d.ts.map +1 -1
- package/dist/hooks/ownership.d.ts +5 -5
- package/dist/hooks/ownership.d.ts.map +1 -1
- package/dist/hooks/records.d.ts +70 -70
- package/dist/hooks/records.d.ts.map +1 -1
- package/dist/hooks/registration.d.ts +108 -48
- package/dist/hooks/registration.d.ts.map +1 -1
- package/dist/hooks/resolution.d.ts +35 -35
- package/dist/hooks/resolution.d.ts.map +1 -1
- package/dist/hooks/reverse.d.ts +9 -9
- package/dist/hooks/reverse.d.ts.map +1 -1
- package/dist/hooks/use-cache.d.ts +6 -6
- package/dist/hooks/use-cache.d.ts.map +1 -1
- package/dist/hooks/use-cache.js +4 -4
- package/dist/hooks/use-cache.js.map +1 -1
- package/dist/hooks/use-mutation.js +16 -31
- package/dist/hooks/use-mutation.js.map +1 -1
- package/dist/hooks/use-query.d.ts +6 -6
- package/dist/hooks/use-query.d.ts.map +1 -1
- package/dist/hooks/use-query.js +24 -52
- package/dist/hooks/use-query.js.map +1 -1
- package/dist/hooks/use-suspense-query.d.ts +9 -8
- package/dist/hooks/use-suspense-query.d.ts.map +1 -1
- package/dist/hooks/use-suspense-query.js +5 -5
- package/dist/hooks/use-suspense-query.js.map +1 -1
- package/dist/hooks/wrapping.d.ts +7 -7
- package/dist/hooks/wrapping.d.ts.map +1 -1
- package/dist/index.d.ts +13 -13
- package/dist/index.js +7 -7
- package/dist/mutation/options.d.ts +9 -7
- package/dist/mutation/options.d.ts.map +1 -1
- package/dist/mutation/result.d.ts +8 -10
- package/dist/mutation/result.d.ts.map +1 -1
- package/dist/provider/context.d.ts +4 -2
- package/dist/provider/context.d.ts.map +1 -1
- package/dist/provider/context.js.map +1 -1
- package/dist/provider/ensforge-provider.d.ts +2 -1
- package/dist/provider/ensforge-provider.d.ts.map +1 -1
- package/dist/provider/ensforge-provider.js +2 -1
- package/dist/provider/ensforge-provider.js.map +1 -1
- package/dist/query/options.d.ts +27 -24
- package/dist/query/options.d.ts.map +1 -1
- package/dist/query/options.js +26 -12
- package/dist/query/options.js.map +1 -1
- package/dist/query/result.d.ts +7 -13
- package/dist/query/result.d.ts.map +1 -1
- package/dist/query/result.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,25 +1,23 @@
|
|
|
1
|
-
import {
|
|
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
|
|
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
|
|
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":";;;;
|
|
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 {
|
|
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
|
|
6
|
+
readonly atoms?: EnsAtomDefaults;
|
|
7
|
+
readonly mutations?: EnsMutationDefaults;
|
|
6
8
|
}
|
|
7
9
|
//#endregion
|
|
8
10
|
export { EnsforgeReactDefaults };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","names":[],"sources":["../../src/provider/context.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"context.d.ts","names":[],"sources":["../../src/provider/context.ts"],"mappings":";;;;UASiB;WACN,QAAQ;WACR,YAAY"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","names":[],"sources":["../../src/provider/context.ts"],"sourcesContent":["\"use client\";\n\nimport { createContext, useContext } from \"react\";\n\nimport type { Ensforge } from \"@ensforge/sdk\";\n\nimport type {
|
|
1
|
+
{"version":3,"file":"context.js","names":[],"sources":["../../src/provider/context.ts"],"sourcesContent":["\"use client\";\n\nimport { createContext, useContext } from \"react\";\n\nimport type { Ensforge } from \"@ensforge/sdk\";\n\nimport type { EnsMutationDefaults } from \"../mutation/options.js\";\nimport type { EnsAtomDefaults } from \"../query/options.js\";\n\nexport interface EnsforgeReactDefaults {\n readonly atoms?: EnsAtomDefaults;\n readonly mutations?: EnsMutationDefaults;\n}\n\nexport interface EnsforgeReactContextValue {\n readonly defaults: EnsforgeReactDefaults;\n readonly sdk: Ensforge;\n}\n\nexport const EnsforgeReactContext = createContext<EnsforgeReactContextValue | undefined>(undefined);\n\nexport const useEnsforgeContext = (): EnsforgeReactContextValue => {\n const value = useContext(EnsforgeReactContext);\n if (value === undefined) {\n throw new Error(\"Ensforge React hooks must be used inside an EnsforgeProvider\");\n }\n return value;\n};\n"],"mappings":";;;;;AAmBA,MAAa,uBAAuB,cAAqD,MAAS;AAElG,MAAa,2BAAsD;CACjE,MAAM,QAAQ,WAAW,oBAAoB;CAC7C,IAAI,UAAU,QACZ,MAAM,IAAI,MAAM,8DAA8D;CAEhF,OAAO;AACT"}
|
|
@@ -2,6 +2,7 @@ import { EnsforgeReactDefaults } from "./context.js";
|
|
|
2
2
|
import { CreateConfigParameters, Ensforge } from "@ensforge/sdk";
|
|
3
3
|
import { AtomRegistry } from "effect/unstable/reactivity";
|
|
4
4
|
import { ReactNode } from "react";
|
|
5
|
+
import { CreateWagmiConfigParameters } from "@ensforge/sdk/wagmi";
|
|
5
6
|
//#region src/provider/ensforge-provider.d.ts
|
|
6
7
|
interface SharedEnsforgeProviderProps {
|
|
7
8
|
readonly children?: ReactNode;
|
|
@@ -10,7 +11,7 @@ interface SharedEnsforgeProviderProps {
|
|
|
10
11
|
readonly registry?: AtomRegistry.AtomRegistry;
|
|
11
12
|
}
|
|
12
13
|
type EnsforgeProviderProps = SharedEnsforgeProviderProps & ({
|
|
13
|
-
readonly config: CreateConfigParameters;
|
|
14
|
+
readonly config: CreateConfigParameters | CreateWagmiConfigParameters;
|
|
14
15
|
readonly sdk?: never;
|
|
15
16
|
} | {
|
|
16
17
|
readonly config?: never;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensforge-provider.d.ts","names":[],"sources":["../../src/provider/ensforge-provider.tsx"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ensforge-provider.d.ts","names":[],"sources":["../../src/provider/ensforge-provider.tsx"],"mappings":";;;;;;UAmBU;WACC,WAAW;WACX;WACA,WAAW;WACX,WAAW,aAAa;;KAGvB,wBAAwB;WAGnB,QAAQ,yBAAyB;WACjC;;WAGA;WACA,KAAK;;cAIT,mBAAoB,OAAO,0CAAqB,IAAA"}
|
|
@@ -4,6 +4,7 @@ import { EnsforgeReactContext } from "./context.js";
|
|
|
4
4
|
import { Ensforge } from "@ensforge/sdk";
|
|
5
5
|
import { RegistryContext, RegistryProvider } from "@effect/atom-react";
|
|
6
6
|
import { useRef } from "react";
|
|
7
|
+
import { createEnsforge } from "@ensforge/sdk/wagmi";
|
|
7
8
|
import { jsx } from "react/jsx-runtime";
|
|
8
9
|
|
|
9
10
|
//#region src/provider/ensforge-provider.tsx
|
|
@@ -11,7 +12,7 @@ const EnsforgeProvider = (props) => {
|
|
|
11
12
|
const valueRef = useRef(void 0);
|
|
12
13
|
if (valueRef.current === void 0) valueRef.current = Object.freeze({
|
|
13
14
|
defaults: Object.freeze(props.defaults ?? {}),
|
|
14
|
-
sdk: props.sdk ?? new Ensforge(props.config)
|
|
15
|
+
sdk: props.sdk ?? ("wagmiConfig" in props.config ? createEnsforge(props.config) : new Ensforge(props.config))
|
|
15
16
|
});
|
|
16
17
|
const children = /* @__PURE__ */ jsx(EnsforgeReactContext.Provider, {
|
|
17
18
|
value: valueRef.current,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensforge-provider.js","names":[],"sources":["../../src/provider/ensforge-provider.tsx"],"sourcesContent":["\"use client\";\n\nimport { useRef, type ReactNode } from \"react\";\n\nimport { RegistryContext, RegistryProvider } from \"@effect/atom-react\";\nimport type { AtomRegistry } from \"effect/unstable/reactivity\";\n\nimport { Ensforge, type CreateConfigParameters } from \"@ensforge/sdk\";\n\nimport {\n EnsforgeReactContext,\n type EnsforgeReactContextValue,\n type EnsforgeReactDefaults,\n} from \"./context.js\";\n\ninterface SharedEnsforgeProviderProps {\n readonly children?: ReactNode;\n readonly defaultIdleTTL?: number;\n readonly defaults?: EnsforgeReactDefaults;\n readonly registry?: AtomRegistry.AtomRegistry;\n}\n\nexport type EnsforgeProviderProps = SharedEnsforgeProviderProps &\n (\n | {\n readonly config: CreateConfigParameters;\n readonly sdk?: never;\n }\n | {\n readonly config?: never;\n readonly sdk: Ensforge;\n }\n );\n\nexport const EnsforgeProvider = (props: EnsforgeProviderProps) => {\n const valueRef = useRef<EnsforgeReactContextValue | undefined>(undefined);\n\n if (valueRef.current === undefined) {\n valueRef.current = Object.freeze({\n defaults: Object.freeze(props.defaults ?? {}),\n sdk
|
|
1
|
+
{"version":3,"file":"ensforge-provider.js","names":["createWagmiEnsforge"],"sources":["../../src/provider/ensforge-provider.tsx"],"sourcesContent":["\"use client\";\n\nimport { useRef, type ReactNode } from \"react\";\n\nimport { RegistryContext, RegistryProvider } from \"@effect/atom-react\";\nimport type { AtomRegistry } from \"effect/unstable/reactivity\";\n\nimport { Ensforge, type CreateConfigParameters } from \"@ensforge/sdk\";\nimport {\n createEnsforge as createWagmiEnsforge,\n type CreateWagmiConfigParameters,\n} from \"@ensforge/sdk/wagmi\";\n\nimport {\n EnsforgeReactContext,\n type EnsforgeReactContextValue,\n type EnsforgeReactDefaults,\n} from \"./context.js\";\n\ninterface SharedEnsforgeProviderProps {\n readonly children?: ReactNode;\n readonly defaultIdleTTL?: number;\n readonly defaults?: EnsforgeReactDefaults;\n readonly registry?: AtomRegistry.AtomRegistry;\n}\n\nexport type EnsforgeProviderProps = SharedEnsforgeProviderProps &\n (\n | {\n readonly config: CreateConfigParameters | CreateWagmiConfigParameters;\n readonly sdk?: never;\n }\n | {\n readonly config?: never;\n readonly sdk: Ensforge;\n }\n );\n\nexport const EnsforgeProvider = (props: EnsforgeProviderProps) => {\n const valueRef = useRef<EnsforgeReactContextValue | undefined>(undefined);\n\n if (valueRef.current === undefined) {\n valueRef.current = Object.freeze({\n defaults: Object.freeze(props.defaults ?? {}),\n sdk:\n props.sdk ??\n (\"wagmiConfig\" in props.config\n ? createWagmiEnsforge(props.config)\n : new Ensforge(props.config)),\n });\n }\n\n const children = (\n <EnsforgeReactContext.Provider value={valueRef.current}>\n {props.children}\n </EnsforgeReactContext.Provider>\n );\n\n return props.registry === undefined ? (\n <RegistryProvider defaultIdleTTL={props.defaultIdleTTL}>{children}</RegistryProvider>\n ) : (\n <RegistryContext.Provider value={props.registry}>{children}</RegistryContext.Provider>\n );\n};\n"],"mappings":";;;;;;;;;;AAsCA,MAAa,oBAAoB,UAAiC;CAChE,MAAM,WAAW,OAA8C,MAAS;CAExE,IAAI,SAAS,YAAY,QACvB,SAAS,UAAU,OAAO,OAAO;EAC/B,UAAU,OAAO,OAAO,MAAM,YAAY,CAAC,CAAC;EAC5C,KACE,MAAM,QACL,iBAAiB,MAAM,SACpBA,eAAoB,MAAM,MAAM,IAChC,IAAI,SAAS,MAAM,MAAM;CACjC,CAAC;CAGH,MAAM,WACJ,oBAAC,qBAAqB,UAAtB;EAA+B,OAAO,SAAS;YAC5C,MAAM;CACsB;CAGjC,OAAO,MAAM,aAAa,SACxB,oBAAC,kBAAD;EAAkB,gBAAgB,MAAM;EAAiB;CAA2B,KAEpF,oBAAC,gBAAgB,UAAjB;EAA0B,OAAO,MAAM;EAAW;CAAmC;AAEzF"}
|
package/dist/query/options.d.ts
CHANGED
|
@@ -1,31 +1,34 @@
|
|
|
1
|
+
import { Duration, Schedule } from "effect";
|
|
1
2
|
//#region src/query/options.d.ts
|
|
2
|
-
interface
|
|
3
|
-
readonly
|
|
4
|
-
readonly
|
|
5
|
-
readonly
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
readonly
|
|
9
|
-
readonly
|
|
3
|
+
interface EnsAtomSwrOptions {
|
|
4
|
+
readonly revalidateOnFocus?: boolean | "always";
|
|
5
|
+
readonly revalidateOnMount?: boolean;
|
|
6
|
+
readonly staleTime?: Duration.Input;
|
|
7
|
+
}
|
|
8
|
+
interface EnsAtomOptions<Failure = unknown> {
|
|
9
|
+
readonly idleTTL?: Duration.Input;
|
|
10
|
+
readonly refreshInterval?: false | Duration.Input;
|
|
11
|
+
readonly retry?: false | Schedule.Schedule<unknown, Failure>;
|
|
12
|
+
readonly swr?: false | EnsAtomSwrOptions;
|
|
10
13
|
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
readonly
|
|
14
|
-
readonly
|
|
15
|
-
readonly
|
|
16
|
-
readonly staleTime?: number;
|
|
14
|
+
type EnsAtomDefaults = EnsAtomOptions<unknown>;
|
|
15
|
+
interface ResolvedEnsAtomSwrOptions {
|
|
16
|
+
readonly revalidateOnFocus: boolean | "always";
|
|
17
|
+
readonly revalidateOnMount: boolean;
|
|
18
|
+
readonly staleTime: Duration.Input;
|
|
17
19
|
}
|
|
18
|
-
interface
|
|
19
|
-
readonly
|
|
20
|
-
readonly
|
|
21
|
-
readonly
|
|
22
|
-
readonly
|
|
23
|
-
readonly staleTime: number;
|
|
20
|
+
interface ResolvedEnsAtomOptions<Failure = unknown> {
|
|
21
|
+
readonly idleTTL: Duration.Input;
|
|
22
|
+
readonly refreshInterval: false | Duration.Input;
|
|
23
|
+
readonly retry: false | Schedule.Schedule<unknown, Failure>;
|
|
24
|
+
readonly swr: false | ResolvedEnsAtomSwrOptions;
|
|
24
25
|
}
|
|
25
|
-
declare const
|
|
26
|
-
type
|
|
27
|
-
readonly
|
|
26
|
+
declare const defaultEnsAtomOptions: ResolvedEnsAtomOptions;
|
|
27
|
+
type UseEnsAtomParameters<Parameters, Success, Failure, Mapped = Success> = Parameters & {
|
|
28
|
+
readonly atom?: EnsAtomOptions<Failure>;
|
|
29
|
+
readonly enabled?: boolean;
|
|
30
|
+
readonly map?: (value: Success) => Mapped;
|
|
28
31
|
};
|
|
29
32
|
//#endregion
|
|
30
|
-
export {
|
|
33
|
+
export { EnsAtomDefaults, EnsAtomOptions, EnsAtomSwrOptions, ResolvedEnsAtomOptions, ResolvedEnsAtomSwrOptions, UseEnsAtomParameters, defaultEnsAtomOptions };
|
|
31
34
|
//# sourceMappingURL=options.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.d.ts","names":[],"sources":["../../src/query/options.ts"],"mappings":";
|
|
1
|
+
{"version":3,"file":"options.d.ts","names":[],"sources":["../../src/query/options.ts"],"mappings":";;UAEiB;WACN;WACA;WACA,YAAY,SAAS;;UAGf,eAAe;WACrB,UAAU,SAAS;WACnB,0BAA0B,SAAS;WACnC,gBAAgB,SAAS,kBAAkB;WAC3C,cAAc;;KAGb,kBAAkB;UAEb;WACN;WACA;WACA,WAAW,SAAS;;UAGd,uBAAuB;WAC7B,SAAS,SAAS;WAClB,yBAAyB,SAAS;WAClC,eAAe,SAAS,kBAAkB;WAC1C,aAAa;;cAGX,uBAAuB;KA6CxB,qBAAqB,YAAY,SAAS,SAAS,SAAS,WAAW;WACxE,OAAO,eAAe;WACtB;WACA,OAAO,OAAO,YAAY"}
|
package/dist/query/options.js
CHANGED
|
@@ -1,19 +1,33 @@
|
|
|
1
1
|
//#region src/query/options.ts
|
|
2
|
-
const
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
refetchOnWindowFocus: false,
|
|
2
|
+
const defaultEnsAtomOptions = Object.freeze({
|
|
3
|
+
idleTTL: 3e5,
|
|
4
|
+
refreshInterval: false,
|
|
6
5
|
retry: false,
|
|
7
|
-
|
|
6
|
+
swr: Object.freeze({
|
|
7
|
+
revalidateOnFocus: false,
|
|
8
|
+
revalidateOnMount: true,
|
|
9
|
+
staleTime: 3e4
|
|
10
|
+
})
|
|
8
11
|
});
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
const resolveSwrOptions = (defaults, options) => {
|
|
13
|
+
const selected = options?.swr ?? defaults?.swr ?? defaultEnsAtomOptions.swr;
|
|
14
|
+
if (selected === false) return false;
|
|
15
|
+
const fallback = defaultEnsAtomOptions.swr;
|
|
16
|
+
if (fallback === false) return false;
|
|
17
|
+
const defaultSwr = defaults?.swr === false ? void 0 : defaults?.swr;
|
|
18
|
+
return {
|
|
19
|
+
revalidateOnFocus: selected.revalidateOnFocus ?? defaultSwr?.revalidateOnFocus ?? fallback.revalidateOnFocus,
|
|
20
|
+
revalidateOnMount: selected.revalidateOnMount ?? defaultSwr?.revalidateOnMount ?? fallback.revalidateOnMount,
|
|
21
|
+
staleTime: selected.staleTime ?? defaultSwr?.staleTime ?? fallback.staleTime
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
const resolveEnsAtomOptions = (defaults, options) => ({
|
|
25
|
+
idleTTL: options?.idleTTL ?? defaults?.idleTTL ?? defaultEnsAtomOptions.idleTTL,
|
|
26
|
+
refreshInterval: options?.refreshInterval ?? defaults?.refreshInterval ?? defaultEnsAtomOptions.refreshInterval,
|
|
27
|
+
retry: options?.retry ?? defaults?.retry ?? false,
|
|
28
|
+
swr: resolveSwrOptions(defaults, options)
|
|
15
29
|
});
|
|
16
30
|
|
|
17
31
|
//#endregion
|
|
18
|
-
export {
|
|
32
|
+
export { defaultEnsAtomOptions, resolveEnsAtomOptions };
|
|
19
33
|
//# sourceMappingURL=options.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.js","names":[],"sources":["../../src/query/options.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"options.js","names":[],"sources":["../../src/query/options.ts"],"sourcesContent":["import type { Duration, Schedule } from \"effect\";\n\nexport interface EnsAtomSwrOptions {\n readonly revalidateOnFocus?: boolean | \"always\";\n readonly revalidateOnMount?: boolean;\n readonly staleTime?: Duration.Input;\n}\n\nexport interface EnsAtomOptions<Failure = unknown> {\n readonly idleTTL?: Duration.Input;\n readonly refreshInterval?: false | Duration.Input;\n readonly retry?: false | Schedule.Schedule<unknown, Failure>;\n readonly swr?: false | EnsAtomSwrOptions;\n}\n\nexport type EnsAtomDefaults = EnsAtomOptions<unknown>;\n\nexport interface ResolvedEnsAtomSwrOptions {\n readonly revalidateOnFocus: boolean | \"always\";\n readonly revalidateOnMount: boolean;\n readonly staleTime: Duration.Input;\n}\n\nexport interface ResolvedEnsAtomOptions<Failure = unknown> {\n readonly idleTTL: Duration.Input;\n readonly refreshInterval: false | Duration.Input;\n readonly retry: false | Schedule.Schedule<unknown, Failure>;\n readonly swr: false | ResolvedEnsAtomSwrOptions;\n}\n\nexport const defaultEnsAtomOptions: ResolvedEnsAtomOptions = Object.freeze({\n idleTTL: 5 * 60_000,\n refreshInterval: false,\n retry: false,\n swr: Object.freeze({\n revalidateOnFocus: false,\n revalidateOnMount: true,\n staleTime: 30_000,\n }),\n});\n\nconst resolveSwrOptions = <Failure>(\n defaults: EnsAtomDefaults | undefined,\n options: EnsAtomOptions<Failure> | undefined,\n): false | ResolvedEnsAtomSwrOptions => {\n const selected = options?.swr ?? defaults?.swr ?? defaultEnsAtomOptions.swr;\n if (selected === false) return false;\n\n const fallback = defaultEnsAtomOptions.swr;\n if (fallback === false) return false;\n const defaultSwr = defaults?.swr === false ? undefined : defaults?.swr;\n\n return {\n revalidateOnFocus:\n selected.revalidateOnFocus ?? defaultSwr?.revalidateOnFocus ?? fallback.revalidateOnFocus,\n revalidateOnMount:\n selected.revalidateOnMount ?? defaultSwr?.revalidateOnMount ?? fallback.revalidateOnMount,\n staleTime: selected.staleTime ?? defaultSwr?.staleTime ?? fallback.staleTime,\n };\n};\n\nexport const resolveEnsAtomOptions = <Failure>(\n defaults: EnsAtomDefaults | undefined,\n options: EnsAtomOptions<Failure> | undefined,\n): ResolvedEnsAtomOptions<Failure> => ({\n idleTTL: options?.idleTTL ?? defaults?.idleTTL ?? defaultEnsAtomOptions.idleTTL,\n refreshInterval:\n options?.refreshInterval ?? defaults?.refreshInterval ?? defaultEnsAtomOptions.refreshInterval,\n retry:\n options?.retry ??\n (defaults?.retry as false | Schedule.Schedule<unknown, Failure> | undefined) ??\n false,\n swr: resolveSwrOptions(defaults, options),\n});\n\nexport type UseEnsAtomParameters<Parameters, Success, Failure, Mapped = Success> = Parameters & {\n readonly atom?: EnsAtomOptions<Failure>;\n readonly enabled?: boolean;\n readonly map?: (value: Success) => Mapped;\n};\n"],"mappings":";AA8BA,MAAa,wBAAgD,OAAO,OAAO;CACzE,SAAS;CACT,iBAAiB;CACjB,OAAO;CACP,KAAK,OAAO,OAAO;EACjB,mBAAmB;EACnB,mBAAmB;EACnB,WAAW;CACb,CAAC;AACH,CAAC;AAED,MAAM,qBACJ,UACA,YACsC;CACtC,MAAM,WAAW,SAAS,OAAO,UAAU,OAAO,sBAAsB;CACxE,IAAI,aAAa,OAAO,OAAO;CAE/B,MAAM,WAAW,sBAAsB;CACvC,IAAI,aAAa,OAAO,OAAO;CAC/B,MAAM,aAAa,UAAU,QAAQ,QAAQ,SAAY,UAAU;CAEnE,OAAO;EACL,mBACE,SAAS,qBAAqB,YAAY,qBAAqB,SAAS;EAC1E,mBACE,SAAS,qBAAqB,YAAY,qBAAqB,SAAS;EAC1E,WAAW,SAAS,aAAa,YAAY,aAAa,SAAS;CACrE;AACF;AAEA,MAAa,yBACX,UACA,aACqC;CACrC,SAAS,SAAS,WAAW,UAAU,WAAW,sBAAsB;CACxE,iBACE,SAAS,mBAAmB,UAAU,mBAAmB,sBAAsB;CACjF,OACE,SAAS,SACR,UAAU,SACX;CACF,KAAK,kBAAkB,UAAU,OAAO;AAC1C"}
|
package/dist/query/result.d.ts
CHANGED
|
@@ -1,25 +1,19 @@
|
|
|
1
1
|
import { Cause, Effect } from "effect";
|
|
2
2
|
import { AsyncResult } from "effect/unstable/reactivity";
|
|
3
3
|
//#region src/query/result.d.ts
|
|
4
|
-
|
|
5
|
-
type EnsFetchStatus = "idle" | "fetching";
|
|
6
|
-
interface EnsQueryResult<Success, Failure> {
|
|
4
|
+
interface EnsAtomResult<Success, Failure> {
|
|
7
5
|
readonly cause: Cause.Cause<Failure> | null;
|
|
8
6
|
readonly data: Success | undefined;
|
|
9
7
|
readonly error: Failure | Error | null;
|
|
10
|
-
readonly
|
|
11
|
-
readonly
|
|
12
|
-
readonly isFetching: boolean;
|
|
13
|
-
readonly isLoading: boolean;
|
|
14
|
-
readonly isPending: boolean;
|
|
15
|
-
readonly isRefetching: boolean;
|
|
8
|
+
readonly isFailure: boolean;
|
|
9
|
+
readonly isInitial: boolean;
|
|
16
10
|
readonly isSuccess: boolean;
|
|
17
|
-
readonly
|
|
18
|
-
readonly
|
|
11
|
+
readonly isWaiting: boolean;
|
|
12
|
+
readonly refresh: () => Promise<Success>;
|
|
13
|
+
readonly refreshEffect: () => Effect.Effect<Success, Failure>;
|
|
19
14
|
readonly result: AsyncResult.AsyncResult<Success, Failure>;
|
|
20
|
-
readonly status: EnsQueryStatus;
|
|
21
15
|
readonly updatedAt: number | undefined;
|
|
22
16
|
}
|
|
23
17
|
//#endregion
|
|
24
|
-
export {
|
|
18
|
+
export { EnsAtomResult };
|
|
25
19
|
//# sourceMappingURL=result.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result.d.ts","names":[],"sources":["../../src/query/result.ts"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"result.d.ts","names":[],"sources":["../../src/query/result.ts"],"mappings":";;;UAGiB,cAAc,SAAS;WAC7B,OAAO,MAAM,MAAM;WACnB,MAAM;WACN,OAAO,UAAU;WACjB;WACA;WACA;WACA;WACA,eAAe,QAAQ;WACvB,qBAAqB,OAAO,OAAO,SAAS;WAC5C,QAAQ,YAAY,YAAY,SAAS;WACzC"}
|
package/dist/query/result.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result.js","names":[],"sources":["../../src/query/result.ts"],"sourcesContent":["import { Cause, Option, type Effect } from \"effect\";\nimport { AsyncResult } from \"effect/unstable/reactivity\";\n\nexport
|
|
1
|
+
{"version":3,"file":"result.js","names":[],"sources":["../../src/query/result.ts"],"sourcesContent":["import { Cause, Option, type Effect } from \"effect\";\nimport { AsyncResult } from \"effect/unstable/reactivity\";\n\nexport interface EnsAtomResult<Success, Failure> {\n readonly cause: Cause.Cause<Failure> | null;\n readonly data: Success | undefined;\n readonly error: Failure | Error | null;\n readonly isFailure: boolean;\n readonly isInitial: boolean;\n readonly isSuccess: boolean;\n readonly isWaiting: boolean;\n readonly refresh: () => Promise<Success>;\n readonly refreshEffect: () => Effect.Effect<Success, Failure>;\n readonly result: AsyncResult.AsyncResult<Success, Failure>;\n readonly updatedAt: number | undefined;\n}\n\nexport const errorFromCause = <Failure>(cause: Cause.Cause<Failure>): Failure | Error => {\n const typedError = Cause.findErrorOption(cause);\n if (Option.isSome(typedError)) return typedError.value;\n\n const squashed = Cause.squash(cause);\n return squashed instanceof Error\n ? squashed\n : new Error(\"An unexpected Effect failure occurred\", { cause: squashed });\n};\n\nexport const resultUpdatedAt = <Success, Failure>(\n result: AsyncResult.AsyncResult<Success, Failure>,\n): number | undefined => {\n if (AsyncResult.isSuccess(result)) return result.timestamp;\n if (!AsyncResult.isFailure(result)) return undefined;\n return Option.getOrUndefined(result.previousSuccess)?.timestamp;\n};\n"],"mappings":";;;;AAiBA,MAAa,kBAA2B,UAAiD;CACvF,MAAM,aAAa,MAAM,gBAAgB,KAAK;CAC9C,IAAI,OAAO,OAAO,UAAU,GAAG,OAAO,WAAW;CAEjD,MAAM,WAAW,MAAM,OAAO,KAAK;CACnC,OAAO,oBAAoB,QACvB,WACA,IAAI,MAAM,yCAAyC,EAAE,OAAO,SAAS,CAAC;AAC5E;AAEA,MAAa,mBACX,WACuB;CACvB,IAAI,YAAY,UAAU,MAAM,GAAG,OAAO,OAAO;CACjD,IAAI,CAAC,YAAY,UAAU,MAAM,GAAG,OAAO;CAC3C,OAAO,OAAO,eAAe,OAAO,eAAe,CAAC,EAAE;AACxD"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ensforge/react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Reactive React hooks for ENS",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ens",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"viem",
|
|
13
13
|
"wagmi"
|
|
14
14
|
],
|
|
15
|
-
"homepage": "https://
|
|
15
|
+
"homepage": "https://ensforge.envoy1084.xyz/react/",
|
|
16
16
|
"bugs": "https://github.com/envoy1084/ensforge/issues",
|
|
17
17
|
"license": "Apache-2.0",
|
|
18
18
|
"repository": {
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"@effect/atom-react": "4.0.0-rc.112",
|
|
43
|
-
"@ensforge/sdk": "0.
|
|
43
|
+
"@ensforge/sdk": "0.2.0"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"@testing-library/react": "16.3.0",
|