/
index.ts
38 lines (29 loc) · 867 Bytes
/
index.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import type { UniversalIconLoader } from '@iconify/utils'
import { loadIcon } from '@iconify/utils'
import { createCDNLoader } from './cdn'
import { combineLoaders, createPresetIcons } from './core'
import { isNode, isVSCode } from './utils'
export * from './core'
async function createNodeLoader() {
try {
return await import('@iconify/utils/lib/loader/node-loader').then(i => i?.loadNodeIcon)
}
catch { }
try {
return require('@iconify/utils/lib/loader/node-loader.cjs')
}
catch { }
}
export const presetIcons = createPresetIcons(async (options) => {
const {
cdn,
} = options
const loaders: UniversalIconLoader[] = []
if (isNode && !isVSCode)
loaders.push(await createNodeLoader())
if (cdn)
loaders.push(createCDNLoader(cdn))
loaders.push(loadIcon)
return combineLoaders(loaders)
})
export default presetIcons