UNPKG

@wallet-ui/core

Version:
1 lines 6.51 kB
{"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":[],"mappings":"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","file":"index.node.mjs","sourcesContent":["import type { DevnetUrl, LocalnetUrl, MainnetUrl, TestnetUrl } from 'gill';\n\nimport { SolanaCluster } from './types/solana-cluster';\n\nexport type CreateSolanaProps = Partial<Pick<SolanaCluster, 'label' | 'urlOrMoniker'>> | string;\n\nfunction createSolanaCluster<T extends DevnetUrl | LocalnetUrl | MainnetUrl | TestnetUrl>(\n props: CreateSolanaProps,\n { cluster, id, label, urlOrMoniker }: SolanaCluster,\n): Pick<SolanaCluster, 'cluster' | 'id' | 'label' | 'urlOrMoniker'> {\n if (typeof props === 'string') {\n return { cluster, id, label, urlOrMoniker: props as T };\n }\n\n return { cluster, id, label: props.label ?? label, urlOrMoniker: props.urlOrMoniker ?? urlOrMoniker };\n}\n\nexport function createSolanaDevnet(props: CreateSolanaProps = {}): SolanaCluster {\n return createSolanaCluster<DevnetUrl>(props, {\n cluster: 'devnet',\n id: 'solana:devnet',\n label: 'Devnet',\n urlOrMoniker: 'devnet' as DevnetUrl,\n });\n}\n\nexport function createSolanaLocalnet(props: CreateSolanaProps = {}): SolanaCluster {\n return createSolanaCluster(props, {\n cluster: 'localnet',\n id: 'solana:localnet',\n label: 'Localnet',\n urlOrMoniker: 'localnet' as LocalnetUrl,\n });\n}\n\nexport function createSolanaMainnet(props: CreateSolanaProps = {}): SolanaCluster {\n return createSolanaCluster(props, {\n cluster: 'mainnet',\n id: 'solana:mainnet',\n label: 'Mainnet',\n urlOrMoniker: 'mainnet' as MainnetUrl,\n });\n}\n\nexport function createSolanaTestnet(props: CreateSolanaProps = {}): SolanaCluster {\n return createSolanaCluster(props, {\n cluster: 'testnet',\n id: 'solana:testnet',\n label: 'Testnet',\n urlOrMoniker: 'testnet' as TestnetUrl,\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"]}