@solana/wallet-adapter-base
Advanced tools
Comparing version 0.9.4 to 0.9.5
@@ -48,25 +48,34 @@ "use strict"; | ||
return; | ||
const poll = () => { | ||
// Wallet detected, nothing more to do | ||
if (detect()) | ||
return; | ||
// Wallet not detected yet, try detecting every second | ||
const interval = setInterval(() => { | ||
// Wallet detected, nothing more to do | ||
if (detect()) { | ||
clearInterval(interval); | ||
const disposers = []; | ||
function detectAndDispose() { | ||
const detected = detect(); | ||
if (detected) { | ||
for (const dispose of disposers) { | ||
dispose(); | ||
} | ||
}, 1000); | ||
}; | ||
if (document.readyState === 'complete') { | ||
poll(); | ||
return; | ||
} | ||
} | ||
function listener() { | ||
window.removeEventListener('load', listener); | ||
poll(); | ||
// 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)); | ||
} | ||
window.addEventListener('load', listener); | ||
// 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=adapter.js.map |
"use strict"; | ||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); | ||
var desc = Object.getOwnPropertyDescriptor(m, k); | ||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { | ||
desc = { enumerable: true, get: function() { return m[k]; } }; | ||
} | ||
Object.defineProperty(o, k2, desc); | ||
}) : (function(o, m, k, k2) { | ||
@@ -6,0 +10,0 @@ if (k2 === undefined) k2 = k; |
{ | ||
"name": "@solana/wallet-adapter-base", | ||
"version": "0.9.4", | ||
"version": "0.9.5", | ||
"author": "Solana Maintainers <maintainers@solana.foundation>", | ||
@@ -11,3 +11,3 @@ "repository": "https://github.com/solana-labs/wallet-adapter", | ||
"module": "lib/esm/index.mjs", | ||
"types": "lib/esm/index.d.ts", | ||
"types": "lib/types/index.d.ts", | ||
"exports": { | ||
@@ -27,10 +27,10 @@ "import": "./lib/esm/index.mjs", | ||
"clean": "shx rm -rf lib/*", | ||
"build": "yarn clean && tsc -p tsconfig.json; tsc-esm -p tsconfig.json && tsc -p tsconfig.cjs.json", | ||
"build": "yarn clean && tsc -p tsconfig.json && tsc-esm -p tsconfig.json && tsc -p tsconfig.cjs.json", | ||
"postbuild": "echo '{\"type\":\"commonjs\"}' | npx json > lib/cjs/package.json && echo '{\"type\":\"module\"} ' | npx json > lib/esm/package.json" | ||
}, | ||
"dependencies": { | ||
"@solana/web3.js": "^1.20.0", | ||
"@solana/web3.js": "^1.36.0", | ||
"eventemitter3": "^4.0.0" | ||
}, | ||
"gitHead": "42bcf2853e268be2bb0eb5fac71a5b9d7204f420" | ||
"gitHead": "e89adf6cdc59ca33db0fcc3a27841a1f94a8b8ed" | ||
} |
@@ -96,25 +96,39 @@ import { Connection, PublicKey, SendOptions, Signer, Transaction, TransactionSignature } from '@solana/web3.js'; | ||
const poll = () => { | ||
// Wallet detected, nothing more to do | ||
if (detect()) return; | ||
const disposers: (() => void)[] = []; | ||
// Wallet not detected yet, try detecting every second | ||
const interval = setInterval(() => { | ||
// Wallet detected, nothing more to do | ||
if (detect()) { | ||
clearInterval(interval); | ||
function detectAndDispose() { | ||
const detected = detect(); | ||
if (detected) { | ||
for (const dispose of disposers) { | ||
dispose(); | ||
} | ||
}, 1000); | ||
}; | ||
} | ||
} | ||
if (document.readyState === 'complete') { | ||
poll(); | ||
return; | ||
// 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)); | ||
} | ||
function listener() { | ||
window.removeEventListener('load', listener); | ||
poll(); | ||
// 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)); | ||
} | ||
window.addEventListener('load', listener); | ||
// Strategy #4: Detect synchronously, now. | ||
detectAndDispose(); | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
58249
35
902
Updated@solana/web3.js@^1.36.0