mirror of
https://gitee.com/nocobase/nocobase.git
synced 2024-12-03 12:47:44 +08:00
fix(api-client): supports silent mode (#5512)
This commit is contained in:
parent
4712a19d6d
commit
158ef760fc
@ -61,6 +61,19 @@ export class APIClient extends APIClientSDK {
|
||||
/** 该值会在 AntdAppProvider 中被重新赋值 */
|
||||
notification: any = notification;
|
||||
|
||||
cloneInstance() {
|
||||
const api = new APIClient(this.options);
|
||||
api.options = this.options;
|
||||
api.services = this.services;
|
||||
api.storage = this.storage;
|
||||
api.app = this.app;
|
||||
api.auth = this.auth;
|
||||
api.storagePrefix = this.storagePrefix;
|
||||
api.notification = this.notification;
|
||||
api.axios = this.axios;
|
||||
return api;
|
||||
}
|
||||
|
||||
getHeaders() {
|
||||
const headers = super.getHeaders();
|
||||
const appName = this.app.getName();
|
||||
@ -180,7 +193,8 @@ export class APIClient extends APIClientSDK {
|
||||
}
|
||||
|
||||
silent() {
|
||||
this.silence = true;
|
||||
return this;
|
||||
const api = this.cloneInstance();
|
||||
api.silence = true;
|
||||
return api;
|
||||
}
|
||||
}
|
||||
|
@ -275,6 +275,7 @@ interface ExtendedOptions {
|
||||
export type APIClientOptions = AxiosInstance | (AxiosRequestConfig & ExtendedOptions);
|
||||
|
||||
export class APIClient {
|
||||
options?: APIClientOptions;
|
||||
axios: AxiosInstance;
|
||||
auth: Auth;
|
||||
storage: Storage;
|
||||
@ -297,11 +298,12 @@ export class APIClient {
|
||||
return headers;
|
||||
}
|
||||
|
||||
constructor(instance?: APIClientOptions) {
|
||||
if (typeof instance === 'function') {
|
||||
this.axios = instance;
|
||||
constructor(options?: APIClientOptions) {
|
||||
this.options = options;
|
||||
if (typeof options === 'function') {
|
||||
this.axios = options;
|
||||
} else {
|
||||
const { authClass, storageType, storageClass, storagePrefix = 'NOCOBASE_', ...others } = instance || {};
|
||||
const { authClass, storageType, storageClass, storagePrefix = 'NOCOBASE_', ...others } = options || {};
|
||||
this.storagePrefix = storagePrefix;
|
||||
this.axios = axios.create(others);
|
||||
this.initStorage(storageClass, storageType);
|
||||
|
Loading…
Reference in New Issue
Block a user