diff --git a/packages/apps-config/src/extensions/index.ts b/packages/apps-config/src/extensions/index.ts index dd14cb74d5..02fc5885ee 100644 --- a/packages/apps-config/src/extensions/index.ts +++ b/packages/apps-config/src/extensions/index.ts @@ -1,7 +1,6 @@ // Copyright 2017-2022 @polkadot/apps-config authors & contributors // SPDX-License-Identifier: Apache-2.0 -// it would have been really good to import this from detect-browser, however... not exported type Browser = 'chrome' | 'firefox'; interface Extension { @@ -10,21 +9,30 @@ interface Extension { name: string; } +interface Known { + all: Record; + desc: string; + name: string; +} + // The list of known extensions including the links to tem on the store. This is used when // no extensions are actually available, promoting the user to install one or more +// (Any known extension can and should be added here) -export const availableExtensions: Record = [ +const known: Known[] = [ { - browsers: { + all: { chrome: 'https://chrome.google.com/webstore/detail/polkadot%7Bjs%7D-extension/mopnmbcafieddcagagdcbnhejhlodfdd', firefox: 'https://addons.mozilla.org/en-US/firefox/addon/polkadot-js-extension/' }, desc: 'Basic account injection and signer', name: 'polkadot-js extension' } -].reduce((available: Record, { browsers, desc, name }): Record => { - Object.entries(browsers).forEach(([browser, link]): void => { - available[browser as 'chrome'].push({ desc, link, name }); +]; + +export const availableExtensions = known.reduce>((available, { all, desc, name }) => { + Object.entries(all).forEach(([browser, link]): void => { + available[browser as Browser].push({ desc, link, name }); }); return available;