UNPKG

@cloudbase/utilities

Version:
35 lines (30 loc) 956 B
import { CloudbaseAdapter, SDKAdapterInterface, NodeAdapterInterface } from '@cloudbase/adapter-interface' import * as Web from './platforms/web' import { isArray } from '../libs/util' export enum RUNTIME { WEB = 'web', WX_MP = 'wx_mp', // 微信小程序 } type ICloudbaseAdapter = CloudbaseAdapter & { genAdapter: (options?: any) => SDKAdapterInterface | NodeAdapterInterface } export function useAdapters(adapters: ICloudbaseAdapter | ICloudbaseAdapter[], options?: any) { const adapterList: ICloudbaseAdapter[] = isArray(adapters) ? (adapters as ICloudbaseAdapter[]) : [adapters as ICloudbaseAdapter] for (const adapter of adapterList) { const { isMatch, genAdapter, runtime } = adapter if (isMatch()) { return { adapter: { isMatch, ...genAdapter(options) }, runtime, } } } } export function useDefaultAdapter() { return { adapter: Web.genAdapter(), runtime: RUNTIME.WEB, } }