@dxos/react-edge-client 0.8.1-main.ba2dec9 → 0.8.1-staging.31c3ee1
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/dist/lib/browser/index.mjs +18 -37
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node/index.cjs +18 -37
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +18 -37
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/types/src/hooks/index.d.ts +0 -1
- package/dist/types/src/hooks/index.d.ts.map +1 -1
- package/dist/types/src/hooks/useEdgeClient.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -1
- package/dist/types/src/index.d.ts.map +1 -1
- package/package.json +10 -8
- package/src/hooks/index.ts +0 -1
- package/src/hooks/useEdgeClient.ts +11 -2
- package/src/index.ts +1 -1
- package/dist/types/src/hooks/useQueue.d.ts +0 -11
- package/dist/types/src/hooks/useQueue.d.ts.map +0 -1
- package/src/hooks/useQueue.ts +0 -52
|
@@ -1,59 +1,40 @@
|
|
|
1
|
+
// packages/sdk/react-edge-client/src/index.ts
|
|
2
|
+
import { EdgeHttpClient as EdgeHttpClient2 } from "@dxos/edge-client";
|
|
3
|
+
|
|
1
4
|
// packages/sdk/react-edge-client/src/hooks/useEdgeClient.ts
|
|
2
5
|
import { useMemo } from "react";
|
|
6
|
+
import { createEdgeIdentity } from "@dxos/client/edge";
|
|
3
7
|
import { EdgeHttpClient } from "@dxos/edge-client";
|
|
4
8
|
import { invariant } from "@dxos/invariant";
|
|
5
|
-
import { useConfig } from "@dxos/react-client";
|
|
9
|
+
import { useConfig, useClient } from "@dxos/react-client";
|
|
10
|
+
import { useIdentity } from "@dxos/react-client/halo";
|
|
6
11
|
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/sdk/react-edge-client/src/hooks/useEdgeClient.ts";
|
|
7
12
|
var useEdgeClient = () => {
|
|
8
13
|
const config = useConfig();
|
|
14
|
+
const client = useClient();
|
|
15
|
+
const identity = useIdentity();
|
|
9
16
|
const edgeUrl = config.values.runtime?.services?.edge?.url;
|
|
10
17
|
invariant(edgeUrl, "EDGE services not configured.", {
|
|
11
18
|
F: __dxlog_file,
|
|
12
|
-
L:
|
|
19
|
+
L: 22,
|
|
13
20
|
S: void 0,
|
|
14
21
|
A: [
|
|
15
22
|
"edgeUrl",
|
|
16
23
|
"'EDGE services not configured.'"
|
|
17
24
|
]
|
|
18
25
|
});
|
|
19
|
-
return useMemo(() =>
|
|
20
|
-
edgeUrl
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
// packages/sdk/react-edge-client/src/hooks/useQueue.ts
|
|
25
|
-
import { useEffect, useMemo as useMemo2 } from "react";
|
|
26
|
-
import { QueueImpl } from "@dxos/echo-db";
|
|
27
|
-
var MIN_POLL_INTERVAL = 1e3;
|
|
28
|
-
var useQueue = (client, queueDxn, options = {}) => {
|
|
29
|
-
const queue = useMemo2(() => queueDxn ? new QueueImpl(client, queueDxn) : void 0, [
|
|
30
|
-
client,
|
|
31
|
-
queueDxn?.toString()
|
|
32
|
-
]);
|
|
33
|
-
useEffect(() => {
|
|
34
|
-
void queue?.refresh();
|
|
35
|
-
}, [
|
|
36
|
-
queue
|
|
37
|
-
]);
|
|
38
|
-
useEffect(() => {
|
|
39
|
-
let timeout;
|
|
40
|
-
if (options.pollInterval) {
|
|
41
|
-
const poll = () => {
|
|
42
|
-
void queue?.refresh().finally(() => {
|
|
43
|
-
timeout = setTimeout(poll, Math.max(options.pollInterval ?? 0, MIN_POLL_INTERVAL));
|
|
44
|
-
});
|
|
45
|
-
};
|
|
46
|
-
poll();
|
|
47
|
-
}
|
|
48
|
-
return () => clearTimeout(timeout);
|
|
26
|
+
return useMemo(() => {
|
|
27
|
+
const edgeClient = new EdgeHttpClient(edgeUrl);
|
|
28
|
+
const edgeIdentity = createEdgeIdentity(client);
|
|
29
|
+
edgeClient.setIdentity(edgeIdentity);
|
|
30
|
+
return edgeClient;
|
|
49
31
|
}, [
|
|
50
|
-
|
|
51
|
-
|
|
32
|
+
edgeUrl,
|
|
33
|
+
identity
|
|
52
34
|
]);
|
|
53
|
-
return queue;
|
|
54
35
|
};
|
|
55
36
|
export {
|
|
56
|
-
|
|
57
|
-
|
|
37
|
+
EdgeHttpClient2 as EdgeHttpClient,
|
|
38
|
+
useEdgeClient
|
|
58
39
|
};
|
|
59
40
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../src/
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\
|
|
5
|
-
"mappings": ";AAIA,SAASA,eAAe;AAExB,SAASC,sBAAsB;AAC/B,SAASC,iBAAiB;AAC1B,SAASC,iBAAiB;;
|
|
6
|
-
"names": ["
|
|
3
|
+
"sources": ["../../../src/index.ts", "../../../src/hooks/useEdgeClient.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nexport { EdgeHttpClient } from '@dxos/edge-client';\nexport * from './hooks';\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useMemo } from 'react';\n\nimport { createEdgeIdentity } from '@dxos/client/edge';\nimport { EdgeHttpClient } from '@dxos/edge-client';\nimport { invariant } from '@dxos/invariant';\nimport { useConfig, useClient } from '@dxos/react-client';\nimport { useIdentity } from '@dxos/react-client/halo';\n\n/**\n * Client for edge services.\n */\n// TODO(mykola): This should be done through client-service RPC.\nexport const useEdgeClient = () => {\n const config = useConfig();\n const client = useClient();\n const identity = useIdentity();\n const edgeUrl = config.values.runtime?.services?.edge?.url;\n invariant(edgeUrl, 'EDGE services not configured.');\n return useMemo(() => {\n const edgeClient = new EdgeHttpClient(edgeUrl);\n const edgeIdentity = createEdgeIdentity(client);\n edgeClient.setIdentity(edgeIdentity);\n return edgeClient;\n }, [edgeUrl, identity]);\n};\n"],
|
|
5
|
+
"mappings": ";AAIA,SAASA,kBAAAA,uBAAsB;;;ACA/B,SAASC,eAAe;AAExB,SAASC,0BAA0B;AACnC,SAASC,sBAAsB;AAC/B,SAASC,iBAAiB;AAC1B,SAASC,WAAWC,iBAAiB;AACrC,SAASC,mBAAmB;;AAMrB,IAAMC,gBAAgB,MAAA;AAC3B,QAAMC,SAASJ,UAAAA;AACf,QAAMK,SAASJ,UAAAA;AACf,QAAMK,WAAWJ,YAAAA;AACjB,QAAMK,UAAUH,OAAOI,OAAOC,SAASC,UAAUC,MAAMC;AACvDb,YAAUQ,SAAS,iCAAA;;;;;;;;;AACnB,SAAOX,QAAQ,MAAA;AACb,UAAMiB,aAAa,IAAIf,eAAeS,OAAAA;AACtC,UAAMO,eAAejB,mBAAmBQ,MAAAA;AACxCQ,eAAWE,YAAYD,YAAAA;AACvB,WAAOD;EACT,GAAG;IAACN;IAASD;GAAS;AACxB;",
|
|
6
|
+
"names": ["EdgeHttpClient", "useMemo", "createEdgeIdentity", "EdgeHttpClient", "invariant", "useConfig", "useClient", "useIdentity", "useEdgeClient", "config", "client", "identity", "edgeUrl", "values", "runtime", "services", "edge", "url", "edgeClient", "edgeIdentity", "setIdentity"]
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"packages/sdk/react-edge-client/src/hooks/useEdgeClient.ts":{"bytes":
|
|
1
|
+
{"inputs":{"packages/sdk/react-edge-client/src/hooks/useEdgeClient.ts":{"bytes":3769,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/client/edge","kind":"import-statement","external":true},{"path":"@dxos/edge-client","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-client/halo","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/react-edge-client/src/hooks/index.ts":{"bytes":521,"imports":[{"path":"packages/sdk/react-edge-client/src/hooks/useEdgeClient.ts","kind":"import-statement","original":"./useEdgeClient"}],"format":"esm"},"packages/sdk/react-edge-client/src/index.ts":{"bytes":679,"imports":[{"path":"@dxos/edge-client","kind":"import-statement","external":true},{"path":"packages/sdk/react-edge-client/src/hooks/index.ts","kind":"import-statement","original":"./hooks"}],"format":"esm"}},"outputs":{"packages/sdk/react-edge-client/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1973},"packages/sdk/react-edge-client/dist/lib/browser/index.mjs":{"imports":[{"path":"@dxos/edge-client","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/client/edge","kind":"import-statement","external":true},{"path":"@dxos/edge-client","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-client/halo","kind":"import-statement","external":true}],"exports":["EdgeHttpClient","useEdgeClient"],"entryPoint":"packages/sdk/react-edge-client/src/index.ts","inputs":{"packages/sdk/react-edge-client/src/index.ts":{"bytesInOutput":71},"packages/sdk/react-edge-client/src/hooks/useEdgeClient.ts":{"bytesInOutput":1010},"packages/sdk/react-edge-client/src/hooks/index.ts":{"bytesInOutput":0}},"bytes":1290}}}
|
package/dist/lib/node/index.cjs
CHANGED
|
@@ -18,64 +18,45 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var node_exports = {};
|
|
20
20
|
__export(node_exports, {
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
EdgeHttpClient: () => import_edge_client.EdgeHttpClient,
|
|
22
|
+
useEdgeClient: () => useEdgeClient
|
|
23
23
|
});
|
|
24
24
|
module.exports = __toCommonJS(node_exports);
|
|
25
|
-
var import_react = require("react");
|
|
26
25
|
var import_edge_client = require("@dxos/edge-client");
|
|
26
|
+
var import_react = require("react");
|
|
27
|
+
var import_edge = require("@dxos/client/edge");
|
|
28
|
+
var import_edge_client2 = require("@dxos/edge-client");
|
|
27
29
|
var import_invariant = require("@dxos/invariant");
|
|
28
30
|
var import_react_client = require("@dxos/react-client");
|
|
29
|
-
var
|
|
30
|
-
var import_echo_db = require("@dxos/echo-db");
|
|
31
|
+
var import_halo = require("@dxos/react-client/halo");
|
|
31
32
|
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/sdk/react-edge-client/src/hooks/useEdgeClient.ts";
|
|
32
33
|
var useEdgeClient = () => {
|
|
33
34
|
const config = (0, import_react_client.useConfig)();
|
|
35
|
+
const client = (0, import_react_client.useClient)();
|
|
36
|
+
const identity = (0, import_halo.useIdentity)();
|
|
34
37
|
const edgeUrl = config.values.runtime?.services?.edge?.url;
|
|
35
38
|
(0, import_invariant.invariant)(edgeUrl, "EDGE services not configured.", {
|
|
36
39
|
F: __dxlog_file,
|
|
37
|
-
L:
|
|
40
|
+
L: 22,
|
|
38
41
|
S: void 0,
|
|
39
42
|
A: [
|
|
40
43
|
"edgeUrl",
|
|
41
44
|
"'EDGE services not configured.'"
|
|
42
45
|
]
|
|
43
46
|
});
|
|
44
|
-
return (0, import_react.useMemo)(() =>
|
|
45
|
-
edgeUrl
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
var useQueue = (client, queueDxn, options = {}) => {
|
|
50
|
-
const queue = (0, import_react2.useMemo)(() => queueDxn ? new import_echo_db.QueueImpl(client, queueDxn) : void 0, [
|
|
51
|
-
client,
|
|
52
|
-
queueDxn?.toString()
|
|
53
|
-
]);
|
|
54
|
-
(0, import_react2.useEffect)(() => {
|
|
55
|
-
void queue?.refresh();
|
|
56
|
-
}, [
|
|
57
|
-
queue
|
|
58
|
-
]);
|
|
59
|
-
(0, import_react2.useEffect)(() => {
|
|
60
|
-
let timeout;
|
|
61
|
-
if (options.pollInterval) {
|
|
62
|
-
const poll = () => {
|
|
63
|
-
void queue?.refresh().finally(() => {
|
|
64
|
-
timeout = setTimeout(poll, Math.max(options.pollInterval ?? 0, MIN_POLL_INTERVAL));
|
|
65
|
-
});
|
|
66
|
-
};
|
|
67
|
-
poll();
|
|
68
|
-
}
|
|
69
|
-
return () => clearTimeout(timeout);
|
|
47
|
+
return (0, import_react.useMemo)(() => {
|
|
48
|
+
const edgeClient = new import_edge_client2.EdgeHttpClient(edgeUrl);
|
|
49
|
+
const edgeIdentity = (0, import_edge.createEdgeIdentity)(client);
|
|
50
|
+
edgeClient.setIdentity(edgeIdentity);
|
|
51
|
+
return edgeClient;
|
|
70
52
|
}, [
|
|
71
|
-
|
|
72
|
-
|
|
53
|
+
edgeUrl,
|
|
54
|
+
identity
|
|
73
55
|
]);
|
|
74
|
-
return queue;
|
|
75
56
|
};
|
|
76
57
|
// Annotate the CommonJS export names for ESM import in node:
|
|
77
58
|
0 && (module.exports = {
|
|
78
|
-
|
|
79
|
-
|
|
59
|
+
EdgeHttpClient,
|
|
60
|
+
useEdgeClient
|
|
80
61
|
});
|
|
81
62
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../src/
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAIA,mBAAwB;AAExB,
|
|
6
|
-
"names": ["
|
|
3
|
+
"sources": ["../../../src/index.ts", "../../../src/hooks/useEdgeClient.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nexport { EdgeHttpClient } from '@dxos/edge-client';\nexport * from './hooks';\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useMemo } from 'react';\n\nimport { createEdgeIdentity } from '@dxos/client/edge';\nimport { EdgeHttpClient } from '@dxos/edge-client';\nimport { invariant } from '@dxos/invariant';\nimport { useConfig, useClient } from '@dxos/react-client';\nimport { useIdentity } from '@dxos/react-client/halo';\n\n/**\n * Client for edge services.\n */\n// TODO(mykola): This should be done through client-service RPC.\nexport const useEdgeClient = () => {\n const config = useConfig();\n const client = useClient();\n const identity = useIdentity();\n const edgeUrl = config.values.runtime?.services?.edge?.url;\n invariant(edgeUrl, 'EDGE services not configured.');\n return useMemo(() => {\n const edgeClient = new EdgeHttpClient(edgeUrl);\n const edgeIdentity = createEdgeIdentity(client);\n edgeClient.setIdentity(edgeIdentity);\n return edgeClient;\n }, [edgeUrl, identity]);\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAIA,yBAA+B;ACA/B,mBAAwB;AAExB,kBAAmC;AACnC,IAAAA,sBAA+B;AAC/B,uBAA0B;AAC1B,0BAAqC;AACrC,kBAA4B;;AAMrB,IAAMC,gBAAgB,MAAA;AAC3B,QAAMC,aAASC,+BAAAA;AACf,QAAMC,aAASC,+BAAAA;AACf,QAAMC,eAAWC,yBAAAA;AACjB,QAAMC,UAAUN,OAAOO,OAAOC,SAASC,UAAUC,MAAMC;AACvDC,kCAAUN,SAAS,iCAAA;;;;;;;;;AACnB,aAAOO,sBAAQ,MAAA;AACb,UAAMC,aAAa,IAAIC,mCAAeT,OAAAA;AACtC,UAAMU,mBAAeC,gCAAmBf,MAAAA;AACxCY,eAAWI,YAAYF,YAAAA;AACvB,WAAOF;EACT,GAAG;IAACR;IAASF;GAAS;AACxB;",
|
|
6
|
+
"names": ["import_edge_client", "useEdgeClient", "config", "useConfig", "client", "useClient", "identity", "useIdentity", "edgeUrl", "values", "runtime", "services", "edge", "url", "invariant", "useMemo", "edgeClient", "EdgeHttpClient", "edgeIdentity", "createEdgeIdentity", "setIdentity"]
|
|
7
7
|
}
|
package/dist/lib/node/meta.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"packages/sdk/react-edge-client/src/hooks/useEdgeClient.ts":{"bytes":
|
|
1
|
+
{"inputs":{"packages/sdk/react-edge-client/src/hooks/useEdgeClient.ts":{"bytes":3769,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/client/edge","kind":"import-statement","external":true},{"path":"@dxos/edge-client","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-client/halo","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/react-edge-client/src/hooks/index.ts":{"bytes":521,"imports":[{"path":"packages/sdk/react-edge-client/src/hooks/useEdgeClient.ts","kind":"import-statement","original":"./useEdgeClient"}],"format":"esm"},"packages/sdk/react-edge-client/src/index.ts":{"bytes":679,"imports":[{"path":"@dxos/edge-client","kind":"import-statement","external":true},{"path":"packages/sdk/react-edge-client/src/hooks/index.ts","kind":"import-statement","original":"./hooks"}],"format":"esm"}},"outputs":{"packages/sdk/react-edge-client/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1973},"packages/sdk/react-edge-client/dist/lib/node/index.cjs":{"imports":[{"path":"@dxos/edge-client","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/client/edge","kind":"import-statement","external":true},{"path":"@dxos/edge-client","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-client/halo","kind":"import-statement","external":true}],"exports":["EdgeHttpClient","useEdgeClient"],"entryPoint":"packages/sdk/react-edge-client/src/index.ts","inputs":{"packages/sdk/react-edge-client/src/index.ts":{"bytesInOutput":71},"packages/sdk/react-edge-client/src/hooks/useEdgeClient.ts":{"bytesInOutput":1010},"packages/sdk/react-edge-client/src/hooks/index.ts":{"bytesInOutput":0}},"bytes":1290}}}
|
|
@@ -1,61 +1,42 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
2
|
|
|
3
|
+
// packages/sdk/react-edge-client/src/index.ts
|
|
4
|
+
import { EdgeHttpClient as EdgeHttpClient2 } from "@dxos/edge-client";
|
|
5
|
+
|
|
3
6
|
// packages/sdk/react-edge-client/src/hooks/useEdgeClient.ts
|
|
4
7
|
import { useMemo } from "react";
|
|
8
|
+
import { createEdgeIdentity } from "@dxos/client/edge";
|
|
5
9
|
import { EdgeHttpClient } from "@dxos/edge-client";
|
|
6
10
|
import { invariant } from "@dxos/invariant";
|
|
7
|
-
import { useConfig } from "@dxos/react-client";
|
|
11
|
+
import { useConfig, useClient } from "@dxos/react-client";
|
|
12
|
+
import { useIdentity } from "@dxos/react-client/halo";
|
|
8
13
|
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/sdk/react-edge-client/src/hooks/useEdgeClient.ts";
|
|
9
14
|
var useEdgeClient = () => {
|
|
10
15
|
const config = useConfig();
|
|
16
|
+
const client = useClient();
|
|
17
|
+
const identity = useIdentity();
|
|
11
18
|
const edgeUrl = config.values.runtime?.services?.edge?.url;
|
|
12
19
|
invariant(edgeUrl, "EDGE services not configured.", {
|
|
13
20
|
F: __dxlog_file,
|
|
14
|
-
L:
|
|
21
|
+
L: 22,
|
|
15
22
|
S: void 0,
|
|
16
23
|
A: [
|
|
17
24
|
"edgeUrl",
|
|
18
25
|
"'EDGE services not configured.'"
|
|
19
26
|
]
|
|
20
27
|
});
|
|
21
|
-
return useMemo(() =>
|
|
22
|
-
edgeUrl
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
// packages/sdk/react-edge-client/src/hooks/useQueue.ts
|
|
27
|
-
import { useEffect, useMemo as useMemo2 } from "react";
|
|
28
|
-
import { QueueImpl } from "@dxos/echo-db";
|
|
29
|
-
var MIN_POLL_INTERVAL = 1e3;
|
|
30
|
-
var useQueue = (client, queueDxn, options = {}) => {
|
|
31
|
-
const queue = useMemo2(() => queueDxn ? new QueueImpl(client, queueDxn) : void 0, [
|
|
32
|
-
client,
|
|
33
|
-
queueDxn?.toString()
|
|
34
|
-
]);
|
|
35
|
-
useEffect(() => {
|
|
36
|
-
void queue?.refresh();
|
|
37
|
-
}, [
|
|
38
|
-
queue
|
|
39
|
-
]);
|
|
40
|
-
useEffect(() => {
|
|
41
|
-
let timeout;
|
|
42
|
-
if (options.pollInterval) {
|
|
43
|
-
const poll = () => {
|
|
44
|
-
void queue?.refresh().finally(() => {
|
|
45
|
-
timeout = setTimeout(poll, Math.max(options.pollInterval ?? 0, MIN_POLL_INTERVAL));
|
|
46
|
-
});
|
|
47
|
-
};
|
|
48
|
-
poll();
|
|
49
|
-
}
|
|
50
|
-
return () => clearTimeout(timeout);
|
|
28
|
+
return useMemo(() => {
|
|
29
|
+
const edgeClient = new EdgeHttpClient(edgeUrl);
|
|
30
|
+
const edgeIdentity = createEdgeIdentity(client);
|
|
31
|
+
edgeClient.setIdentity(edgeIdentity);
|
|
32
|
+
return edgeClient;
|
|
51
33
|
}, [
|
|
52
|
-
|
|
53
|
-
|
|
34
|
+
edgeUrl,
|
|
35
|
+
identity
|
|
54
36
|
]);
|
|
55
|
-
return queue;
|
|
56
37
|
};
|
|
57
38
|
export {
|
|
58
|
-
|
|
59
|
-
|
|
39
|
+
EdgeHttpClient2 as EdgeHttpClient,
|
|
40
|
+
useEdgeClient
|
|
60
41
|
};
|
|
61
42
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../src/
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\
|
|
5
|
-
"mappings": ";;;AAIA,SAASA,eAAe;AAExB,SAASC,sBAAsB;AAC/B,SAASC,iBAAiB;AAC1B,SAASC,iBAAiB;;
|
|
6
|
-
"names": ["
|
|
3
|
+
"sources": ["../../../src/index.ts", "../../../src/hooks/useEdgeClient.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nexport { EdgeHttpClient } from '@dxos/edge-client';\nexport * from './hooks';\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useMemo } from 'react';\n\nimport { createEdgeIdentity } from '@dxos/client/edge';\nimport { EdgeHttpClient } from '@dxos/edge-client';\nimport { invariant } from '@dxos/invariant';\nimport { useConfig, useClient } from '@dxos/react-client';\nimport { useIdentity } from '@dxos/react-client/halo';\n\n/**\n * Client for edge services.\n */\n// TODO(mykola): This should be done through client-service RPC.\nexport const useEdgeClient = () => {\n const config = useConfig();\n const client = useClient();\n const identity = useIdentity();\n const edgeUrl = config.values.runtime?.services?.edge?.url;\n invariant(edgeUrl, 'EDGE services not configured.');\n return useMemo(() => {\n const edgeClient = new EdgeHttpClient(edgeUrl);\n const edgeIdentity = createEdgeIdentity(client);\n edgeClient.setIdentity(edgeIdentity);\n return edgeClient;\n }, [edgeUrl, identity]);\n};\n"],
|
|
5
|
+
"mappings": ";;;AAIA,SAASA,kBAAAA,uBAAsB;;;ACA/B,SAASC,eAAe;AAExB,SAASC,0BAA0B;AACnC,SAASC,sBAAsB;AAC/B,SAASC,iBAAiB;AAC1B,SAASC,WAAWC,iBAAiB;AACrC,SAASC,mBAAmB;;AAMrB,IAAMC,gBAAgB,MAAA;AAC3B,QAAMC,SAASJ,UAAAA;AACf,QAAMK,SAASJ,UAAAA;AACf,QAAMK,WAAWJ,YAAAA;AACjB,QAAMK,UAAUH,OAAOI,OAAOC,SAASC,UAAUC,MAAMC;AACvDb,YAAUQ,SAAS,iCAAA;;;;;;;;;AACnB,SAAOX,QAAQ,MAAA;AACb,UAAMiB,aAAa,IAAIf,eAAeS,OAAAA;AACtC,UAAMO,eAAejB,mBAAmBQ,MAAAA;AACxCQ,eAAWE,YAAYD,YAAAA;AACvB,WAAOD;EACT,GAAG;IAACN;IAASD;GAAS;AACxB;",
|
|
6
|
+
"names": ["EdgeHttpClient", "useMemo", "createEdgeIdentity", "EdgeHttpClient", "invariant", "useConfig", "useClient", "useIdentity", "useEdgeClient", "config", "client", "identity", "edgeUrl", "values", "runtime", "services", "edge", "url", "edgeClient", "edgeIdentity", "setIdentity"]
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"packages/sdk/react-edge-client/src/hooks/useEdgeClient.ts":{"bytes":
|
|
1
|
+
{"inputs":{"packages/sdk/react-edge-client/src/hooks/useEdgeClient.ts":{"bytes":3769,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/client/edge","kind":"import-statement","external":true},{"path":"@dxos/edge-client","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-client/halo","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/react-edge-client/src/hooks/index.ts":{"bytes":521,"imports":[{"path":"packages/sdk/react-edge-client/src/hooks/useEdgeClient.ts","kind":"import-statement","original":"./useEdgeClient"}],"format":"esm"},"packages/sdk/react-edge-client/src/index.ts":{"bytes":679,"imports":[{"path":"@dxos/edge-client","kind":"import-statement","external":true},{"path":"packages/sdk/react-edge-client/src/hooks/index.ts","kind":"import-statement","original":"./hooks"}],"format":"esm"}},"outputs":{"packages/sdk/react-edge-client/dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1975},"packages/sdk/react-edge-client/dist/lib/node-esm/index.mjs":{"imports":[{"path":"@dxos/edge-client","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/client/edge","kind":"import-statement","external":true},{"path":"@dxos/edge-client","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-client/halo","kind":"import-statement","external":true}],"exports":["EdgeHttpClient","useEdgeClient"],"entryPoint":"packages/sdk/react-edge-client/src/index.ts","inputs":{"packages/sdk/react-edge-client/src/index.ts":{"bytesInOutput":71},"packages/sdk/react-edge-client/src/hooks/useEdgeClient.ts":{"bytesInOutput":1010},"packages/sdk/react-edge-client/src/hooks/index.ts":{"bytesInOutput":0}},"bytes":1383}}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/hooks/index.ts"],"names":[],"mappings":"AAIA,cAAc,iBAAiB,CAAC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/hooks/index.ts"],"names":[],"mappings":"AAIA,cAAc,iBAAiB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useEdgeClient.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useEdgeClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useEdgeClient.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useEdgeClient.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAKnD;;GAEG;AAEH,eAAO,MAAM,aAAa,sBAYzB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,cAAc,SAAS,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/react-edge-client",
|
|
3
|
-
"version": "0.8.1-
|
|
3
|
+
"version": "0.8.1-staging.31c3ee1",
|
|
4
4
|
"description": "React hooks for the Edge Client.",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -20,13 +20,15 @@
|
|
|
20
20
|
"src"
|
|
21
21
|
],
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@dxos/
|
|
24
|
-
"@dxos/
|
|
25
|
-
"@dxos/
|
|
26
|
-
"@dxos/
|
|
27
|
-
"@dxos/
|
|
28
|
-
"@dxos/
|
|
29
|
-
"@dxos/
|
|
23
|
+
"@dxos/client": "0.8.1-staging.31c3ee1",
|
|
24
|
+
"@dxos/debug": "0.8.1-staging.31c3ee1",
|
|
25
|
+
"@dxos/echo-db": "0.8.1-staging.31c3ee1",
|
|
26
|
+
"@dxos/edge-client": "0.8.1-staging.31c3ee1",
|
|
27
|
+
"@dxos/invariant": "0.8.1-staging.31c3ee1",
|
|
28
|
+
"@dxos/echo-signals": "0.8.1-staging.31c3ee1",
|
|
29
|
+
"@dxos/log": "0.8.1-staging.31c3ee1",
|
|
30
|
+
"@dxos/react-client": "0.8.1-staging.31c3ee1",
|
|
31
|
+
"@dxos/util": "0.8.1-staging.31c3ee1"
|
|
30
32
|
},
|
|
31
33
|
"devDependencies": {
|
|
32
34
|
"react": "~18.2.0",
|
package/src/hooks/index.ts
CHANGED
|
@@ -4,9 +4,11 @@
|
|
|
4
4
|
|
|
5
5
|
import { useMemo } from 'react';
|
|
6
6
|
|
|
7
|
+
import { createEdgeIdentity } from '@dxos/client/edge';
|
|
7
8
|
import { EdgeHttpClient } from '@dxos/edge-client';
|
|
8
9
|
import { invariant } from '@dxos/invariant';
|
|
9
|
-
import { useConfig } from '@dxos/react-client';
|
|
10
|
+
import { useConfig, useClient } from '@dxos/react-client';
|
|
11
|
+
import { useIdentity } from '@dxos/react-client/halo';
|
|
10
12
|
|
|
11
13
|
/**
|
|
12
14
|
* Client for edge services.
|
|
@@ -14,7 +16,14 @@ import { useConfig } from '@dxos/react-client';
|
|
|
14
16
|
// TODO(mykola): This should be done through client-service RPC.
|
|
15
17
|
export const useEdgeClient = () => {
|
|
16
18
|
const config = useConfig();
|
|
19
|
+
const client = useClient();
|
|
20
|
+
const identity = useIdentity();
|
|
17
21
|
const edgeUrl = config.values.runtime?.services?.edge?.url;
|
|
18
22
|
invariant(edgeUrl, 'EDGE services not configured.');
|
|
19
|
-
return useMemo(() =>
|
|
23
|
+
return useMemo(() => {
|
|
24
|
+
const edgeClient = new EdgeHttpClient(edgeUrl);
|
|
25
|
+
const edgeIdentity = createEdgeIdentity(client);
|
|
26
|
+
edgeClient.setIdentity(edgeIdentity);
|
|
27
|
+
return edgeClient;
|
|
28
|
+
}, [edgeUrl, identity]);
|
|
20
29
|
};
|
package/src/index.ts
CHANGED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { Queue } from '@dxos/echo-db';
|
|
2
|
-
import { type EdgeHttpClient } from '@dxos/edge-client';
|
|
3
|
-
import { type DXN } from '@dxos/keys';
|
|
4
|
-
export type UseQueueOptions = {
|
|
5
|
-
pollInterval?: number;
|
|
6
|
-
};
|
|
7
|
-
/**
|
|
8
|
-
* Polls the given Edge queue.
|
|
9
|
-
*/
|
|
10
|
-
export declare const useQueue: <T>(client: EdgeHttpClient, queueDxn?: DXN, options?: UseQueueOptions) => Queue<T> | undefined;
|
|
11
|
-
//# sourceMappingURL=useQueue.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useQueue.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useQueue.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AAItC,MAAM,MAAM,eAAe,GAAG;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;GAEG;AAEH,eAAO,MAAM,QAAQ,GAAI,CAAC,UAChB,cAAc,aACX,GAAG,YACL,eAAe,KACvB,KAAK,CAAC,CAAC,CAAC,GAAG,SA0Bb,CAAC"}
|
package/src/hooks/useQueue.ts
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2025 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import { useEffect, useMemo } from 'react';
|
|
6
|
-
|
|
7
|
-
import type { Queue } from '@dxos/echo-db';
|
|
8
|
-
import { QueueImpl } from '@dxos/echo-db';
|
|
9
|
-
import { type EdgeHttpClient } from '@dxos/edge-client';
|
|
10
|
-
import { type DXN } from '@dxos/keys';
|
|
11
|
-
|
|
12
|
-
const MIN_POLL_INTERVAL = 1_000;
|
|
13
|
-
|
|
14
|
-
export type UseQueueOptions = {
|
|
15
|
-
pollInterval?: number;
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Polls the given Edge queue.
|
|
20
|
-
*/
|
|
21
|
-
// TODO(burdon): Replace polling with socket?
|
|
22
|
-
export const useQueue = <T>(
|
|
23
|
-
client: EdgeHttpClient,
|
|
24
|
-
queueDxn?: DXN,
|
|
25
|
-
options: UseQueueOptions = {},
|
|
26
|
-
): Queue<T> | undefined => {
|
|
27
|
-
const queue = useMemo<QueueImpl<T> | undefined>(
|
|
28
|
-
() => (queueDxn ? new QueueImpl(client, queueDxn) : undefined),
|
|
29
|
-
[client, queueDxn?.toString()],
|
|
30
|
-
);
|
|
31
|
-
|
|
32
|
-
useEffect(() => {
|
|
33
|
-
void queue?.refresh();
|
|
34
|
-
}, [queue]);
|
|
35
|
-
|
|
36
|
-
useEffect(() => {
|
|
37
|
-
let timeout: NodeJS.Timeout;
|
|
38
|
-
if (options.pollInterval) {
|
|
39
|
-
const poll = () => {
|
|
40
|
-
void queue?.refresh().finally(() => {
|
|
41
|
-
timeout = setTimeout(poll, Math.max(options.pollInterval ?? 0, MIN_POLL_INTERVAL));
|
|
42
|
-
});
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
poll();
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
return () => clearTimeout(timeout);
|
|
49
|
-
}, [queue, options.pollInterval]);
|
|
50
|
-
|
|
51
|
-
return queue;
|
|
52
|
-
};
|