@lifi/sdk
Version:
LI.FI Any-to-Any Cross-Chain-Swap SDK
37 lines (33 loc) • 1.11 kB
text/typescript
import { ChainType } from '@lifi/types'
import { config } from './config.js'
import { getChains } from './services/api.js'
import type { SDKConfig } from './types/internal.js'
import { checkPackageUpdates } from './utils/checkPackageUpdates.js'
import { name, version } from './version.js'
function createBaseConfig(options: SDKConfig) {
if (!options.integrator) {
throw new Error(
'Integrator not found. Please see documentation https://docs.li.fi/integrate-li.fi-js-sdk/set-up-the-sdk'
)
}
const _config = config.set(options)
if (!options.disableVersionCheck && process.env.NODE_ENV === 'development') {
checkPackageUpdates(name, version)
}
return _config
}
export async function createChainsConfig() {
config.loading = getChains({
chainTypes: [ChainType.EVM, ChainType.SVM, ChainType.UTXO, ChainType.MVM],
})
.then((chains) => config.setChains(chains))
.catch()
await config.loading
}
export function createConfig(options: SDKConfig) {
const _config = createBaseConfig(options)
if (_config.preloadChains) {
createChainsConfig()
}
return _config
}