@w3ux/observables-connect 0.9.0 → 0.9.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.
- package/extensions.js +10 -19
- package/extensions.js.map +1 -1
- package/package.json +1 -1
package/extensions.js
CHANGED
|
@@ -3,14 +3,11 @@ import { _extensionsStatus, _gettingExtensions } from './index';
|
|
|
3
3
|
export const getExtensions = async () => {
|
|
4
4
|
_gettingExtensions.next(true);
|
|
5
5
|
let injectedWeb3Interval = null;
|
|
6
|
-
const formatInstalled = () => {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
return acc;
|
|
12
|
-
}, { ...value });
|
|
13
|
-
};
|
|
6
|
+
const formatInstalled = () => Object.keys(extensions).reduce((acc, key) => {
|
|
7
|
+
acc[key] =
|
|
8
|
+
window?.injectedWeb3[key] !== undefined ? 'installed' : acc[key];
|
|
9
|
+
return acc;
|
|
10
|
+
}, { ..._extensionsStatus.getValue() });
|
|
14
11
|
const handleCompleted = async (foundExtensions) => {
|
|
15
12
|
clearInterval(injectedWeb3Interval);
|
|
16
13
|
if (foundExtensions) {
|
|
@@ -34,23 +31,17 @@ export const getExtensions = async () => {
|
|
|
34
31
|
}
|
|
35
32
|
}, interval);
|
|
36
33
|
};
|
|
37
|
-
export const getStatus = (id) =>
|
|
38
|
-
const value = _extensionsStatus.getValue();
|
|
39
|
-
return value[id] || undefined;
|
|
40
|
-
};
|
|
34
|
+
export const getStatus = (id) => _extensionsStatus.getValue()[id] || undefined;
|
|
41
35
|
export const setStatus = (id, status) => {
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
_extensionsStatus.next(
|
|
36
|
+
const newValue = { ..._extensionsStatus.getValue() };
|
|
37
|
+
newValue[id] = status;
|
|
38
|
+
_extensionsStatus.next(newValue);
|
|
45
39
|
};
|
|
46
40
|
export const removeStatus = (id) => {
|
|
47
41
|
const { [id]: _, ...rest } = _extensionsStatus.getValue();
|
|
48
42
|
_extensionsStatus.next(rest);
|
|
49
43
|
};
|
|
50
|
-
export const canConnect = (id) =>
|
|
51
|
-
const value = _extensionsStatus.getValue();
|
|
52
|
-
return ![undefined, 'connected'].includes(value[id]);
|
|
53
|
-
};
|
|
44
|
+
export const canConnect = (id) => ![undefined, 'connected'].includes(_extensionsStatus.getValue()[id]);
|
|
54
45
|
|
|
55
46
|
//# sourceMappingURL=extensions.js.map
|
|
56
47
|
|
package/extensions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/extensions.ts"],"names":[],"mappings":"AAGA,OAAO,UAAU,MAAM,wBAAwB,CAAA;AAE/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
|
|
1
|
+
{"version":3,"sources":["../src/extensions.ts"],"names":[],"mappings":"AAGA,OAAO,UAAU,MAAM,wBAAwB,CAAA;AAE/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,CAC3B,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAC5B,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACX,GAAG,CAAC,GAAG,CAAC;YACN,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAClE,OAAO,GAAG,CAAA;IACZ,CAAC,EACD,EAAE,GAAG,iBAAiB,CAAC,QAAQ,EAAE,EAAE,CACpC,CAAA;IAGH,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;AAGD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAU,EAAmB,EAAE,CACvD,iBAAiB,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,IAAI,SAAS,CAAA;AAG/C,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAU,EAAE,MAAuB,EAAE,EAAE;IAC/D,MAAM,QAAQ,GAAG,EAAE,GAAG,iBAAiB,CAAC,QAAQ,EAAE,EAAE,CAAA;IACpD,QAAQ,CAAC,EAAE,CAAC,GAAG,MAAM,CAAA;IACrB,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;AAClC,CAAC,CAAA;AAGD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAU,EAAE,EAAE;IACzC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,iBAAiB,CAAC,QAAQ,EAAE,CAAA;IACzD,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC9B,CAAC,CAAA;AAGD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAU,EAAE,EAAE,CACvC,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,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 type { ExtensionStatus } from '@w3ux/types'\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 Object.keys(extensions).reduce(\n (acc, key) => {\n acc[key] =\n window?.injectedWeb3[key] !== undefined ? 'installed' : acc[key]\n return acc\n },\n { ..._extensionsStatus.getValue() }\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\n// Gets an extension status\nexport const getStatus = (id: string): ExtensionStatus =>\n _extensionsStatus.getValue()[id] || undefined\n\n// Sets an extension status\nexport const setStatus = (id: string, status: ExtensionStatus) => {\n const newValue = { ..._extensionsStatus.getValue() }\n newValue[id] = status\n _extensionsStatus.next(newValue)\n}\n\n// Removes an extension status\nexport const removeStatus = (id: string) => {\n const { [id]: _, ...rest } = _extensionsStatus.getValue()\n _extensionsStatus.next(rest)\n}\n\n// Whether an extension can be connected\nexport const canConnect = (id: string) =>\n ![undefined, 'connected'].includes(_extensionsStatus.getValue()[id])\n"]}
|