@ic-reactor/core 1.10.2 → 1.11.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 CHANGED
@@ -19,7 +19,7 @@ yarn add @ic-reactor/core
19
19
  or you can use the UMD version:
20
20
 
21
21
  ```html
22
- <script src="https://github.com/B3Pay/ic-reactor/releases/download/v1.10.1/ic-reactor-core.min.js"></script>
22
+ <script src="https://github.com/B3Pay/ic-reactor/releases/download/v1.10.3/ic-reactor-core.min.js"></script>
23
23
  ```
24
24
 
25
25
  ### Using `createReactorCore`
@@ -1,9 +1,8 @@
1
1
  import { HttpAgent } from "@dfinity/agent";
2
2
  import { AuthClient } from "@dfinity/auth-client";
3
3
  import type { AuthClientLoginOptions } from "../../types";
4
- import type { AgentStore, AgentManagerParameters, UpdateAgentParameters, AuthState, AuthStore } from "./types";
4
+ import type { AgentStore, AgentManagerParameters, UpdateAgentParameters, AuthStore } from "./types";
5
5
  export declare class AgentManager {
6
- private _anonymousAgent;
7
6
  private _agent;
8
7
  private _auth;
9
8
  private _subscribers;
@@ -12,7 +11,7 @@ export declare class AgentManager {
12
11
  private initialAgentState;
13
12
  private initialAuthState;
14
13
  private updateAgentState;
15
- updateAuthState: (newState: Partial<AuthState>, action?: string) => void;
14
+ private updateAuthState;
16
15
  constructor(options?: AgentManagerParameters);
17
16
  private initializeAgent;
18
17
  subscribeAgent: (callback: (agent: HttpAgent) => void, initialize?: boolean) => () => void;
@@ -46,7 +46,6 @@ class AgentManager {
46
46
  this.updateAgentState = (newState, action) => {
47
47
  this.agentStore.setState((state) => (Object.assign(Object.assign({}, state), newState)), false, action);
48
48
  };
49
- //TODO: make it private
50
49
  this.updateAuthState = (newState, action) => {
51
50
  this.authStore.setState((state) => (Object.assign(Object.assign({}, state), newState)), false, action);
52
51
  };
@@ -60,7 +59,6 @@ class AgentManager {
60
59
  if (network !== "ic") {
61
60
  try {
62
61
  yield this._agent.fetchRootKey();
63
- yield this._anonymousAgent.fetchRootKey();
64
62
  }
65
63
  catch (error) {
66
64
  this.updateAgentState({ error: error, initializing: false }, "error");
@@ -207,7 +205,6 @@ class AgentManager {
207
205
  name: "reactor-agent",
208
206
  store: "auth",
209
207
  });
210
- this._anonymousAgent = agent_1.HttpAgent.createSync(agentOptions);
211
208
  this._agent = agent_1.HttpAgent.createSync(agentOptions);
212
209
  this.initializeAgent();
213
210
  }
package/dist/types.d.ts CHANGED
@@ -55,3 +55,36 @@ export interface CreateReactorCoreReturnType<A = BaseActor> extends AgentManager
55
55
  queryCall: ActorQuery<A>;
56
56
  updateCall: ActorUpdate<A>;
57
57
  }
58
+ export type UnwrapResult<T> = T extends {
59
+ Ok: infer U;
60
+ } ? U : T extends {
61
+ Err: infer E;
62
+ } ? E : T;
63
+ type ExtractOkErr<T> = T extends {
64
+ Ok: infer U;
65
+ } ? {
66
+ OkType: U;
67
+ ErrType: never;
68
+ } : T extends {
69
+ Err: infer E;
70
+ } ? {
71
+ OkType: never;
72
+ ErrType: E;
73
+ } : {
74
+ OkType: T;
75
+ ErrType: never;
76
+ };
77
+ export type CompiledResult<T> = ExtractOkErr<T> extends {
78
+ OkType: infer U;
79
+ ErrType: infer E;
80
+ } ? {
81
+ isOk: true;
82
+ isErr: false;
83
+ value: U;
84
+ error: null;
85
+ } | {
86
+ isOk: false;
87
+ isErr: true;
88
+ value: null;
89
+ error: E;
90
+ } : never;
@@ -1,5 +1,5 @@
1
1
  import { DevtoolsOptions } from "zustand/middleware";
2
- import type { BaseActor, CandidDefenition, IDL } from "../types";
2
+ import type { CompiledResult, BaseActor, CandidDefenition, IDL } from "../types";
3
3
  export declare function createStoreWithOptionalDevtools<T>(initialState: T, config: DevtoolsOptions): Omit<import("zustand/vanilla").StoreApi<T>, "setState"> & {
4
4
  setState<A extends string | {
5
5
  type: string;
@@ -14,3 +14,4 @@ export declare const generateRequestHash: (args?: unknown[]) => `0x${string}`;
14
14
  export declare const generateHash: (field?: unknown) => `0x${string}`;
15
15
  export declare const generateActorHash: (actor: BaseActor) => `0x${string}`;
16
16
  export declare const stringToHash: (str: string) => `0x${string}`;
17
+ export declare function createCompiledResult<T>(result: T): CompiledResult<T>;
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.stringToHash = exports.generateActorHash = exports.generateHash = exports.generateRequestHash = exports.jsonToString = exports.isQuery = exports.getProcessEnvNetwork = exports.isInLocalOrDevelopment = exports.importCandidDefinition = exports.createStoreWithOptionalDevtools = void 0;
12
+ exports.createCompiledResult = exports.stringToHash = exports.generateActorHash = exports.generateHash = exports.generateRequestHash = exports.jsonToString = exports.isQuery = exports.getProcessEnvNetwork = exports.isInLocalOrDevelopment = exports.importCandidDefinition = exports.createStoreWithOptionalDevtools = void 0;
13
13
  const agent_1 = require("@dfinity/agent");
14
14
  const middleware_1 = require("zustand/middleware");
15
15
  const vanilla_1 = require("zustand/vanilla");
@@ -97,3 +97,32 @@ exports.stringToHash = stringToHash;
97
97
  function toHexString(bytes) {
98
98
  return (0, agent_1.toHex)(bytes);
99
99
  }
100
+ /// Helper function for extracting the value from a compiled result { Ok: T } or { Err: E }
101
+ function createCompiledResult(result) {
102
+ if (result && typeof result === "object" && "Ok" in result) {
103
+ return {
104
+ isOk: true,
105
+ isErr: false,
106
+ value: result.Ok,
107
+ error: null,
108
+ };
109
+ }
110
+ else if (result && typeof result === "object" && "Err" in result) {
111
+ return {
112
+ isOk: false,
113
+ isErr: true,
114
+ value: null,
115
+ error: result.Err,
116
+ };
117
+ }
118
+ else {
119
+ // For non-Result types
120
+ return {
121
+ isOk: false,
122
+ isErr: false,
123
+ value: undefined,
124
+ error: null,
125
+ };
126
+ }
127
+ }
128
+ exports.createCompiledResult = createCompiledResult;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ic-reactor/core",
3
- "version": "1.10.2",
3
+ "version": "1.11.0",
4
4
  "description": "A library for intracting with the Internet Computer canisters",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -41,7 +41,7 @@
41
41
  "zustand": "4.5.5"
42
42
  },
43
43
  "devDependencies": {
44
- "@ic-reactor/parser": "0.4.0"
44
+ "@ic-reactor/parser": "^0.4.1"
45
45
  },
46
46
  "scripts": {
47
47
  "test": "NODE_OPTIONS=\"$NODE_OPTIONS --experimental-vm-modules\" jest",
@@ -56,5 +56,5 @@
56
56
  "engines": {
57
57
  "node": ">=10"
58
58
  },
59
- "gitHead": "3c9a15a85b8fcef02c5a3aaaeffecb91ad647ed2"
59
+ "gitHead": "03b85c107e062dc52e4feee4864ed78db5a97294"
60
60
  }