@w3ux/observables-connect 0.9.0-alpha.2 → 0.9.0-alpha.3
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/extensions.js +13 -11
- package/extensions.js.map +1 -1
- package/package.json +1 -1
package/extensions.js
CHANGED
|
@@ -1,27 +1,29 @@
|
|
|
1
1
|
import extensions from '@w3ux/extension-assets';
|
|
2
2
|
import { _extensionsStatus, _gettingExtensions } from './index';
|
|
3
|
-
const formatExtensionsInstalled = () => {
|
|
4
|
-
const { injectedWeb3 } = window;
|
|
5
|
-
const value = _extensionsStatus.getValue();
|
|
6
|
-
return Object.keys(extensions).reduce((acc, key) => {
|
|
7
|
-
acc[key] = injectedWeb3[key] !== undefined ? 'installed' : value[key];
|
|
8
|
-
return acc;
|
|
9
|
-
}, { ...value });
|
|
10
|
-
};
|
|
11
3
|
export const getExtensions = async () => {
|
|
12
4
|
_gettingExtensions.next(true);
|
|
13
5
|
let injectedWeb3Interval = null;
|
|
6
|
+
const formatInstalled = () => {
|
|
7
|
+
const value = _extensionsStatus.getValue();
|
|
8
|
+
return Object.keys(extensions).reduce((acc, key) => {
|
|
9
|
+
acc[key] =
|
|
10
|
+
window?.injectedWeb3[key] !== undefined ? 'installed' : value[key];
|
|
11
|
+
return acc;
|
|
12
|
+
}, { ...value });
|
|
13
|
+
};
|
|
14
14
|
const handleCompleted = async (foundExtensions) => {
|
|
15
15
|
clearInterval(injectedWeb3Interval);
|
|
16
16
|
if (foundExtensions) {
|
|
17
|
-
_extensionsStatus.next(
|
|
17
|
+
_extensionsStatus.next(formatInstalled());
|
|
18
18
|
}
|
|
19
19
|
_gettingExtensions.next(false);
|
|
20
20
|
};
|
|
21
21
|
let counter = 0;
|
|
22
|
+
const interval = 300;
|
|
23
|
+
const maxChecks = 10;
|
|
22
24
|
injectedWeb3Interval = setInterval(() => {
|
|
23
25
|
counter++;
|
|
24
|
-
if (counter ===
|
|
26
|
+
if (counter === maxChecks) {
|
|
25
27
|
handleCompleted(false);
|
|
26
28
|
}
|
|
27
29
|
else {
|
|
@@ -30,7 +32,7 @@ export const getExtensions = async () => {
|
|
|
30
32
|
handleCompleted(true);
|
|
31
33
|
}
|
|
32
34
|
}
|
|
33
|
-
},
|
|
35
|
+
}, interval);
|
|
34
36
|
};
|
|
35
37
|
|
|
36
38
|
//# sourceMappingURL=extensions.js.map
|
package/extensions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/extensions.ts"],"names":[],"mappings":"AAGA,OAAO,UAAU,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAG/D,MAAM,
|
|
1
|
+
{"version":3,"sources":["../src/extensions.ts"],"names":[],"mappings":"AAGA,OAAO,UAAU,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAG/D,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE;IACtC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC7B,IAAI,oBAAoB,GAAmC,IAAI,CAAA;IAG/D,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,MAAM,KAAK,GAAG,iBAAiB,CAAC,QAAQ,EAAE,CAAA;QAC1C,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CACnC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACX,GAAG,CAAC,GAAG,CAAC;gBACN,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACpE,OAAO,GAAG,CAAA;QACZ,CAAC,EACD,EAAE,GAAG,KAAK,EAAE,CACb,CAAA;IACH,CAAC,CAAA;IAGD,MAAM,eAAe,GAAG,KAAK,EAAE,eAAwB,EAAE,EAAE;QACzD,aAAa,CAAC,oBAAoB,CAAC,CAAA;QACnC,IAAI,eAAe,EAAE,CAAC;YACpB,iBAAiB,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAA;QAC3C,CAAC;QACD,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAChC,CAAC,CAAA;IAGD,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,MAAM,QAAQ,GAAG,GAAG,CAAA;IACpB,MAAM,SAAS,GAAG,EAAE,CAAA;IACpB,oBAAoB,GAAG,WAAW,CAAC,GAAG,EAAE;QACtC,OAAO,EAAE,CAAA;QACT,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,eAAe,CAAC,KAAK,CAAC,CAAA;QACxB,CAAC;aAAM,CAAC;YAEN,MAAM,YAAY,GAAG,MAAM,EAAE,YAAY,IAAI,IAAI,CAAA;YACjD,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;gBAC1B,eAAe,CAAC,IAAI,CAAC,CAAA;YACvB,CAAC;QACH,CAAC;IACH,CAAC,EAAE,QAAQ,CAAC,CAAA;AACd,CAAC,CAAA","file":"extensions.js","sourcesContent":["/* @license Copyright 2024 w3ux authors & contributors\nSPDX-License-Identifier: GPL-3.0-only */\n\nimport extensions from '@w3ux/extension-assets'\nimport { _extensionsStatus, _gettingExtensions } from './index'\n\n// Gets extensions from injectedWeb3\nexport const getExtensions = async () => {\n _gettingExtensions.next(true)\n let injectedWeb3Interval: ReturnType<typeof setInterval> = null\n\n // Format installed extensions\n const formatInstalled = () => {\n const value = _extensionsStatus.getValue()\n return Object.keys(extensions).reduce(\n (acc, key) => {\n acc[key] =\n window?.injectedWeb3[key] !== undefined ? 'installed' : value[key]\n return acc\n },\n { ...value }\n )\n }\n\n // Handle completed interval check\n const handleCompleted = async (foundExtensions: boolean) => {\n clearInterval(injectedWeb3Interval)\n if (foundExtensions) {\n _extensionsStatus.next(formatInstalled())\n }\n _gettingExtensions.next(false)\n }\n\n // Getter for the currently installed extensions\n let counter = 0\n const interval = 300\n const maxChecks = 10\n injectedWeb3Interval = setInterval(() => {\n counter++\n if (counter === maxChecks) {\n handleCompleted(false)\n } else {\n // `injectedWeb3` is present\n const injectedWeb3 = window?.injectedWeb3 || null\n if (injectedWeb3 !== null) {\n handleCompleted(true)\n }\n }\n }, interval)\n}\n"]}
|