@pdg/api 1.0.0 → 1.0.2
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/Api/Api.types.d.ts +2 -1
- package/dist/index.esm.js +61 -3
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +61 -3
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/Api/Api.types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AxiosRequestConfig, AxiosResponse, ResponseType } from 'axios';
|
|
1
|
+
import { AxiosRequestConfig, AxiosResponse, InternalAxiosRequestConfig, ResponseType } from 'axios';
|
|
2
2
|
export interface ApiRequestData {
|
|
3
3
|
[key: string]: any;
|
|
4
4
|
}
|
|
@@ -26,6 +26,7 @@ export interface ApiOption<T = any> {
|
|
|
26
26
|
baseUrl: string;
|
|
27
27
|
withCredentials?: boolean;
|
|
28
28
|
headers?: AxiosRequestConfig['headers'];
|
|
29
|
+
onRequest?(config: InternalAxiosRequestConfig, baseUrl: string, path: string, requestData?: ApiRequestData, requestOption?: ApiRequestOption): Promise<InternalAxiosRequestConfig>;
|
|
29
30
|
onResponse?(response: AxiosResponse<T>, config: AxiosRequestConfig, baseUrl: string, path: string, requestData?: ApiRequestData, requestOption?: ApiRequestOption): Promise<T>;
|
|
30
31
|
onError?(err: ApiError): void;
|
|
31
32
|
dataKeysToLowerCase?: boolean;
|
package/dist/index.esm.js
CHANGED
|
@@ -38,7 +38,45 @@ var __assign = function() {
|
|
|
38
38
|
return t;
|
|
39
39
|
};
|
|
40
40
|
return __assign.apply(this, arguments);
|
|
41
|
-
}
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
function __awaiter(thisArg, _arguments, P, generator) {
|
|
44
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
45
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
46
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
47
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
48
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
49
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function __generator(thisArg, body) {
|
|
54
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
55
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
56
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
57
|
+
function step(op) {
|
|
58
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
59
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
60
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
61
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
62
|
+
switch (op[0]) {
|
|
63
|
+
case 0: case 1: t = op; break;
|
|
64
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
65
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
66
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
67
|
+
default:
|
|
68
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
69
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
70
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
71
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
72
|
+
if (t[2]) _.ops.pop();
|
|
73
|
+
_.trys.pop(); continue;
|
|
74
|
+
}
|
|
75
|
+
op = body.call(thisArg, _);
|
|
76
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
77
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
78
|
+
}
|
|
79
|
+
}//--------------------------------------------------------------------------------------------------------------------
|
|
42
80
|
var ApiError = /** @class */ (function (_super) {
|
|
43
81
|
__extends(ApiError, _super);
|
|
44
82
|
function ApiError(message, code) {
|
|
@@ -213,7 +251,22 @@ function urlJoin() {
|
|
|
213
251
|
_this.option.onError(apiError);
|
|
214
252
|
reject(apiError);
|
|
215
253
|
};
|
|
216
|
-
axios(
|
|
254
|
+
var instance = axios.create();
|
|
255
|
+
var requestInterceptor;
|
|
256
|
+
if (_this.option.onRequest) {
|
|
257
|
+
requestInterceptor = instance.interceptors.request.use(function (config) { return __awaiter(_this, void 0, void 0, function () {
|
|
258
|
+
return __generator(this, function (_a) {
|
|
259
|
+
if (this.option.onRequest) {
|
|
260
|
+
return [2 /*return*/, this.option.onRequest(config, this.option.baseUrl, path, data, option)];
|
|
261
|
+
}
|
|
262
|
+
else {
|
|
263
|
+
return [2 /*return*/, config];
|
|
264
|
+
}
|
|
265
|
+
});
|
|
266
|
+
}); });
|
|
267
|
+
}
|
|
268
|
+
instance
|
|
269
|
+
.request(requestConfig)
|
|
217
270
|
.then(function (res) {
|
|
218
271
|
var resData = res.data;
|
|
219
272
|
if (_this.option.onResponse) {
|
|
@@ -231,7 +284,12 @@ function urlJoin() {
|
|
|
231
284
|
resolve(resData);
|
|
232
285
|
}
|
|
233
286
|
})
|
|
234
|
-
.catch(fireError)
|
|
287
|
+
.catch(fireError)
|
|
288
|
+
.finally(function () {
|
|
289
|
+
if (requestInterceptor) {
|
|
290
|
+
instance.interceptors.request.eject(requestInterceptor);
|
|
291
|
+
}
|
|
292
|
+
});
|
|
235
293
|
});
|
|
236
294
|
};
|
|
237
295
|
this.option = option;
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../src/Api/Api.types.ts","../src/@util/compare.ts","../node_modules/url-join/lib/url-join.js","../src/@util/url.ts","../src/Api/Api.ts"],"sourcesContent":["import { AxiosRequestConfig, AxiosResponse, ResponseType } from 'axios';\n\nexport interface ApiRequestData {\n [key: string]: any;\n}\n\nexport interface ApiRequestOption {\n raw?: boolean;\n rawResponseType?: ResponseType;\n silent?: boolean;\n}\n\nexport interface ApiRequestConfig extends AxiosRequestConfig {\n silent?: boolean;\n}\n\n//--------------------------------------------------------------------------------------------------------------------\n\nexport class ApiError<T = any> extends Error {\n code?: string;\n config?: ApiRequestConfig;\n baseUrl?: string;\n path?: string;\n requestData?: ApiRequestData;\n requestOption?: ApiRequestOption;\n response?: AxiosResponse<T>;\n status?: number;\n isAxiosError = false;\n\n constructor(message?: string, code?: string) {\n super(message);\n\n this.code = code;\n }\n}\n\n//--------------------------------------------------------------------------------------------------------------------\n\nexport interface ApiOption<T = any> {\n baseUrl: string;\n withCredentials?: boolean;\n headers?: AxiosRequestConfig['headers'];\n onResponse?(\n response: AxiosResponse<T>,\n config: AxiosRequestConfig,\n baseUrl: string,\n path: string,\n requestData?: ApiRequestData,\n requestOption?: ApiRequestOption\n ): Promise<T>;\n onError?(err: ApiError): void;\n dataKeysToLowerCase?: boolean;\n}\n","const empty = function (v: any) {\n let result = false;\n if (v == null) {\n result = true;\n } else if (typeof v === 'string') {\n result = v === '';\n } else if (typeof v === 'object') {\n if (Array.isArray(v)) {\n result = v.length === 0;\n } else if (!(v instanceof Date)) {\n result = Object.entries(v).length === 0;\n }\n }\n return result;\n};\n\nconst notEmpty = function (v: any) {\n return !empty(v);\n};\n\nexport { empty, notEmpty };\n","function normalize (strArray) {\n var resultArray = [];\n if (strArray.length === 0) { return ''; }\n\n if (typeof strArray[0] !== 'string') {\n throw new TypeError('Url must be a string. Received ' + strArray[0]);\n }\n\n // If the first part is a plain protocol, we combine it with the next part.\n if (strArray[0].match(/^[^/:]+:\\/*$/) && strArray.length > 1) {\n var first = strArray.shift();\n strArray[0] = first + strArray[0];\n }\n\n // There must be two or three slashes in the file protocol, two slashes in anything else.\n if (strArray[0].match(/^file:\\/\\/\\//)) {\n strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, '$1:///');\n } else {\n strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, '$1://');\n }\n\n for (var i = 0; i < strArray.length; i++) {\n var component = strArray[i];\n\n if (typeof component !== 'string') {\n throw new TypeError('Url must be a string. Received ' + component);\n }\n\n if (component === '') { continue; }\n\n if (i > 0) {\n // Removing the starting slashes for each component but the first.\n component = component.replace(/^[\\/]+/, '');\n }\n if (i < strArray.length - 1) {\n // Removing the ending slashes for each component but the last.\n component = component.replace(/[\\/]+$/, '');\n } else {\n // For the last component we will combine multiple slashes to a single one.\n component = component.replace(/[\\/]+$/, '/');\n }\n\n resultArray.push(component);\n\n }\n\n var str = resultArray.join('/');\n // Each input component is now separated by a single slash except the possible first plain protocol part.\n\n // remove trailing slash before parameters or hash\n str = str.replace(/\\/(\\?|&|#[^!])/g, '$1');\n\n // replace ? in parameters with &\n var parts = str.split('?');\n str = parts.shift() + (parts.length > 0 ? '?': '') + parts.join('&');\n\n return str;\n}\n\nexport default function urlJoin() {\n var input;\n\n if (typeof arguments[0] === 'object') {\n input = arguments[0];\n } else {\n input = [].slice.call(arguments);\n }\n\n return normalize(input);\n}\n","import urlJoin from 'url-join';\n\nexport function joinUrl(...paths: string[]): string {\n let url = urlJoin(...paths);\n while (url.indexOf('//') > -1) {\n url = url.replace(/\\/\\//g, '/');\n }\n return url;\n}\n","import axios, { AxiosResponse, Method } from 'axios';\nimport { ApiError, ApiRequestData, ApiOption, ApiRequestOption, ApiRequestConfig } from './Api.types';\nimport { notEmpty, joinUrl } from '../@util';\n\nclass Api<T = any> {\n option: ApiOption;\n\n // constructor -------------------------------------------------------------------------------------------------------\n\n constructor(option: ApiOption<T>) {\n this.option = option;\n }\n\n get(path: string, data?: ApiRequestData, option?: ApiRequestOption): Promise<T> {\n return this.run('get', path, data, option);\n }\n\n post(path: string, data?: ApiRequestData, option?: ApiRequestOption): Promise<T> {\n return this.run('post', path, data, option);\n }\n\n patch(path: string, data?: ApiRequestData, option?: ApiRequestOption): Promise<T> {\n return this.run('patch', path, data, option);\n }\n\n delete(path: string, data?: ApiRequestData, option?: ApiRequestOption): Promise<T> {\n return this.run('delete', path, data, option);\n }\n\n // Run ---------------------------------------------------------------------------------------------------------------\n\n run = (method: Method, path: string, data?: ApiRequestData, option?: ApiRequestOption): Promise<T> => {\n return new Promise<T>((resolve, reject) => {\n const headers: ApiRequestConfig['headers'] = { ...this.option.headers };\n\n if (typeof window !== 'undefined') {\n if (window?.location?.href) {\n headers['X-Referer'] = window.location.href;\n }\n }\n\n const requestConfig: ApiRequestConfig = {\n method,\n withCredentials: this.option.withCredentials,\n headers,\n silent: !!option?.silent,\n };\n if (option?.raw) {\n requestConfig.responseType = option?.rawResponseType || 'arraybuffer';\n }\n\n requestConfig.url = joinUrl(this.option.baseUrl, path.replace(/\\./g, '/'));\n\n if (data) {\n if (method === 'get') {\n if (notEmpty(data)) {\n const finalData: ApiRequestData = {};\n for (const key in data) {\n if (data[key] != null) {\n finalData[key] = data[key];\n }\n }\n requestConfig.url += `?${new URLSearchParams(finalData).toString()}`;\n }\n } else {\n requestConfig.data = data;\n }\n }\n\n const setErrorInfo = (err: ApiError, status?: number, response?: AxiosResponse) => {\n err.config = requestConfig;\n err.baseUrl = this.option.baseUrl;\n err.path = path;\n err.requestData = data;\n err.requestOption = option;\n err.response = response;\n err.status = status;\n };\n\n const fireError = (err: any): void => {\n const apiError: ApiError = new ApiError();\n\n if (typeof err === 'object') {\n apiError.message = err.message;\n apiError.code = err.code;\n setErrorInfo(apiError, err.status, err.response);\n } else if (typeof err === 'string') {\n apiError.message = err;\n } else if (err) {\n apiError.message = err.toString();\n }\n\n if (this.option.onError) this.option.onError(apiError);\n\n reject(apiError);\n };\n\n axios<T>(requestConfig)\n .then((res) => {\n const { data: resData } = res;\n if (this.option.onResponse) {\n this.option\n .onResponse(res, requestConfig, this.option.baseUrl, path, data, option)\n .then((finalResData) => {\n resolve(finalResData);\n })\n .catch((err: ApiError) => {\n setErrorInfo(err, res.status, res);\n fireError(err);\n });\n } else {\n resolve(resData);\n }\n })\n .catch(fireError);\n });\n };\n}\n\nexport default Api;\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/Api/Api.types.ts","../src/@util/compare.ts","../node_modules/url-join/lib/url-join.js","../src/@util/url.ts","../src/Api/Api.ts"],"sourcesContent":["import { AxiosRequestConfig, AxiosResponse, InternalAxiosRequestConfig, ResponseType } from 'axios';\n\nexport interface ApiRequestData {\n [key: string]: any;\n}\n\nexport interface ApiRequestOption {\n raw?: boolean;\n rawResponseType?: ResponseType;\n silent?: boolean;\n}\n\nexport interface ApiRequestConfig extends AxiosRequestConfig {\n silent?: boolean;\n}\n\n//--------------------------------------------------------------------------------------------------------------------\n\nexport class ApiError<T = any> extends Error {\n code?: string;\n config?: ApiRequestConfig;\n baseUrl?: string;\n path?: string;\n requestData?: ApiRequestData;\n requestOption?: ApiRequestOption;\n response?: AxiosResponse<T>;\n status?: number;\n isAxiosError = false;\n\n constructor(message?: string, code?: string) {\n super(message);\n\n this.code = code;\n }\n}\n\n//--------------------------------------------------------------------------------------------------------------------\n\nexport interface ApiOption<T = any> {\n baseUrl: string;\n withCredentials?: boolean;\n headers?: AxiosRequestConfig['headers'];\n onRequest?(\n config: InternalAxiosRequestConfig,\n baseUrl: string,\n path: string,\n requestData?: ApiRequestData,\n requestOption?: ApiRequestOption\n ): Promise<InternalAxiosRequestConfig>;\n onResponse?(\n response: AxiosResponse<T>,\n config: AxiosRequestConfig,\n baseUrl: string,\n path: string,\n requestData?: ApiRequestData,\n requestOption?: ApiRequestOption\n ): Promise<T>;\n onError?(err: ApiError): void;\n dataKeysToLowerCase?: boolean;\n}\n","const empty = function (v: any) {\n let result = false;\n if (v == null) {\n result = true;\n } else if (typeof v === 'string') {\n result = v === '';\n } else if (typeof v === 'object') {\n if (Array.isArray(v)) {\n result = v.length === 0;\n } else if (!(v instanceof Date)) {\n result = Object.entries(v).length === 0;\n }\n }\n return result;\n};\n\nconst notEmpty = function (v: any) {\n return !empty(v);\n};\n\nexport { empty, notEmpty };\n","function normalize (strArray) {\n var resultArray = [];\n if (strArray.length === 0) { return ''; }\n\n if (typeof strArray[0] !== 'string') {\n throw new TypeError('Url must be a string. Received ' + strArray[0]);\n }\n\n // If the first part is a plain protocol, we combine it with the next part.\n if (strArray[0].match(/^[^/:]+:\\/*$/) && strArray.length > 1) {\n var first = strArray.shift();\n strArray[0] = first + strArray[0];\n }\n\n // There must be two or three slashes in the file protocol, two slashes in anything else.\n if (strArray[0].match(/^file:\\/\\/\\//)) {\n strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, '$1:///');\n } else {\n strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, '$1://');\n }\n\n for (var i = 0; i < strArray.length; i++) {\n var component = strArray[i];\n\n if (typeof component !== 'string') {\n throw new TypeError('Url must be a string. Received ' + component);\n }\n\n if (component === '') { continue; }\n\n if (i > 0) {\n // Removing the starting slashes for each component but the first.\n component = component.replace(/^[\\/]+/, '');\n }\n if (i < strArray.length - 1) {\n // Removing the ending slashes for each component but the last.\n component = component.replace(/[\\/]+$/, '');\n } else {\n // For the last component we will combine multiple slashes to a single one.\n component = component.replace(/[\\/]+$/, '/');\n }\n\n resultArray.push(component);\n\n }\n\n var str = resultArray.join('/');\n // Each input component is now separated by a single slash except the possible first plain protocol part.\n\n // remove trailing slash before parameters or hash\n str = str.replace(/\\/(\\?|&|#[^!])/g, '$1');\n\n // replace ? in parameters with &\n var parts = str.split('?');\n str = parts.shift() + (parts.length > 0 ? '?': '') + parts.join('&');\n\n return str;\n}\n\nexport default function urlJoin() {\n var input;\n\n if (typeof arguments[0] === 'object') {\n input = arguments[0];\n } else {\n input = [].slice.call(arguments);\n }\n\n return normalize(input);\n}\n","import urlJoin from 'url-join';\n\nexport function joinUrl(...paths: string[]): string {\n let url = urlJoin(...paths);\n while (url.indexOf('//') > -1) {\n url = url.replace(/\\/\\//g, '/');\n }\n return url;\n}\n","import axios, { AxiosResponse, InternalAxiosRequestConfig, Method } from 'axios';\nimport { ApiError, ApiRequestData, ApiOption, ApiRequestOption, ApiRequestConfig } from './Api.types';\nimport { notEmpty, joinUrl } from '../@util';\n\nclass Api<T = any> {\n option: ApiOption;\n\n // constructor -------------------------------------------------------------------------------------------------------\n\n constructor(option: ApiOption<T>) {\n this.option = option;\n }\n\n get(path: string, data?: ApiRequestData, option?: ApiRequestOption): Promise<T> {\n return this.run('get', path, data, option);\n }\n\n post(path: string, data?: ApiRequestData, option?: ApiRequestOption): Promise<T> {\n return this.run('post', path, data, option);\n }\n\n patch(path: string, data?: ApiRequestData, option?: ApiRequestOption): Promise<T> {\n return this.run('patch', path, data, option);\n }\n\n delete(path: string, data?: ApiRequestData, option?: ApiRequestOption): Promise<T> {\n return this.run('delete', path, data, option);\n }\n\n // Run ---------------------------------------------------------------------------------------------------------------\n\n run = (method: Method, path: string, data?: ApiRequestData, option?: ApiRequestOption): Promise<T> => {\n return new Promise<T>((resolve, reject) => {\n const headers: ApiRequestConfig['headers'] = { ...this.option.headers };\n\n if (typeof window !== 'undefined') {\n if (window?.location?.href) {\n headers['X-Referer'] = window.location.href;\n }\n }\n\n const requestConfig: ApiRequestConfig = {\n method,\n withCredentials: this.option.withCredentials,\n headers,\n silent: !!option?.silent,\n };\n if (option?.raw) {\n requestConfig.responseType = option?.rawResponseType || 'arraybuffer';\n }\n\n requestConfig.url = joinUrl(this.option.baseUrl, path.replace(/\\./g, '/'));\n\n if (data) {\n if (method === 'get') {\n if (notEmpty(data)) {\n const finalData: ApiRequestData = {};\n for (const key in data) {\n if (data[key] != null) {\n finalData[key] = data[key];\n }\n }\n requestConfig.url += `?${new URLSearchParams(finalData).toString()}`;\n }\n } else {\n requestConfig.data = data;\n }\n }\n\n const setErrorInfo = (err: ApiError, status?: number, response?: AxiosResponse) => {\n err.config = requestConfig;\n err.baseUrl = this.option.baseUrl;\n err.path = path;\n err.requestData = data;\n err.requestOption = option;\n err.response = response;\n err.status = status;\n };\n\n const fireError = (err: any): void => {\n const apiError: ApiError = new ApiError();\n\n if (typeof err === 'object') {\n apiError.message = err.message;\n apiError.code = err.code;\n setErrorInfo(apiError, err.status, err.response);\n } else if (typeof err === 'string') {\n apiError.message = err;\n } else if (err) {\n apiError.message = err.toString();\n }\n\n if (this.option.onError) this.option.onError(apiError);\n\n reject(apiError);\n };\n\n const instance = axios.create();\n let requestInterceptor: number;\n if (this.option.onRequest) {\n requestInterceptor = instance.interceptors.request.use(async (config: InternalAxiosRequestConfig) => {\n if (this.option.onRequest) {\n return this.option.onRequest(config, this.option.baseUrl, path, data, option);\n } else {\n return config;\n }\n });\n }\n\n instance\n .request<T>(requestConfig)\n .then((res) => {\n const { data: resData } = res;\n if (this.option.onResponse) {\n this.option\n .onResponse(res, requestConfig, this.option.baseUrl, path, data, option)\n .then((finalResData) => {\n resolve(finalResData);\n })\n .catch((err: ApiError) => {\n setErrorInfo(err, res.status, res);\n fireError(err);\n });\n } else {\n resolve(resData);\n }\n })\n .catch(fireError)\n .finally(() => {\n if (requestInterceptor) {\n instance.interceptors.request.eject(requestInterceptor);\n }\n });\n });\n };\n}\n\nexport default Api;\n"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -38,7 +38,45 @@ var __assign = function() {
|
|
|
38
38
|
return t;
|
|
39
39
|
};
|
|
40
40
|
return __assign.apply(this, arguments);
|
|
41
|
-
}
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
function __awaiter(thisArg, _arguments, P, generator) {
|
|
44
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
45
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
46
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
47
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
48
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
49
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function __generator(thisArg, body) {
|
|
54
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
55
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
56
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
57
|
+
function step(op) {
|
|
58
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
59
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
60
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
61
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
62
|
+
switch (op[0]) {
|
|
63
|
+
case 0: case 1: t = op; break;
|
|
64
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
65
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
66
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
67
|
+
default:
|
|
68
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
69
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
70
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
71
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
72
|
+
if (t[2]) _.ops.pop();
|
|
73
|
+
_.trys.pop(); continue;
|
|
74
|
+
}
|
|
75
|
+
op = body.call(thisArg, _);
|
|
76
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
77
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
78
|
+
}
|
|
79
|
+
}//--------------------------------------------------------------------------------------------------------------------
|
|
42
80
|
var ApiError = /** @class */ (function (_super) {
|
|
43
81
|
__extends(ApiError, _super);
|
|
44
82
|
function ApiError(message, code) {
|
|
@@ -213,7 +251,22 @@ function urlJoin() {
|
|
|
213
251
|
_this.option.onError(apiError);
|
|
214
252
|
reject(apiError);
|
|
215
253
|
};
|
|
216
|
-
axios__default["default"](
|
|
254
|
+
var instance = axios__default["default"].create();
|
|
255
|
+
var requestInterceptor;
|
|
256
|
+
if (_this.option.onRequest) {
|
|
257
|
+
requestInterceptor = instance.interceptors.request.use(function (config) { return __awaiter(_this, void 0, void 0, function () {
|
|
258
|
+
return __generator(this, function (_a) {
|
|
259
|
+
if (this.option.onRequest) {
|
|
260
|
+
return [2 /*return*/, this.option.onRequest(config, this.option.baseUrl, path, data, option)];
|
|
261
|
+
}
|
|
262
|
+
else {
|
|
263
|
+
return [2 /*return*/, config];
|
|
264
|
+
}
|
|
265
|
+
});
|
|
266
|
+
}); });
|
|
267
|
+
}
|
|
268
|
+
instance
|
|
269
|
+
.request(requestConfig)
|
|
217
270
|
.then(function (res) {
|
|
218
271
|
var resData = res.data;
|
|
219
272
|
if (_this.option.onResponse) {
|
|
@@ -231,7 +284,12 @@ function urlJoin() {
|
|
|
231
284
|
resolve(resData);
|
|
232
285
|
}
|
|
233
286
|
})
|
|
234
|
-
.catch(fireError)
|
|
287
|
+
.catch(fireError)
|
|
288
|
+
.finally(function () {
|
|
289
|
+
if (requestInterceptor) {
|
|
290
|
+
instance.interceptors.request.eject(requestInterceptor);
|
|
291
|
+
}
|
|
292
|
+
});
|
|
235
293
|
});
|
|
236
294
|
};
|
|
237
295
|
this.option = option;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/Api/Api.types.ts","../src/@util/compare.ts","../node_modules/url-join/lib/url-join.js","../src/@util/url.ts","../src/Api/Api.ts"],"sourcesContent":["import { AxiosRequestConfig, AxiosResponse, ResponseType } from 'axios';\n\nexport interface ApiRequestData {\n [key: string]: any;\n}\n\nexport interface ApiRequestOption {\n raw?: boolean;\n rawResponseType?: ResponseType;\n silent?: boolean;\n}\n\nexport interface ApiRequestConfig extends AxiosRequestConfig {\n silent?: boolean;\n}\n\n//--------------------------------------------------------------------------------------------------------------------\n\nexport class ApiError<T = any> extends Error {\n code?: string;\n config?: ApiRequestConfig;\n baseUrl?: string;\n path?: string;\n requestData?: ApiRequestData;\n requestOption?: ApiRequestOption;\n response?: AxiosResponse<T>;\n status?: number;\n isAxiosError = false;\n\n constructor(message?: string, code?: string) {\n super(message);\n\n this.code = code;\n }\n}\n\n//--------------------------------------------------------------------------------------------------------------------\n\nexport interface ApiOption<T = any> {\n baseUrl: string;\n withCredentials?: boolean;\n headers?: AxiosRequestConfig['headers'];\n onResponse?(\n response: AxiosResponse<T>,\n config: AxiosRequestConfig,\n baseUrl: string,\n path: string,\n requestData?: ApiRequestData,\n requestOption?: ApiRequestOption\n ): Promise<T>;\n onError?(err: ApiError): void;\n dataKeysToLowerCase?: boolean;\n}\n","const empty = function (v: any) {\n let result = false;\n if (v == null) {\n result = true;\n } else if (typeof v === 'string') {\n result = v === '';\n } else if (typeof v === 'object') {\n if (Array.isArray(v)) {\n result = v.length === 0;\n } else if (!(v instanceof Date)) {\n result = Object.entries(v).length === 0;\n }\n }\n return result;\n};\n\nconst notEmpty = function (v: any) {\n return !empty(v);\n};\n\nexport { empty, notEmpty };\n","function normalize (strArray) {\n var resultArray = [];\n if (strArray.length === 0) { return ''; }\n\n if (typeof strArray[0] !== 'string') {\n throw new TypeError('Url must be a string. Received ' + strArray[0]);\n }\n\n // If the first part is a plain protocol, we combine it with the next part.\n if (strArray[0].match(/^[^/:]+:\\/*$/) && strArray.length > 1) {\n var first = strArray.shift();\n strArray[0] = first + strArray[0];\n }\n\n // There must be two or three slashes in the file protocol, two slashes in anything else.\n if (strArray[0].match(/^file:\\/\\/\\//)) {\n strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, '$1:///');\n } else {\n strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, '$1://');\n }\n\n for (var i = 0; i < strArray.length; i++) {\n var component = strArray[i];\n\n if (typeof component !== 'string') {\n throw new TypeError('Url must be a string. Received ' + component);\n }\n\n if (component === '') { continue; }\n\n if (i > 0) {\n // Removing the starting slashes for each component but the first.\n component = component.replace(/^[\\/]+/, '');\n }\n if (i < strArray.length - 1) {\n // Removing the ending slashes for each component but the last.\n component = component.replace(/[\\/]+$/, '');\n } else {\n // For the last component we will combine multiple slashes to a single one.\n component = component.replace(/[\\/]+$/, '/');\n }\n\n resultArray.push(component);\n\n }\n\n var str = resultArray.join('/');\n // Each input component is now separated by a single slash except the possible first plain protocol part.\n\n // remove trailing slash before parameters or hash\n str = str.replace(/\\/(\\?|&|#[^!])/g, '$1');\n\n // replace ? in parameters with &\n var parts = str.split('?');\n str = parts.shift() + (parts.length > 0 ? '?': '') + parts.join('&');\n\n return str;\n}\n\nexport default function urlJoin() {\n var input;\n\n if (typeof arguments[0] === 'object') {\n input = arguments[0];\n } else {\n input = [].slice.call(arguments);\n }\n\n return normalize(input);\n}\n","import urlJoin from 'url-join';\n\nexport function joinUrl(...paths: string[]): string {\n let url = urlJoin(...paths);\n while (url.indexOf('//') > -1) {\n url = url.replace(/\\/\\//g, '/');\n }\n return url;\n}\n","import axios, { AxiosResponse, Method } from 'axios';\nimport { ApiError, ApiRequestData, ApiOption, ApiRequestOption, ApiRequestConfig } from './Api.types';\nimport { notEmpty, joinUrl } from '../@util';\n\nclass Api<T = any> {\n option: ApiOption;\n\n // constructor -------------------------------------------------------------------------------------------------------\n\n constructor(option: ApiOption<T>) {\n this.option = option;\n }\n\n get(path: string, data?: ApiRequestData, option?: ApiRequestOption): Promise<T> {\n return this.run('get', path, data, option);\n }\n\n post(path: string, data?: ApiRequestData, option?: ApiRequestOption): Promise<T> {\n return this.run('post', path, data, option);\n }\n\n patch(path: string, data?: ApiRequestData, option?: ApiRequestOption): Promise<T> {\n return this.run('patch', path, data, option);\n }\n\n delete(path: string, data?: ApiRequestData, option?: ApiRequestOption): Promise<T> {\n return this.run('delete', path, data, option);\n }\n\n // Run ---------------------------------------------------------------------------------------------------------------\n\n run = (method: Method, path: string, data?: ApiRequestData, option?: ApiRequestOption): Promise<T> => {\n return new Promise<T>((resolve, reject) => {\n const headers: ApiRequestConfig['headers'] = { ...this.option.headers };\n\n if (typeof window !== 'undefined') {\n if (window?.location?.href) {\n headers['X-Referer'] = window.location.href;\n }\n }\n\n const requestConfig: ApiRequestConfig = {\n method,\n withCredentials: this.option.withCredentials,\n headers,\n silent: !!option?.silent,\n };\n if (option?.raw) {\n requestConfig.responseType = option?.rawResponseType || 'arraybuffer';\n }\n\n requestConfig.url = joinUrl(this.option.baseUrl, path.replace(/\\./g, '/'));\n\n if (data) {\n if (method === 'get') {\n if (notEmpty(data)) {\n const finalData: ApiRequestData = {};\n for (const key in data) {\n if (data[key] != null) {\n finalData[key] = data[key];\n }\n }\n requestConfig.url += `?${new URLSearchParams(finalData).toString()}`;\n }\n } else {\n requestConfig.data = data;\n }\n }\n\n const setErrorInfo = (err: ApiError, status?: number, response?: AxiosResponse) => {\n err.config = requestConfig;\n err.baseUrl = this.option.baseUrl;\n err.path = path;\n err.requestData = data;\n err.requestOption = option;\n err.response = response;\n err.status = status;\n };\n\n const fireError = (err: any): void => {\n const apiError: ApiError = new ApiError();\n\n if (typeof err === 'object') {\n apiError.message = err.message;\n apiError.code = err.code;\n setErrorInfo(apiError, err.status, err.response);\n } else if (typeof err === 'string') {\n apiError.message = err;\n } else if (err) {\n apiError.message = err.toString();\n }\n\n if (this.option.onError) this.option.onError(apiError);\n\n reject(apiError);\n };\n\n axios<T>(requestConfig)\n .then((res) => {\n const { data: resData } = res;\n if (this.option.onResponse) {\n this.option\n .onResponse(res, requestConfig, this.option.baseUrl, path, data, option)\n .then((finalResData) => {\n resolve(finalResData);\n })\n .catch((err: ApiError) => {\n setErrorInfo(err, res.status, res);\n fireError(err);\n });\n } else {\n resolve(resData);\n }\n })\n .catch(fireError);\n });\n };\n}\n\nexport default Api;\n"],"names":["axios"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/Api/Api.types.ts","../src/@util/compare.ts","../node_modules/url-join/lib/url-join.js","../src/@util/url.ts","../src/Api/Api.ts"],"sourcesContent":["import { AxiosRequestConfig, AxiosResponse, InternalAxiosRequestConfig, ResponseType } from 'axios';\n\nexport interface ApiRequestData {\n [key: string]: any;\n}\n\nexport interface ApiRequestOption {\n raw?: boolean;\n rawResponseType?: ResponseType;\n silent?: boolean;\n}\n\nexport interface ApiRequestConfig extends AxiosRequestConfig {\n silent?: boolean;\n}\n\n//--------------------------------------------------------------------------------------------------------------------\n\nexport class ApiError<T = any> extends Error {\n code?: string;\n config?: ApiRequestConfig;\n baseUrl?: string;\n path?: string;\n requestData?: ApiRequestData;\n requestOption?: ApiRequestOption;\n response?: AxiosResponse<T>;\n status?: number;\n isAxiosError = false;\n\n constructor(message?: string, code?: string) {\n super(message);\n\n this.code = code;\n }\n}\n\n//--------------------------------------------------------------------------------------------------------------------\n\nexport interface ApiOption<T = any> {\n baseUrl: string;\n withCredentials?: boolean;\n headers?: AxiosRequestConfig['headers'];\n onRequest?(\n config: InternalAxiosRequestConfig,\n baseUrl: string,\n path: string,\n requestData?: ApiRequestData,\n requestOption?: ApiRequestOption\n ): Promise<InternalAxiosRequestConfig>;\n onResponse?(\n response: AxiosResponse<T>,\n config: AxiosRequestConfig,\n baseUrl: string,\n path: string,\n requestData?: ApiRequestData,\n requestOption?: ApiRequestOption\n ): Promise<T>;\n onError?(err: ApiError): void;\n dataKeysToLowerCase?: boolean;\n}\n","const empty = function (v: any) {\n let result = false;\n if (v == null) {\n result = true;\n } else if (typeof v === 'string') {\n result = v === '';\n } else if (typeof v === 'object') {\n if (Array.isArray(v)) {\n result = v.length === 0;\n } else if (!(v instanceof Date)) {\n result = Object.entries(v).length === 0;\n }\n }\n return result;\n};\n\nconst notEmpty = function (v: any) {\n return !empty(v);\n};\n\nexport { empty, notEmpty };\n","function normalize (strArray) {\n var resultArray = [];\n if (strArray.length === 0) { return ''; }\n\n if (typeof strArray[0] !== 'string') {\n throw new TypeError('Url must be a string. Received ' + strArray[0]);\n }\n\n // If the first part is a plain protocol, we combine it with the next part.\n if (strArray[0].match(/^[^/:]+:\\/*$/) && strArray.length > 1) {\n var first = strArray.shift();\n strArray[0] = first + strArray[0];\n }\n\n // There must be two or three slashes in the file protocol, two slashes in anything else.\n if (strArray[0].match(/^file:\\/\\/\\//)) {\n strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, '$1:///');\n } else {\n strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, '$1://');\n }\n\n for (var i = 0; i < strArray.length; i++) {\n var component = strArray[i];\n\n if (typeof component !== 'string') {\n throw new TypeError('Url must be a string. Received ' + component);\n }\n\n if (component === '') { continue; }\n\n if (i > 0) {\n // Removing the starting slashes for each component but the first.\n component = component.replace(/^[\\/]+/, '');\n }\n if (i < strArray.length - 1) {\n // Removing the ending slashes for each component but the last.\n component = component.replace(/[\\/]+$/, '');\n } else {\n // For the last component we will combine multiple slashes to a single one.\n component = component.replace(/[\\/]+$/, '/');\n }\n\n resultArray.push(component);\n\n }\n\n var str = resultArray.join('/');\n // Each input component is now separated by a single slash except the possible first plain protocol part.\n\n // remove trailing slash before parameters or hash\n str = str.replace(/\\/(\\?|&|#[^!])/g, '$1');\n\n // replace ? in parameters with &\n var parts = str.split('?');\n str = parts.shift() + (parts.length > 0 ? '?': '') + parts.join('&');\n\n return str;\n}\n\nexport default function urlJoin() {\n var input;\n\n if (typeof arguments[0] === 'object') {\n input = arguments[0];\n } else {\n input = [].slice.call(arguments);\n }\n\n return normalize(input);\n}\n","import urlJoin from 'url-join';\n\nexport function joinUrl(...paths: string[]): string {\n let url = urlJoin(...paths);\n while (url.indexOf('//') > -1) {\n url = url.replace(/\\/\\//g, '/');\n }\n return url;\n}\n","import axios, { AxiosResponse, InternalAxiosRequestConfig, Method } from 'axios';\nimport { ApiError, ApiRequestData, ApiOption, ApiRequestOption, ApiRequestConfig } from './Api.types';\nimport { notEmpty, joinUrl } from '../@util';\n\nclass Api<T = any> {\n option: ApiOption;\n\n // constructor -------------------------------------------------------------------------------------------------------\n\n constructor(option: ApiOption<T>) {\n this.option = option;\n }\n\n get(path: string, data?: ApiRequestData, option?: ApiRequestOption): Promise<T> {\n return this.run('get', path, data, option);\n }\n\n post(path: string, data?: ApiRequestData, option?: ApiRequestOption): Promise<T> {\n return this.run('post', path, data, option);\n }\n\n patch(path: string, data?: ApiRequestData, option?: ApiRequestOption): Promise<T> {\n return this.run('patch', path, data, option);\n }\n\n delete(path: string, data?: ApiRequestData, option?: ApiRequestOption): Promise<T> {\n return this.run('delete', path, data, option);\n }\n\n // Run ---------------------------------------------------------------------------------------------------------------\n\n run = (method: Method, path: string, data?: ApiRequestData, option?: ApiRequestOption): Promise<T> => {\n return new Promise<T>((resolve, reject) => {\n const headers: ApiRequestConfig['headers'] = { ...this.option.headers };\n\n if (typeof window !== 'undefined') {\n if (window?.location?.href) {\n headers['X-Referer'] = window.location.href;\n }\n }\n\n const requestConfig: ApiRequestConfig = {\n method,\n withCredentials: this.option.withCredentials,\n headers,\n silent: !!option?.silent,\n };\n if (option?.raw) {\n requestConfig.responseType = option?.rawResponseType || 'arraybuffer';\n }\n\n requestConfig.url = joinUrl(this.option.baseUrl, path.replace(/\\./g, '/'));\n\n if (data) {\n if (method === 'get') {\n if (notEmpty(data)) {\n const finalData: ApiRequestData = {};\n for (const key in data) {\n if (data[key] != null) {\n finalData[key] = data[key];\n }\n }\n requestConfig.url += `?${new URLSearchParams(finalData).toString()}`;\n }\n } else {\n requestConfig.data = data;\n }\n }\n\n const setErrorInfo = (err: ApiError, status?: number, response?: AxiosResponse) => {\n err.config = requestConfig;\n err.baseUrl = this.option.baseUrl;\n err.path = path;\n err.requestData = data;\n err.requestOption = option;\n err.response = response;\n err.status = status;\n };\n\n const fireError = (err: any): void => {\n const apiError: ApiError = new ApiError();\n\n if (typeof err === 'object') {\n apiError.message = err.message;\n apiError.code = err.code;\n setErrorInfo(apiError, err.status, err.response);\n } else if (typeof err === 'string') {\n apiError.message = err;\n } else if (err) {\n apiError.message = err.toString();\n }\n\n if (this.option.onError) this.option.onError(apiError);\n\n reject(apiError);\n };\n\n const instance = axios.create();\n let requestInterceptor: number;\n if (this.option.onRequest) {\n requestInterceptor = instance.interceptors.request.use(async (config: InternalAxiosRequestConfig) => {\n if (this.option.onRequest) {\n return this.option.onRequest(config, this.option.baseUrl, path, data, option);\n } else {\n return config;\n }\n });\n }\n\n instance\n .request<T>(requestConfig)\n .then((res) => {\n const { data: resData } = res;\n if (this.option.onResponse) {\n this.option\n .onResponse(res, requestConfig, this.option.baseUrl, path, data, option)\n .then((finalResData) => {\n resolve(finalResData);\n })\n .catch((err: ApiError) => {\n setErrorInfo(err, res.status, res);\n fireError(err);\n });\n } else {\n resolve(resData);\n }\n })\n .catch(fireError)\n .finally(() => {\n if (requestInterceptor) {\n instance.interceptors.request.eject(requestInterceptor);\n }\n });\n });\n };\n}\n\nexport default Api;\n"],"names":["axios"],"mappings":"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"}
|