@wallet-ui/core
Version:
Wallet UI core
1 lines • 6.28 kB
Source Map (JSON)
{"version":3,"sources":["../src/clusters.ts","../src/storage.ts","../src/create-storage.ts","../src/create-storage-account.ts","../src/create-storage-cluster.ts","../src/handle-copy-text.ts"],"names":["persistentAtom","computed"],"mappings":"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","file":"index.browser.cjs","sourcesContent":["import type {\n SolanaCluster,\n SolanaDevnetUrl,\n SolanaLocalnetUrl,\n SolanaMainnetUrl,\n SolanaTestnetUrl,\n} from './types/solana-cluster';\n\nexport type CreateSolanaProps = Partial<Pick<SolanaCluster, 'label' | 'url'>> | string;\n\nfunction createSolanaCluster<T extends SolanaDevnetUrl | SolanaLocalnetUrl | SolanaMainnetUrl | SolanaTestnetUrl>(\n props: CreateSolanaProps,\n { id, label, url }: SolanaCluster,\n): Pick<SolanaCluster, 'id' | 'label' | 'url'> {\n if (typeof props === 'string') {\n return { id, label, url: props as T };\n }\n\n return { id, label: props.label ?? label, url: props.url ?? url };\n}\n\nexport function createSolanaDevnet(props: CreateSolanaProps = {}): SolanaCluster {\n return createSolanaCluster<SolanaDevnetUrl>(props, {\n id: 'solana:devnet',\n label: 'Devnet',\n url: 'devnet' as SolanaDevnetUrl,\n });\n}\n\nexport function createSolanaLocalnet(props: CreateSolanaProps = {}): SolanaCluster {\n return createSolanaCluster(props, {\n id: 'solana:localnet',\n label: 'Localnet',\n url: 'localnet' as SolanaLocalnetUrl,\n });\n}\n\nexport function createSolanaMainnet(props: CreateSolanaProps = {}): SolanaCluster {\n return createSolanaCluster(props, {\n id: 'solana:mainnet',\n label: 'Mainnet',\n url: 'mainnet' as SolanaMainnetUrl,\n });\n}\n\nexport function createSolanaTestnet(props: CreateSolanaProps = {}): SolanaCluster {\n return createSolanaCluster(props, {\n id: 'solana:testnet',\n label: 'Testnet',\n url: 'testnet' as SolanaTestnetUrl,\n });\n}\n","import { persistentAtom } from '@nanostores/persistent';\nimport { computed, WritableAtom } from 'nanostores';\n\nexport class Storage<T> {\n private readonly atom: WritableAtom<T>;\n\n constructor(\n readonly key: string,\n readonly initial: T,\n ) {\n this.atom = persistentAtom<T>(key, initial, { decode: JSON.parse, encode: JSON.stringify });\n }\n\n get() {\n return this.atom.get();\n }\n\n set(value: T) {\n this.atom.set(value);\n }\n\n get value() {\n return computed(this.atom, value => value);\n }\n}\n","import { Storage } from './storage';\n\nexport function createStorage<T>({ initial, key }: { initial: T; key: string }) {\n return new Storage(key, initial);\n}\n","import { createStorage } from './create-storage';\nimport { Storage } from './storage';\n\nexport type StorageAccount = Storage<string | undefined>;\n\nexport function createStorageAccount({\n initial,\n key,\n}: {\n initial?: string | undefined;\n key?: string;\n} = {}): StorageAccount {\n return createStorage<string | undefined>({\n initial,\n key: key ?? 'wallet-ui:account',\n });\n}\n","import { createStorage } from './create-storage';\nimport { Storage } from './storage';\nimport { SolanaClusterId } from './types/solana-cluster-id';\n\nexport type StorageCluster = Storage<SolanaClusterId>;\n\nexport function createStorageCluster({\n initial,\n key,\n}: {\n initial?: SolanaClusterId;\n key?: string;\n} = {}): StorageCluster {\n return createStorage<SolanaClusterId>({\n initial: initial ?? 'solana:devnet',\n key: key ?? 'wallet-ui:cluster',\n });\n}\n","export function handleCopyText(text?: string) {\n if (!text) {\n return;\n }\n if (\n typeof globalThis === 'undefined' ||\n !globalThis.navigator ||\n !globalThis.navigator.clipboard ||\n !globalThis.navigator.clipboard.writeText\n ) {\n return;\n }\n void globalThis.navigator.clipboard.writeText(text);\n}\n"]}