UNPKG

valaxy-addon-live2d

Version:

<a href="https://www.npmjs.com/package/valaxy-addon-live2d" rel="nofollow"><img src="https://img.shields.io/npm/v/valaxy-addon-live2d?color=0078E7" alt="NPM version"></a>

35 lines (28 loc) 1.38 kB
import type { ValaxyAddon } from 'valaxy' import type { Live2DCollection, Live2dOptions, Live2dTips } from '../types' import defu from 'defu' import { useRuntimeConfig } from 'valaxy' import { computed } from 'vue' import { live2DCollection } from '../constants/live2dCollection' import { live2dTips } from '../constants/live2dTips' import { defaultLive2DOptions } from '../node/config' import { filterLive2DCollection, mergeConfigs } from '../utils/config' export function useAddonLive2dConfig() { const runtimeConfig = useRuntimeConfig() return computed<Live2dOptions>(() => { const { options: userOptions } = runtimeConfig.value.addons['valaxy-addon-live2d'] as ValaxyAddon<Live2dOptions> const enableLive2D = userOptions?.enableLive2D ?? 'all' const mergedLive2DCollection: Live2DCollection = { ...live2DCollection, ...userOptions?.live2DCollection } const filteredAndSortedLive2DCollection: Live2DCollection = (enableLive2D === 'all') ? mergedLive2DCollection : filterLive2DCollection(enableLive2D, mergedLive2DCollection) const mergedLive2dTips = mergeConfigs(live2dTips, userOptions?.live2dTips || {}) as Live2dTips const options = defu(userOptions, defaultLive2DOptions) return { ...options, live2DCollection: filteredAndSortedLive2DCollection, enableLive2D, live2dTips: mergedLive2dTips, } }) }