@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
JavaScript
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);
}
}