UNPKG

@pontem/aptos-wallet-adapter

Version:
77 lines 3.4 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.scopePollingDetectionStrategy = exports.BaseWalletAdapter = exports.WalletAdapterNetwork = exports.WalletReadyState = exports.EventEmitter = void 0; const eventemitter3_1 = __importDefault(require("eventemitter3")); exports.EventEmitter = eventemitter3_1.default; var WalletReadyState; (function (WalletReadyState) { /** * User-installable wallets can typically be detected by scanning for an API * that they've injected into the global context. If such an API is present, * we consider the wallet to have been installed. */ WalletReadyState["Installed"] = "Installed"; WalletReadyState["NotDetected"] = "NotDetected"; /** * Loadable wallets are always available to you. Since you can load them at * any time, it's meaningless to say that they have been detected. */ WalletReadyState["Loadable"] = "Loadable"; /** * If a wallet is not supported on a given platform (eg. server-rendering, or * mobile) then it will stay in the `Unsupported` state. */ WalletReadyState["Unsupported"] = "Unsupported"; })(WalletReadyState = exports.WalletReadyState || (exports.WalletReadyState = {})); var WalletAdapterNetwork; (function (WalletAdapterNetwork) { WalletAdapterNetwork["Mainnet"] = "mainnet"; WalletAdapterNetwork["Testnet"] = "testnet"; WalletAdapterNetwork["Devnet"] = "devnet"; })(WalletAdapterNetwork = exports.WalletAdapterNetwork || (exports.WalletAdapterNetwork = {})); class BaseWalletAdapter extends eventemitter3_1.default { get connected() { return !!this.publicAccount.publicKey; } } exports.BaseWalletAdapter = BaseWalletAdapter; function scopePollingDetectionStrategy(detect) { // Early return when server-side rendering if (typeof window === 'undefined' || typeof document === 'undefined') return; const disposers = []; function detectAndDispose() { const detected = detect(); if (detected) { for (const dispose of disposers) { dispose(); } } } // Strategy #1: Try detecting every second. const interval = // TODO: #334 Replace with idle callback strategy. setInterval(detectAndDispose, 1000); disposers.push(() => clearInterval(interval)); // Strategy #2: Detect as soon as the DOM becomes 'ready'/'interactive'. if ( // Implies that `DOMContentLoaded` has not yet fired. document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', detectAndDispose, { once: true }); disposers.push(() => document.removeEventListener('DOMContentLoaded', detectAndDispose)); } // Strategy #3: Detect after the `window` has fully loaded. if ( // If the `complete` state has been reached, we're too late. document.readyState !== 'complete') { window.addEventListener('load', detectAndDispose, { once: true }); disposers.push(() => window.removeEventListener('load', detectAndDispose)); } // Strategy #4: Detect synchronously, now. detectAndDispose(); } exports.scopePollingDetectionStrategy = scopePollingDetectionStrategy; //# sourceMappingURL=BaseAdapter.js.map