@3dverse/api 0.2.4 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  export declare function setApiKey(apiKey: string): void;
2
2
  export declare function setUserToken(userToken: string): void;
3
- export declare function setBaseUrl(url: string): void;
4
3
  declare abstract class ServiceError extends Error {
5
4
  errorCode: number;
6
5
  httpCode: number;
package/dist/index.js CHANGED
@@ -98,7 +98,6 @@ __export(library_exports, {
98
98
  setApiKey: () => setApiKey,
99
99
  setAssetThumbnail: () => setAssetThumbnail,
100
100
  setBaseURL: () => setBaseURL,
101
- setBaseUrl: () => setBaseUrl,
102
101
  setUserToken: () => setUserToken,
103
102
  updateAssetDescription: () => updateAssetDescription,
104
103
  updateEntity: () => updateEntity,
@@ -948,6 +947,7 @@ function generateGuestToken({
948
947
  }
949
948
 
950
949
  // index.ts
950
+ var import_axios_retry = __toESM(require("axios-retry"));
951
951
  function setApiKey(apiKey) {
952
952
  axiosInstance.defaults.headers.common["api_key"] = apiKey;
953
953
  delete axiosInstance.defaults.headers.common["user_token"];
@@ -956,9 +956,6 @@ function setUserToken(userToken) {
956
956
  axiosInstance.defaults.headers.common["user_token"] = userToken;
957
957
  delete axiosInstance.defaults.headers.common["api_key"];
958
958
  }
959
- function setBaseUrl(url) {
960
- axiosInstance.defaults.baseURL = url;
961
- }
962
959
  var ServiceError = class extends Error {
963
960
  errorCode;
964
961
  httpCode;
@@ -988,6 +985,11 @@ var UnexpectedServiceError = class extends ServiceError {
988
985
  function installInterceptors() {
989
986
  const CLIENT_ERROR = 400;
990
987
  const INTERNAL_SERVER_ERROR = 500;
988
+ (0, import_axios_retry.default)(axiosInstance, {
989
+ retries: 5,
990
+ retryDelay: import_axios_retry.default.exponentialDelay,
991
+ retryCondition: shouldRetryRequest
992
+ });
991
993
  axiosInstance.interceptors.response.use(
992
994
  (successFulResponse) => {
993
995
  if (successFulResponse.config.responseType === "stream") {
@@ -1005,14 +1007,24 @@ function installInterceptors() {
1005
1007
  if (!errorData && axiosError.request.method === "HEAD" && status >= CLIENT_ERROR && status < INTERNAL_SERVER_ERROR) {
1006
1008
  return axiosError.response;
1007
1009
  }
1008
- if (!errorData || !("error" in errorData)) {
1010
+ if (!errorData || typeof errorData !== "object") {
1009
1011
  return Promise.reject(new UnexpectedServiceError(status, errorData));
1010
1012
  }
1011
- const serviceError = errorData.error;
1013
+ const serviceError = errorData;
1012
1014
  return Promise.reject(new ApiError(serviceError.errorCode, status, serviceError.message, serviceError));
1013
1015
  }
1014
1016
  );
1015
1017
  }
1018
+ function shouldRetryRequest(error) {
1019
+ const status = error.response?.status;
1020
+ switch (status) {
1021
+ case 403:
1022
+ case 404:
1023
+ return true;
1024
+ default:
1025
+ return (0, import_axios_retry.isNetworkError)(error) || (0, import_axios_retry.isIdempotentRequestError)(error);
1026
+ }
1027
+ }
1016
1028
  installInterceptors();
1017
1029
  // Annotate the CommonJS export names for ESM import in node:
1018
1030
  0 && (module.exports = {
@@ -1085,7 +1097,6 @@ installInterceptors();
1085
1097
  setApiKey,
1086
1098
  setAssetThumbnail,
1087
1099
  setBaseURL,
1088
- setBaseUrl,
1089
1100
  setUserToken,
1090
1101
  updateAssetDescription,
1091
1102
  updateEntity,