UNPKG

@cloudbase/types

Version:
105 lines (93 loc) 2.85 kB
import { CloudbaseAdapter, SDKAdapterInterface } from '@cloudbase/adapter-interface' import { ICloudbaseComponent, ICloudbaseHook } from './component' import { ICloudbaseRequest } from './request' import { ICloudbaseCache } from './cache' import { ICloudbaseAuth } from './auth' export enum LANGS { ZH = 'zh-CN', EN = 'en-US', } export type Persistence = 'local' | 'session' | 'none' export interface KV<T> { [key: string]: T } export interface KVstring { [key: string]: string } export type EndPointKey = 'CLOUD_API' | 'GATEWAY' export interface ICloudbaseConfig { env: string region?: string timeout?: number persistence?: Persistence oauthClient?: any debug?: boolean _fromApp?: ICloudbase clientId?: string oauthInstance?: any wxCloud?: any i18n?: { t: (text: string) => string LANG_HEADER_KEY: string lang: LANGS } accessKey?: string endPointMode?: EndPointKey // auth请求域名模式,默认CLOUD_API useWxCloud?: boolean // 是否使用微信云开发链路 } // 可更新的配置字段 export type ICloudbaseUpgradedConfig = Pick<ICloudbaseConfig, 'persistence' | 'region' | 'debug'> export interface ICloudbaseExtension { name: string invoke: (opts: any, app: ICloudbase) => Promise<any> } export interface ICloudbaseApis { [apiName: string]: (apiName: string) => { [method: string]: (callApiOptions: ICallApiOptions, opts: KV<any>) => Promise<ResponseObject['data']> } } export interface ICloudbase { config: ICloudbaseConfig platform: ICloudbasePlatformInfo cache: ICloudbaseCache request: ICloudbaseRequest oauthClient: any localCache: ICloudbaseCache authInstance?: ICloudbaseAuth oauthInstance?: any apis: ICloudbaseApis init: (config: ICloudbaseConfig & { lang?: LANGS }) => ICloudbase updateConfig: (config: ICloudbaseUpgradedConfig) => void registerExtension: (ext: ICloudbaseExtension) => void invokeExtension: (name: string, opts: any) => Promise<any> useAdapters: (adapters: CloudbaseAdapter | CloudbaseAdapter[], options?: any) => void registerComponent: (component: ICloudbaseComponent) => void registerHook: (hook: ICloudbaseHook) => void registerVersion: (version: string) => void fire?: (...args: any[]) => void updateLang?: (lang: LANGS) => void getEndPointWithKey?: (key: EndPointKey) => { BASE_URL: string; PROTOCOL: string; } } export interface ICloudbasePlatformInfo { adapter?: SDKAdapterInterface runtime?: string } export interface IGenericError<T extends string, P = any> extends Error { type: T payload: P generic: boolean } export interface ICallApiOptions { /** api标识 */ name: string /** 请求的path */ path?: string method?: string headers?: KV<any> /** 请求体,根据content-type可以是不同类型 */ body?: KV<any> | string token?: string }