UNPKG

@coze/taro-api

Version:

Official Coze Taro SDK for seamless AI integration into your applications | 扣子官方 Taro SDK,助您轻松集成 AI 能力到应用中

37 lines (36 loc) 1.21 kB
import Taro from '@tarojs/taro'; import { CozeAPI as InnerCozeAPI } from '@coze/api'; import { sharedMixins } from '../mixins/shared'; import { platformMixins } from '../mixins/platform'; export class CozeAPI extends InnerCozeAPI { options; constructor(options) { super({ ...options, axiosOptions: { header: { ...options.headers, Authorization: `Bearer ${options.token}`, }, responseType: 'text', }, }); this.options = options; this.axiosInstance = this.wrapRequest.bind(this); sharedMixins(this); platformMixins(this); } async wrapRequest(options) { if (this.options.onBeforeAPICall) { const config = (await this.options.onBeforeAPICall(options)) ?? {}; if (config.token) { this.token = config.token; (this.axiosOptions?.header).Authorization = `Bearer ${config.token}`; options.header.Authorization = `Bearer ${config.token}`; } } return Taro.request(options); } }