@iamnnort/request 1.8.5 → 1.8.7
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.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +3 -0
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -324,6 +324,9 @@ var RequestDataSource = class {
|
|
|
324
324
|
requestConfig
|
|
325
325
|
});
|
|
326
326
|
const request = requestBuilder.makeContentType().makeAuth().makeUrl().makeMethod().makeParams().makeData().makeSerializer().build();
|
|
327
|
+
if (this.baseConfig.logger) {
|
|
328
|
+
loggerHelper.logRequest(request);
|
|
329
|
+
}
|
|
327
330
|
return import_axios.default.request(request).then((response) => {
|
|
328
331
|
if (this.baseConfig.logger) {
|
|
329
332
|
loggerHelper.logResponse(response);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/builder.ts","../src/types.ts","../src/data-source.ts","../src/logger/logger.ts","../src/helper.ts"],"sourcesContent":["export * from './builder';\nexport * from './data-source';\nexport * from './helper';\nexport * from './types';\n","import { AxiosRequestConfig } from 'axios';\nimport { stringify } from 'qs';\n\nimport { BaseRequestConfig, HttpMethods, RequestConfig } from './types';\n\nexport class RequestBuilder {\n baseConfig: BaseRequestConfig;\n requestConfig: RequestConfig;\n config: AxiosRequestConfig;\n\n constructor(params: {\n baseConfig: BaseRequestConfig;\n requestConfig: RequestConfig;\n }) {\n this.baseConfig = params.baseConfig;\n this.requestConfig = params.requestConfig;\n this.config = {\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n ...params.baseConfig.headers,\n ...params.requestConfig.headers,\n },\n };\n }\n\n makeContentType() {\n if (this.requestConfig.multipart) {\n this.config = {\n ...this.config,\n headers: {\n ...this.config.headers,\n 'Content-Type': 'multipart/form-data',\n },\n };\n\n return this;\n }\n\n if (this.requestConfig.urlencoded) {\n this.config = {\n ...this.config,\n headers: {\n ...this.config.headers,\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n };\n\n return this;\n }\n\n if (this.requestConfig.xml) {\n this.config = {\n ...this.config,\n headers: {\n ...this.config.headers,\n 'Content-Type': 'text/xml',\n },\n };\n\n return this;\n }\n\n return this;\n }\n\n makeAuth() {\n const auth = this.requestConfig.auth || this.baseConfig.auth;\n\n if (auth) {\n this.config = {\n ...this.config,\n auth,\n };\n\n return this;\n }\n\n const bearerToken =\n this.requestConfig.bearerToken || this.baseConfig.bearerToken;\n\n if (bearerToken) {\n this.config = {\n ...this.config,\n headers: {\n ...this.config.headers,\n Authorization: `Bearer ${bearerToken}`,\n },\n };\n\n return this;\n }\n\n return this;\n }\n\n makeUrl() {\n const baseUrlMap =\n this.requestConfig.baseUrlMap || this.baseConfig.baseUrlMap;\n const baseUrlName =\n this.requestConfig.baseUrlName || this.baseConfig.baseUrlName;\n\n const urlParts = [\n baseUrlMap && baseUrlName\n ? baseUrlMap[baseUrlName]\n : this.baseConfig.baseUrl,\n this.baseConfig.url,\n ...(this.baseConfig.urlParts || []),\n this.requestConfig.baseUrl,\n this.requestConfig.url,\n ...(this.requestConfig.urlParts || []),\n ].map((urlPart) => urlPart?.toString());\n\n const isSecureProtocol = urlParts.some(\n (urlPart) => urlPart?.includes('https'),\n );\n const protocol = isSecureProtocol ? 'https' : 'http';\n\n const actualUrlParts = urlParts\n .filter((urlPart) => urlPart)\n .map((urlPart) => {\n return urlPart?.replace(/^(https?:\\/\\/|\\/)?(.*?)(\\/?)$/, '$2');\n });\n\n const url = `${protocol}://${actualUrlParts.join('/')}`;\n\n this.config = {\n ...this.config,\n url,\n };\n\n return this;\n }\n\n makeMethod() {\n this.config = {\n ...this.config,\n method: this.requestConfig.method,\n };\n\n return this;\n }\n\n makeData() {\n if (this.requestConfig.method === HttpMethods.GET) {\n return this;\n }\n\n if (this.requestConfig.urlencoded) {\n this.config = {\n ...this.config,\n data: stringify(this.requestConfig.data),\n };\n\n return this;\n }\n\n this.config = {\n ...this.config,\n data: this.requestConfig.data,\n };\n\n return this;\n }\n\n makeParams() {\n this.config = {\n ...this.config,\n params: this.requestConfig.params,\n };\n\n return this;\n }\n\n makeSerializer() {\n this.config = {\n ...this.config,\n paramsSerializer: (params: any) => {\n return stringify(params, {\n arrayFormat: this.baseConfig.serializer?.array,\n });\n },\n };\n\n return this;\n }\n\n build() {\n return this.config;\n }\n}\n","import { AxiosRequestConfig } from 'axios';\n\nexport type RequestParams = Pick<AxiosRequestConfig, 'params' | 'data'>;\n\nexport type RequestConfigParams = Pick<AxiosRequestConfig, 'params' | 'data'>;\n\nexport type RequestConfig = Omit<AxiosRequestConfig, 'baseURL' | 'url'> & {\n baseUrl?: string;\n baseUrlName?: string;\n baseUrlMap?: Record<string, string>;\n url?: number | string;\n urlParts?: (number | string)[];\n bearerToken?: string;\n urlencoded?: boolean;\n multipart?: boolean;\n xml?: boolean;\n};\n\nexport type BaseRequestConfig = Pick<AxiosRequestConfig, 'auth' | 'headers'> & {\n name?: string;\n baseUrl?: string;\n baseUrlName?: string;\n baseUrlMap?: Record<string, string>;\n url?: number | string;\n urlParts?: (number | string)[];\n bearerToken?: string;\n debug?: boolean;\n logger?: boolean;\n serializer?: {\n array?: 'indices' | 'brackets' | 'repeat' | 'comma';\n };\n};\n\nexport enum HttpMethods {\n GET = 'get',\n POST = 'post',\n PUT = 'put',\n DELETE = 'delete',\n}\n\nexport enum HttpStatuses {\n OK = 200,\n CREATED = 201,\n ACCEPTED = 202,\n NO_CONTENT = 204,\n BAD_REQUEST = 400,\n UNAUTHORIZED = 401,\n FORBIDDEN = 403,\n NOT_FOUND = 404,\n CONFLICT = 409,\n INTERNAL_SERVER_ERROR = 500,\n}\n","import axios, { AxiosError, AxiosResponse } from 'axios';\nimport { RequestBuilder } from './builder';\nimport {\n BaseRequestConfig,\n HttpMethods,\n RequestConfig,\n RequestConfigParams,\n} from './types';\nimport { loggerHelper } from './logger/logger';\n\nexport class RequestDataSource<\n Entity extends Record<string, any> = any,\n SearchParams extends RequestConfigParams = any,\n SearchResponse extends Record<string, any> = any,\n CreateParams extends RequestConfigParams = any,\n UpdateParams extends RequestConfigParams = any,\n> {\n baseConfig: BaseRequestConfig;\n\n constructor(baseConfig: BaseRequestConfig) {\n this.baseConfig = baseConfig;\n }\n\n common<T>(requestConfig: RequestConfig) {\n const requestBuilder = new RequestBuilder({\n baseConfig: this.baseConfig,\n requestConfig,\n });\n\n const request = requestBuilder\n .makeContentType()\n .makeAuth()\n .makeUrl()\n .makeMethod()\n .makeParams()\n .makeData()\n .makeSerializer()\n .build();\n\n return axios\n .request(request)\n .then((response: AxiosResponse<T>) => {\n if (this.baseConfig.logger) {\n loggerHelper.logResponse(response as any);\n }\n\n return response.data;\n })\n .catch((error: AxiosError) => {\n if (this.baseConfig.debug) {\n console.log('Error:', error);\n }\n\n if (this.baseConfig.logger) {\n loggerHelper.logRequestError(error as any);\n }\n\n throw (\n error.response?.data || error.response || new Error(error.message)\n );\n });\n }\n\n search(config: SearchParams = {} as SearchParams) {\n return this.common<SearchResponse>({\n ...config,\n method: HttpMethods.GET,\n });\n }\n\n get(id: number | string, config: SearchParams = {} as SearchParams) {\n return this.common<Entity>({\n ...config,\n method: HttpMethods.GET,\n url: id,\n });\n }\n\n create(config: CreateParams) {\n return this.common<Entity>({\n ...config,\n method: HttpMethods.POST,\n });\n }\n\n bulkCreate(config: CreateParams) {\n return this.common<Entity[]>({\n ...config,\n method: HttpMethods.POST,\n url: '/bulk',\n data: {\n bulk: config.data,\n },\n });\n }\n\n update(id: number | string, config: UpdateParams) {\n return this.common<Entity>({\n ...config,\n method: HttpMethods.PUT,\n url: id,\n });\n }\n\n bulkUpdate(config: UpdateParams) {\n return this.common<Entity[]>({\n ...config,\n method: HttpMethods.PUT,\n url: '/bulk',\n data: {\n bulk: config.data,\n },\n });\n }\n\n remove(id: number | string, config: SearchParams = {} as SearchParams) {\n return this.common<void>({\n ...config,\n method: HttpMethods.DELETE,\n url: id,\n });\n }\n}\n","import { AxiosError, AxiosResponse, InternalAxiosRequestConfig } from 'axios';\nimport { stringify } from 'qs';\n\ntype LoggerDto = {\n request?: InternalAxiosRequestConfig & Request;\n response?: AxiosResponse & Response;\n error?: AxiosError;\n};\n\nconst makeType = (type: string) => {\n return `[${type}]`;\n};\n\nconst makeUrl = (dto: LoggerDto = {}) => {\n const url =\n dto.request?.url ||\n dto.response?.config?.url ||\n dto.error?.response?.config.url;\n\n const params =\n dto.request?.params ||\n dto.response?.config?.params ||\n dto.error?.response?.config.params;\n\n if (!url) {\n return '';\n }\n\n if (params) {\n delete params['0'];\n return [url, stringify(params)].filter((_) => _).join('?');\n } else {\n return url;\n }\n};\n\nconst makeMethod = (dto: LoggerDto = {}) => {\n const method =\n dto.request?.method ||\n dto.response?.config?.method ||\n dto.error?.response?.config.method;\n\n if (!method) {\n return '';\n }\n\n return method.toUpperCase();\n};\n\nconst makeRequestData = (dto: LoggerDto = {}) => {\n const data =\n dto.request?.body ||\n dto.request?.data ||\n dto.response?.config?.data ||\n dto.error?.response?.config.data;\n\n if (!data) {\n return '';\n }\n\n if (typeof data === 'string') {\n return data;\n }\n\n return JSON.stringify(data);\n};\n\nconst makeResponseData = (dto: LoggerDto = {}) => {\n const data = dto.response?.data || dto.error?.response?.data;\n\n if (!data) {\n return '';\n }\n\n if (typeof data === 'string') {\n return data;\n }\n\n return JSON.stringify(data);\n};\n\nconst makeStatus = (dto: LoggerDto = {}) => {\n const status = dto.response?.status || dto.error?.response?.status;\n\n if (!status) {\n return '';\n }\n\n const statusText =\n dto.response?.statusText || dto.error?.response?.statusText;\n\n if (statusText) {\n return `${status} ${statusText}`;\n }\n\n return `${status}`;\n};\n\nconst logRequest = (request: InternalAxiosRequestConfig & Request) => {\n log([\n makeType('Request'),\n makeMethod({ request }),\n makeUrl({ request }),\n makeRequestData({ request }),\n ]);\n};\n\nconst logResponse = (response: AxiosResponse & Response) => {\n log([\n makeType('Response'),\n makeMethod({ response }),\n makeUrl({ response }),\n makeRequestData({ response }),\n makeStatus({ response }),\n makeResponseData({ response }),\n ]);\n};\n\nconst logRequestError = (error: AxiosError) => {\n log([\n makeType('Error'),\n makeMethod({ error }),\n makeUrl({ error }),\n makeRequestData({ error }),\n makeStatus({ error }),\n makeResponseData({ error }),\n ]);\n};\n\nconst log = (messageParts: string[]) => {\n const message = messageParts.filter((_) => _).join(' ');\n\n console.log(message);\n};\n\nexport const loggerHelper = {\n makeType,\n makeUrl,\n makeMethod,\n makeRequestData,\n makeResponseData,\n makeStatus,\n logRequest,\n logResponse,\n logRequestError,\n};\n","export class RequestHelper {\n sleep(seconds: number) {\n return new Promise((resolve) => {\n setTimeout(resolve, seconds * 1000);\n });\n }\n}\n"],"mappings":"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","names":["HttpMethods","HttpStatuses","import_qs","axios"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/builder.ts","../src/types.ts","../src/data-source.ts","../src/logger/logger.ts","../src/helper.ts"],"sourcesContent":["export * from './builder';\nexport * from './data-source';\nexport * from './helper';\nexport * from './types';\n","import { AxiosRequestConfig } from 'axios';\nimport { stringify } from 'qs';\n\nimport { BaseRequestConfig, HttpMethods, RequestConfig } from './types';\n\nexport class RequestBuilder {\n baseConfig: BaseRequestConfig;\n requestConfig: RequestConfig;\n config: AxiosRequestConfig;\n\n constructor(params: {\n baseConfig: BaseRequestConfig;\n requestConfig: RequestConfig;\n }) {\n this.baseConfig = params.baseConfig;\n this.requestConfig = params.requestConfig;\n this.config = {\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n ...params.baseConfig.headers,\n ...params.requestConfig.headers,\n },\n };\n }\n\n makeContentType() {\n if (this.requestConfig.multipart) {\n this.config = {\n ...this.config,\n headers: {\n ...this.config.headers,\n 'Content-Type': 'multipart/form-data',\n },\n };\n\n return this;\n }\n\n if (this.requestConfig.urlencoded) {\n this.config = {\n ...this.config,\n headers: {\n ...this.config.headers,\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n };\n\n return this;\n }\n\n if (this.requestConfig.xml) {\n this.config = {\n ...this.config,\n headers: {\n ...this.config.headers,\n 'Content-Type': 'text/xml',\n },\n };\n\n return this;\n }\n\n return this;\n }\n\n makeAuth() {\n const auth = this.requestConfig.auth || this.baseConfig.auth;\n\n if (auth) {\n this.config = {\n ...this.config,\n auth,\n };\n\n return this;\n }\n\n const bearerToken =\n this.requestConfig.bearerToken || this.baseConfig.bearerToken;\n\n if (bearerToken) {\n this.config = {\n ...this.config,\n headers: {\n ...this.config.headers,\n Authorization: `Bearer ${bearerToken}`,\n },\n };\n\n return this;\n }\n\n return this;\n }\n\n makeUrl() {\n const baseUrlMap =\n this.requestConfig.baseUrlMap || this.baseConfig.baseUrlMap;\n const baseUrlName =\n this.requestConfig.baseUrlName || this.baseConfig.baseUrlName;\n\n const urlParts = [\n baseUrlMap && baseUrlName\n ? baseUrlMap[baseUrlName]\n : this.baseConfig.baseUrl,\n this.baseConfig.url,\n ...(this.baseConfig.urlParts || []),\n this.requestConfig.baseUrl,\n this.requestConfig.url,\n ...(this.requestConfig.urlParts || []),\n ].map((urlPart) => urlPart?.toString());\n\n const isSecureProtocol = urlParts.some(\n (urlPart) => urlPart?.includes('https'),\n );\n const protocol = isSecureProtocol ? 'https' : 'http';\n\n const actualUrlParts = urlParts\n .filter((urlPart) => urlPart)\n .map((urlPart) => {\n return urlPart?.replace(/^(https?:\\/\\/|\\/)?(.*?)(\\/?)$/, '$2');\n });\n\n const url = `${protocol}://${actualUrlParts.join('/')}`;\n\n this.config = {\n ...this.config,\n url,\n };\n\n return this;\n }\n\n makeMethod() {\n this.config = {\n ...this.config,\n method: this.requestConfig.method,\n };\n\n return this;\n }\n\n makeData() {\n if (this.requestConfig.method === HttpMethods.GET) {\n return this;\n }\n\n if (this.requestConfig.urlencoded) {\n this.config = {\n ...this.config,\n data: stringify(this.requestConfig.data),\n };\n\n return this;\n }\n\n this.config = {\n ...this.config,\n data: this.requestConfig.data,\n };\n\n return this;\n }\n\n makeParams() {\n this.config = {\n ...this.config,\n params: this.requestConfig.params,\n };\n\n return this;\n }\n\n makeSerializer() {\n this.config = {\n ...this.config,\n paramsSerializer: (params: any) => {\n return stringify(params, {\n arrayFormat: this.baseConfig.serializer?.array,\n });\n },\n };\n\n return this;\n }\n\n build() {\n return this.config;\n }\n}\n","import { AxiosRequestConfig } from 'axios';\n\nexport type RequestParams = Pick<AxiosRequestConfig, 'params' | 'data'>;\n\nexport type RequestConfigParams = Pick<AxiosRequestConfig, 'params' | 'data'>;\n\nexport type RequestConfig = Omit<AxiosRequestConfig, 'baseURL' | 'url'> & {\n baseUrl?: string;\n baseUrlName?: string;\n baseUrlMap?: Record<string, string>;\n url?: number | string;\n urlParts?: (number | string)[];\n bearerToken?: string;\n urlencoded?: boolean;\n multipart?: boolean;\n xml?: boolean;\n};\n\nexport type BaseRequestConfig = Pick<AxiosRequestConfig, 'auth' | 'headers'> & {\n name?: string;\n baseUrl?: string;\n baseUrlName?: string;\n baseUrlMap?: Record<string, string>;\n url?: number | string;\n urlParts?: (number | string)[];\n bearerToken?: string;\n debug?: boolean;\n logger?: boolean;\n serializer?: {\n array?: 'indices' | 'brackets' | 'repeat' | 'comma';\n };\n};\n\nexport enum HttpMethods {\n GET = 'get',\n POST = 'post',\n PUT = 'put',\n DELETE = 'delete',\n}\n\nexport enum HttpStatuses {\n OK = 200,\n CREATED = 201,\n ACCEPTED = 202,\n NO_CONTENT = 204,\n BAD_REQUEST = 400,\n UNAUTHORIZED = 401,\n FORBIDDEN = 403,\n NOT_FOUND = 404,\n CONFLICT = 409,\n INTERNAL_SERVER_ERROR = 500,\n}\n","import axios, { AxiosError, AxiosResponse } from 'axios';\nimport { RequestBuilder } from './builder';\nimport {\n BaseRequestConfig,\n HttpMethods,\n RequestConfig,\n RequestConfigParams,\n} from './types';\nimport { loggerHelper } from './logger/logger';\n\nexport class RequestDataSource<\n Entity extends Record<string, any> = any,\n SearchParams extends RequestConfigParams = any,\n SearchResponse extends Record<string, any> = any,\n CreateParams extends RequestConfigParams = any,\n UpdateParams extends RequestConfigParams = any,\n> {\n baseConfig: BaseRequestConfig;\n\n constructor(baseConfig: BaseRequestConfig) {\n this.baseConfig = baseConfig;\n }\n\n common<T>(requestConfig: RequestConfig) {\n const requestBuilder = new RequestBuilder({\n baseConfig: this.baseConfig,\n requestConfig,\n });\n\n const request = requestBuilder\n .makeContentType()\n .makeAuth()\n .makeUrl()\n .makeMethod()\n .makeParams()\n .makeData()\n .makeSerializer()\n .build();\n\n if (this.baseConfig.logger) {\n loggerHelper.logRequest(request as any);\n }\n\n return axios\n .request(request)\n .then((response: AxiosResponse<T>) => {\n if (this.baseConfig.logger) {\n loggerHelper.logResponse(response as any);\n }\n\n return response.data;\n })\n .catch((error: AxiosError) => {\n if (this.baseConfig.debug) {\n console.log('Error:', error);\n }\n\n if (this.baseConfig.logger) {\n loggerHelper.logRequestError(error as any);\n }\n\n throw (\n error.response?.data || error.response || new Error(error.message)\n );\n });\n }\n\n search(config: SearchParams = {} as SearchParams) {\n return this.common<SearchResponse>({\n ...config,\n method: HttpMethods.GET,\n });\n }\n\n get(id: number | string, config: SearchParams = {} as SearchParams) {\n return this.common<Entity>({\n ...config,\n method: HttpMethods.GET,\n url: id,\n });\n }\n\n create(config: CreateParams) {\n return this.common<Entity>({\n ...config,\n method: HttpMethods.POST,\n });\n }\n\n bulkCreate(config: CreateParams) {\n return this.common<Entity[]>({\n ...config,\n method: HttpMethods.POST,\n url: '/bulk',\n data: {\n bulk: config.data,\n },\n });\n }\n\n update(id: number | string, config: UpdateParams) {\n return this.common<Entity>({\n ...config,\n method: HttpMethods.PUT,\n url: id,\n });\n }\n\n bulkUpdate(config: UpdateParams) {\n return this.common<Entity[]>({\n ...config,\n method: HttpMethods.PUT,\n url: '/bulk',\n data: {\n bulk: config.data,\n },\n });\n }\n\n remove(id: number | string, config: SearchParams = {} as SearchParams) {\n return this.common<void>({\n ...config,\n method: HttpMethods.DELETE,\n url: id,\n });\n }\n}\n","import { AxiosError, AxiosResponse, InternalAxiosRequestConfig } from 'axios';\nimport { stringify } from 'qs';\n\ntype LoggerDto = {\n request?: InternalAxiosRequestConfig & Request;\n response?: AxiosResponse & Response;\n error?: AxiosError;\n};\n\nconst makeType = (type: string) => {\n return `[${type}]`;\n};\n\nconst makeUrl = (dto: LoggerDto = {}) => {\n const url =\n dto.request?.url ||\n dto.response?.config?.url ||\n dto.error?.response?.config.url;\n\n const params =\n dto.request?.params ||\n dto.response?.config?.params ||\n dto.error?.response?.config.params;\n\n if (!url) {\n return '';\n }\n\n if (params) {\n delete params['0'];\n return [url, stringify(params)].filter((_) => _).join('?');\n } else {\n return url;\n }\n};\n\nconst makeMethod = (dto: LoggerDto = {}) => {\n const method =\n dto.request?.method ||\n dto.response?.config?.method ||\n dto.error?.response?.config.method;\n\n if (!method) {\n return '';\n }\n\n return method.toUpperCase();\n};\n\nconst makeRequestData = (dto: LoggerDto = {}) => {\n const data =\n dto.request?.body ||\n dto.request?.data ||\n dto.response?.config?.data ||\n dto.error?.response?.config.data;\n\n if (!data) {\n return '';\n }\n\n if (typeof data === 'string') {\n return data;\n }\n\n return JSON.stringify(data);\n};\n\nconst makeResponseData = (dto: LoggerDto = {}) => {\n const data = dto.response?.data || dto.error?.response?.data;\n\n if (!data) {\n return '';\n }\n\n if (typeof data === 'string') {\n return data;\n }\n\n return JSON.stringify(data);\n};\n\nconst makeStatus = (dto: LoggerDto = {}) => {\n const status = dto.response?.status || dto.error?.response?.status;\n\n if (!status) {\n return '';\n }\n\n const statusText =\n dto.response?.statusText || dto.error?.response?.statusText;\n\n if (statusText) {\n return `${status} ${statusText}`;\n }\n\n return `${status}`;\n};\n\nconst logRequest = (request: InternalAxiosRequestConfig & Request) => {\n log([\n makeType('Request'),\n makeMethod({ request }),\n makeUrl({ request }),\n makeRequestData({ request }),\n ]);\n};\n\nconst logResponse = (response: AxiosResponse & Response) => {\n log([\n makeType('Response'),\n makeMethod({ response }),\n makeUrl({ response }),\n makeRequestData({ response }),\n makeStatus({ response }),\n makeResponseData({ response }),\n ]);\n};\n\nconst logRequestError = (error: AxiosError) => {\n log([\n makeType('Error'),\n makeMethod({ error }),\n makeUrl({ error }),\n makeRequestData({ error }),\n makeStatus({ error }),\n makeResponseData({ error }),\n ]);\n};\n\nconst log = (messageParts: string[]) => {\n const message = messageParts.filter((_) => _).join(' ');\n\n console.log(message);\n};\n\nexport const loggerHelper = {\n makeType,\n makeUrl,\n makeMethod,\n makeRequestData,\n makeResponseData,\n makeStatus,\n logRequest,\n logResponse,\n logRequestError,\n};\n","export class RequestHelper {\n sleep(seconds: number) {\n return new Promise((resolve) => {\n setTimeout(resolve, seconds * 1000);\n });\n }\n}\n"],"mappings":"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","names":["HttpMethods","HttpStatuses","import_qs","axios"]}
|
package/dist/index.mjs
CHANGED
|
@@ -287,6 +287,9 @@ var RequestDataSource = class {
|
|
|
287
287
|
requestConfig
|
|
288
288
|
});
|
|
289
289
|
const request = requestBuilder.makeContentType().makeAuth().makeUrl().makeMethod().makeParams().makeData().makeSerializer().build();
|
|
290
|
+
if (this.baseConfig.logger) {
|
|
291
|
+
loggerHelper.logRequest(request);
|
|
292
|
+
}
|
|
290
293
|
return axios.request(request).then((response) => {
|
|
291
294
|
if (this.baseConfig.logger) {
|
|
292
295
|
loggerHelper.logResponse(response);
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/builder.ts","../src/types.ts","../src/data-source.ts","../src/logger/logger.ts","../src/helper.ts"],"sourcesContent":["import { AxiosRequestConfig } from 'axios';\nimport { stringify } from 'qs';\n\nimport { BaseRequestConfig, HttpMethods, RequestConfig } from './types';\n\nexport class RequestBuilder {\n baseConfig: BaseRequestConfig;\n requestConfig: RequestConfig;\n config: AxiosRequestConfig;\n\n constructor(params: {\n baseConfig: BaseRequestConfig;\n requestConfig: RequestConfig;\n }) {\n this.baseConfig = params.baseConfig;\n this.requestConfig = params.requestConfig;\n this.config = {\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n ...params.baseConfig.headers,\n ...params.requestConfig.headers,\n },\n };\n }\n\n makeContentType() {\n if (this.requestConfig.multipart) {\n this.config = {\n ...this.config,\n headers: {\n ...this.config.headers,\n 'Content-Type': 'multipart/form-data',\n },\n };\n\n return this;\n }\n\n if (this.requestConfig.urlencoded) {\n this.config = {\n ...this.config,\n headers: {\n ...this.config.headers,\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n };\n\n return this;\n }\n\n if (this.requestConfig.xml) {\n this.config = {\n ...this.config,\n headers: {\n ...this.config.headers,\n 'Content-Type': 'text/xml',\n },\n };\n\n return this;\n }\n\n return this;\n }\n\n makeAuth() {\n const auth = this.requestConfig.auth || this.baseConfig.auth;\n\n if (auth) {\n this.config = {\n ...this.config,\n auth,\n };\n\n return this;\n }\n\n const bearerToken =\n this.requestConfig.bearerToken || this.baseConfig.bearerToken;\n\n if (bearerToken) {\n this.config = {\n ...this.config,\n headers: {\n ...this.config.headers,\n Authorization: `Bearer ${bearerToken}`,\n },\n };\n\n return this;\n }\n\n return this;\n }\n\n makeUrl() {\n const baseUrlMap =\n this.requestConfig.baseUrlMap || this.baseConfig.baseUrlMap;\n const baseUrlName =\n this.requestConfig.baseUrlName || this.baseConfig.baseUrlName;\n\n const urlParts = [\n baseUrlMap && baseUrlName\n ? baseUrlMap[baseUrlName]\n : this.baseConfig.baseUrl,\n this.baseConfig.url,\n ...(this.baseConfig.urlParts || []),\n this.requestConfig.baseUrl,\n this.requestConfig.url,\n ...(this.requestConfig.urlParts || []),\n ].map((urlPart) => urlPart?.toString());\n\n const isSecureProtocol = urlParts.some(\n (urlPart) => urlPart?.includes('https'),\n );\n const protocol = isSecureProtocol ? 'https' : 'http';\n\n const actualUrlParts = urlParts\n .filter((urlPart) => urlPart)\n .map((urlPart) => {\n return urlPart?.replace(/^(https?:\\/\\/|\\/)?(.*?)(\\/?)$/, '$2');\n });\n\n const url = `${protocol}://${actualUrlParts.join('/')}`;\n\n this.config = {\n ...this.config,\n url,\n };\n\n return this;\n }\n\n makeMethod() {\n this.config = {\n ...this.config,\n method: this.requestConfig.method,\n };\n\n return this;\n }\n\n makeData() {\n if (this.requestConfig.method === HttpMethods.GET) {\n return this;\n }\n\n if (this.requestConfig.urlencoded) {\n this.config = {\n ...this.config,\n data: stringify(this.requestConfig.data),\n };\n\n return this;\n }\n\n this.config = {\n ...this.config,\n data: this.requestConfig.data,\n };\n\n return this;\n }\n\n makeParams() {\n this.config = {\n ...this.config,\n params: this.requestConfig.params,\n };\n\n return this;\n }\n\n makeSerializer() {\n this.config = {\n ...this.config,\n paramsSerializer: (params: any) => {\n return stringify(params, {\n arrayFormat: this.baseConfig.serializer?.array,\n });\n },\n };\n\n return this;\n }\n\n build() {\n return this.config;\n }\n}\n","import { AxiosRequestConfig } from 'axios';\n\nexport type RequestParams = Pick<AxiosRequestConfig, 'params' | 'data'>;\n\nexport type RequestConfigParams = Pick<AxiosRequestConfig, 'params' | 'data'>;\n\nexport type RequestConfig = Omit<AxiosRequestConfig, 'baseURL' | 'url'> & {\n baseUrl?: string;\n baseUrlName?: string;\n baseUrlMap?: Record<string, string>;\n url?: number | string;\n urlParts?: (number | string)[];\n bearerToken?: string;\n urlencoded?: boolean;\n multipart?: boolean;\n xml?: boolean;\n};\n\nexport type BaseRequestConfig = Pick<AxiosRequestConfig, 'auth' | 'headers'> & {\n name?: string;\n baseUrl?: string;\n baseUrlName?: string;\n baseUrlMap?: Record<string, string>;\n url?: number | string;\n urlParts?: (number | string)[];\n bearerToken?: string;\n debug?: boolean;\n logger?: boolean;\n serializer?: {\n array?: 'indices' | 'brackets' | 'repeat' | 'comma';\n };\n};\n\nexport enum HttpMethods {\n GET = 'get',\n POST = 'post',\n PUT = 'put',\n DELETE = 'delete',\n}\n\nexport enum HttpStatuses {\n OK = 200,\n CREATED = 201,\n ACCEPTED = 202,\n NO_CONTENT = 204,\n BAD_REQUEST = 400,\n UNAUTHORIZED = 401,\n FORBIDDEN = 403,\n NOT_FOUND = 404,\n CONFLICT = 409,\n INTERNAL_SERVER_ERROR = 500,\n}\n","import axios, { AxiosError, AxiosResponse } from 'axios';\nimport { RequestBuilder } from './builder';\nimport {\n BaseRequestConfig,\n HttpMethods,\n RequestConfig,\n RequestConfigParams,\n} from './types';\nimport { loggerHelper } from './logger/logger';\n\nexport class RequestDataSource<\n Entity extends Record<string, any> = any,\n SearchParams extends RequestConfigParams = any,\n SearchResponse extends Record<string, any> = any,\n CreateParams extends RequestConfigParams = any,\n UpdateParams extends RequestConfigParams = any,\n> {\n baseConfig: BaseRequestConfig;\n\n constructor(baseConfig: BaseRequestConfig) {\n this.baseConfig = baseConfig;\n }\n\n common<T>(requestConfig: RequestConfig) {\n const requestBuilder = new RequestBuilder({\n baseConfig: this.baseConfig,\n requestConfig,\n });\n\n const request = requestBuilder\n .makeContentType()\n .makeAuth()\n .makeUrl()\n .makeMethod()\n .makeParams()\n .makeData()\n .makeSerializer()\n .build();\n\n return axios\n .request(request)\n .then((response: AxiosResponse<T>) => {\n if (this.baseConfig.logger) {\n loggerHelper.logResponse(response as any);\n }\n\n return response.data;\n })\n .catch((error: AxiosError) => {\n if (this.baseConfig.debug) {\n console.log('Error:', error);\n }\n\n if (this.baseConfig.logger) {\n loggerHelper.logRequestError(error as any);\n }\n\n throw (\n error.response?.data || error.response || new Error(error.message)\n );\n });\n }\n\n search(config: SearchParams = {} as SearchParams) {\n return this.common<SearchResponse>({\n ...config,\n method: HttpMethods.GET,\n });\n }\n\n get(id: number | string, config: SearchParams = {} as SearchParams) {\n return this.common<Entity>({\n ...config,\n method: HttpMethods.GET,\n url: id,\n });\n }\n\n create(config: CreateParams) {\n return this.common<Entity>({\n ...config,\n method: HttpMethods.POST,\n });\n }\n\n bulkCreate(config: CreateParams) {\n return this.common<Entity[]>({\n ...config,\n method: HttpMethods.POST,\n url: '/bulk',\n data: {\n bulk: config.data,\n },\n });\n }\n\n update(id: number | string, config: UpdateParams) {\n return this.common<Entity>({\n ...config,\n method: HttpMethods.PUT,\n url: id,\n });\n }\n\n bulkUpdate(config: UpdateParams) {\n return this.common<Entity[]>({\n ...config,\n method: HttpMethods.PUT,\n url: '/bulk',\n data: {\n bulk: config.data,\n },\n });\n }\n\n remove(id: number | string, config: SearchParams = {} as SearchParams) {\n return this.common<void>({\n ...config,\n method: HttpMethods.DELETE,\n url: id,\n });\n }\n}\n","import { AxiosError, AxiosResponse, InternalAxiosRequestConfig } from 'axios';\nimport { stringify } from 'qs';\n\ntype LoggerDto = {\n request?: InternalAxiosRequestConfig & Request;\n response?: AxiosResponse & Response;\n error?: AxiosError;\n};\n\nconst makeType = (type: string) => {\n return `[${type}]`;\n};\n\nconst makeUrl = (dto: LoggerDto = {}) => {\n const url =\n dto.request?.url ||\n dto.response?.config?.url ||\n dto.error?.response?.config.url;\n\n const params =\n dto.request?.params ||\n dto.response?.config?.params ||\n dto.error?.response?.config.params;\n\n if (!url) {\n return '';\n }\n\n if (params) {\n delete params['0'];\n return [url, stringify(params)].filter((_) => _).join('?');\n } else {\n return url;\n }\n};\n\nconst makeMethod = (dto: LoggerDto = {}) => {\n const method =\n dto.request?.method ||\n dto.response?.config?.method ||\n dto.error?.response?.config.method;\n\n if (!method) {\n return '';\n }\n\n return method.toUpperCase();\n};\n\nconst makeRequestData = (dto: LoggerDto = {}) => {\n const data =\n dto.request?.body ||\n dto.request?.data ||\n dto.response?.config?.data ||\n dto.error?.response?.config.data;\n\n if (!data) {\n return '';\n }\n\n if (typeof data === 'string') {\n return data;\n }\n\n return JSON.stringify(data);\n};\n\nconst makeResponseData = (dto: LoggerDto = {}) => {\n const data = dto.response?.data || dto.error?.response?.data;\n\n if (!data) {\n return '';\n }\n\n if (typeof data === 'string') {\n return data;\n }\n\n return JSON.stringify(data);\n};\n\nconst makeStatus = (dto: LoggerDto = {}) => {\n const status = dto.response?.status || dto.error?.response?.status;\n\n if (!status) {\n return '';\n }\n\n const statusText =\n dto.response?.statusText || dto.error?.response?.statusText;\n\n if (statusText) {\n return `${status} ${statusText}`;\n }\n\n return `${status}`;\n};\n\nconst logRequest = (request: InternalAxiosRequestConfig & Request) => {\n log([\n makeType('Request'),\n makeMethod({ request }),\n makeUrl({ request }),\n makeRequestData({ request }),\n ]);\n};\n\nconst logResponse = (response: AxiosResponse & Response) => {\n log([\n makeType('Response'),\n makeMethod({ response }),\n makeUrl({ response }),\n makeRequestData({ response }),\n makeStatus({ response }),\n makeResponseData({ response }),\n ]);\n};\n\nconst logRequestError = (error: AxiosError) => {\n log([\n makeType('Error'),\n makeMethod({ error }),\n makeUrl({ error }),\n makeRequestData({ error }),\n makeStatus({ error }),\n makeResponseData({ error }),\n ]);\n};\n\nconst log = (messageParts: string[]) => {\n const message = messageParts.filter((_) => _).join(' ');\n\n console.log(message);\n};\n\nexport const loggerHelper = {\n makeType,\n makeUrl,\n makeMethod,\n makeRequestData,\n makeResponseData,\n makeStatus,\n logRequest,\n logResponse,\n logRequestError,\n};\n","export class RequestHelper {\n sleep(seconds: number) {\n return new Promise((resolve) => {\n setTimeout(resolve, seconds * 1000);\n });\n }\n}\n"],"mappings":"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","names":["HttpMethods","HttpStatuses","stringify"]}
|
|
1
|
+
{"version":3,"sources":["../src/builder.ts","../src/types.ts","../src/data-source.ts","../src/logger/logger.ts","../src/helper.ts"],"sourcesContent":["import { AxiosRequestConfig } from 'axios';\nimport { stringify } from 'qs';\n\nimport { BaseRequestConfig, HttpMethods, RequestConfig } from './types';\n\nexport class RequestBuilder {\n baseConfig: BaseRequestConfig;\n requestConfig: RequestConfig;\n config: AxiosRequestConfig;\n\n constructor(params: {\n baseConfig: BaseRequestConfig;\n requestConfig: RequestConfig;\n }) {\n this.baseConfig = params.baseConfig;\n this.requestConfig = params.requestConfig;\n this.config = {\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n ...params.baseConfig.headers,\n ...params.requestConfig.headers,\n },\n };\n }\n\n makeContentType() {\n if (this.requestConfig.multipart) {\n this.config = {\n ...this.config,\n headers: {\n ...this.config.headers,\n 'Content-Type': 'multipart/form-data',\n },\n };\n\n return this;\n }\n\n if (this.requestConfig.urlencoded) {\n this.config = {\n ...this.config,\n headers: {\n ...this.config.headers,\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n };\n\n return this;\n }\n\n if (this.requestConfig.xml) {\n this.config = {\n ...this.config,\n headers: {\n ...this.config.headers,\n 'Content-Type': 'text/xml',\n },\n };\n\n return this;\n }\n\n return this;\n }\n\n makeAuth() {\n const auth = this.requestConfig.auth || this.baseConfig.auth;\n\n if (auth) {\n this.config = {\n ...this.config,\n auth,\n };\n\n return this;\n }\n\n const bearerToken =\n this.requestConfig.bearerToken || this.baseConfig.bearerToken;\n\n if (bearerToken) {\n this.config = {\n ...this.config,\n headers: {\n ...this.config.headers,\n Authorization: `Bearer ${bearerToken}`,\n },\n };\n\n return this;\n }\n\n return this;\n }\n\n makeUrl() {\n const baseUrlMap =\n this.requestConfig.baseUrlMap || this.baseConfig.baseUrlMap;\n const baseUrlName =\n this.requestConfig.baseUrlName || this.baseConfig.baseUrlName;\n\n const urlParts = [\n baseUrlMap && baseUrlName\n ? baseUrlMap[baseUrlName]\n : this.baseConfig.baseUrl,\n this.baseConfig.url,\n ...(this.baseConfig.urlParts || []),\n this.requestConfig.baseUrl,\n this.requestConfig.url,\n ...(this.requestConfig.urlParts || []),\n ].map((urlPart) => urlPart?.toString());\n\n const isSecureProtocol = urlParts.some(\n (urlPart) => urlPart?.includes('https'),\n );\n const protocol = isSecureProtocol ? 'https' : 'http';\n\n const actualUrlParts = urlParts\n .filter((urlPart) => urlPart)\n .map((urlPart) => {\n return urlPart?.replace(/^(https?:\\/\\/|\\/)?(.*?)(\\/?)$/, '$2');\n });\n\n const url = `${protocol}://${actualUrlParts.join('/')}`;\n\n this.config = {\n ...this.config,\n url,\n };\n\n return this;\n }\n\n makeMethod() {\n this.config = {\n ...this.config,\n method: this.requestConfig.method,\n };\n\n return this;\n }\n\n makeData() {\n if (this.requestConfig.method === HttpMethods.GET) {\n return this;\n }\n\n if (this.requestConfig.urlencoded) {\n this.config = {\n ...this.config,\n data: stringify(this.requestConfig.data),\n };\n\n return this;\n }\n\n this.config = {\n ...this.config,\n data: this.requestConfig.data,\n };\n\n return this;\n }\n\n makeParams() {\n this.config = {\n ...this.config,\n params: this.requestConfig.params,\n };\n\n return this;\n }\n\n makeSerializer() {\n this.config = {\n ...this.config,\n paramsSerializer: (params: any) => {\n return stringify(params, {\n arrayFormat: this.baseConfig.serializer?.array,\n });\n },\n };\n\n return this;\n }\n\n build() {\n return this.config;\n }\n}\n","import { AxiosRequestConfig } from 'axios';\n\nexport type RequestParams = Pick<AxiosRequestConfig, 'params' | 'data'>;\n\nexport type RequestConfigParams = Pick<AxiosRequestConfig, 'params' | 'data'>;\n\nexport type RequestConfig = Omit<AxiosRequestConfig, 'baseURL' | 'url'> & {\n baseUrl?: string;\n baseUrlName?: string;\n baseUrlMap?: Record<string, string>;\n url?: number | string;\n urlParts?: (number | string)[];\n bearerToken?: string;\n urlencoded?: boolean;\n multipart?: boolean;\n xml?: boolean;\n};\n\nexport type BaseRequestConfig = Pick<AxiosRequestConfig, 'auth' | 'headers'> & {\n name?: string;\n baseUrl?: string;\n baseUrlName?: string;\n baseUrlMap?: Record<string, string>;\n url?: number | string;\n urlParts?: (number | string)[];\n bearerToken?: string;\n debug?: boolean;\n logger?: boolean;\n serializer?: {\n array?: 'indices' | 'brackets' | 'repeat' | 'comma';\n };\n};\n\nexport enum HttpMethods {\n GET = 'get',\n POST = 'post',\n PUT = 'put',\n DELETE = 'delete',\n}\n\nexport enum HttpStatuses {\n OK = 200,\n CREATED = 201,\n ACCEPTED = 202,\n NO_CONTENT = 204,\n BAD_REQUEST = 400,\n UNAUTHORIZED = 401,\n FORBIDDEN = 403,\n NOT_FOUND = 404,\n CONFLICT = 409,\n INTERNAL_SERVER_ERROR = 500,\n}\n","import axios, { AxiosError, AxiosResponse } from 'axios';\nimport { RequestBuilder } from './builder';\nimport {\n BaseRequestConfig,\n HttpMethods,\n RequestConfig,\n RequestConfigParams,\n} from './types';\nimport { loggerHelper } from './logger/logger';\n\nexport class RequestDataSource<\n Entity extends Record<string, any> = any,\n SearchParams extends RequestConfigParams = any,\n SearchResponse extends Record<string, any> = any,\n CreateParams extends RequestConfigParams = any,\n UpdateParams extends RequestConfigParams = any,\n> {\n baseConfig: BaseRequestConfig;\n\n constructor(baseConfig: BaseRequestConfig) {\n this.baseConfig = baseConfig;\n }\n\n common<T>(requestConfig: RequestConfig) {\n const requestBuilder = new RequestBuilder({\n baseConfig: this.baseConfig,\n requestConfig,\n });\n\n const request = requestBuilder\n .makeContentType()\n .makeAuth()\n .makeUrl()\n .makeMethod()\n .makeParams()\n .makeData()\n .makeSerializer()\n .build();\n\n if (this.baseConfig.logger) {\n loggerHelper.logRequest(request as any);\n }\n\n return axios\n .request(request)\n .then((response: AxiosResponse<T>) => {\n if (this.baseConfig.logger) {\n loggerHelper.logResponse(response as any);\n }\n\n return response.data;\n })\n .catch((error: AxiosError) => {\n if (this.baseConfig.debug) {\n console.log('Error:', error);\n }\n\n if (this.baseConfig.logger) {\n loggerHelper.logRequestError(error as any);\n }\n\n throw (\n error.response?.data || error.response || new Error(error.message)\n );\n });\n }\n\n search(config: SearchParams = {} as SearchParams) {\n return this.common<SearchResponse>({\n ...config,\n method: HttpMethods.GET,\n });\n }\n\n get(id: number | string, config: SearchParams = {} as SearchParams) {\n return this.common<Entity>({\n ...config,\n method: HttpMethods.GET,\n url: id,\n });\n }\n\n create(config: CreateParams) {\n return this.common<Entity>({\n ...config,\n method: HttpMethods.POST,\n });\n }\n\n bulkCreate(config: CreateParams) {\n return this.common<Entity[]>({\n ...config,\n method: HttpMethods.POST,\n url: '/bulk',\n data: {\n bulk: config.data,\n },\n });\n }\n\n update(id: number | string, config: UpdateParams) {\n return this.common<Entity>({\n ...config,\n method: HttpMethods.PUT,\n url: id,\n });\n }\n\n bulkUpdate(config: UpdateParams) {\n return this.common<Entity[]>({\n ...config,\n method: HttpMethods.PUT,\n url: '/bulk',\n data: {\n bulk: config.data,\n },\n });\n }\n\n remove(id: number | string, config: SearchParams = {} as SearchParams) {\n return this.common<void>({\n ...config,\n method: HttpMethods.DELETE,\n url: id,\n });\n }\n}\n","import { AxiosError, AxiosResponse, InternalAxiosRequestConfig } from 'axios';\nimport { stringify } from 'qs';\n\ntype LoggerDto = {\n request?: InternalAxiosRequestConfig & Request;\n response?: AxiosResponse & Response;\n error?: AxiosError;\n};\n\nconst makeType = (type: string) => {\n return `[${type}]`;\n};\n\nconst makeUrl = (dto: LoggerDto = {}) => {\n const url =\n dto.request?.url ||\n dto.response?.config?.url ||\n dto.error?.response?.config.url;\n\n const params =\n dto.request?.params ||\n dto.response?.config?.params ||\n dto.error?.response?.config.params;\n\n if (!url) {\n return '';\n }\n\n if (params) {\n delete params['0'];\n return [url, stringify(params)].filter((_) => _).join('?');\n } else {\n return url;\n }\n};\n\nconst makeMethod = (dto: LoggerDto = {}) => {\n const method =\n dto.request?.method ||\n dto.response?.config?.method ||\n dto.error?.response?.config.method;\n\n if (!method) {\n return '';\n }\n\n return method.toUpperCase();\n};\n\nconst makeRequestData = (dto: LoggerDto = {}) => {\n const data =\n dto.request?.body ||\n dto.request?.data ||\n dto.response?.config?.data ||\n dto.error?.response?.config.data;\n\n if (!data) {\n return '';\n }\n\n if (typeof data === 'string') {\n return data;\n }\n\n return JSON.stringify(data);\n};\n\nconst makeResponseData = (dto: LoggerDto = {}) => {\n const data = dto.response?.data || dto.error?.response?.data;\n\n if (!data) {\n return '';\n }\n\n if (typeof data === 'string') {\n return data;\n }\n\n return JSON.stringify(data);\n};\n\nconst makeStatus = (dto: LoggerDto = {}) => {\n const status = dto.response?.status || dto.error?.response?.status;\n\n if (!status) {\n return '';\n }\n\n const statusText =\n dto.response?.statusText || dto.error?.response?.statusText;\n\n if (statusText) {\n return `${status} ${statusText}`;\n }\n\n return `${status}`;\n};\n\nconst logRequest = (request: InternalAxiosRequestConfig & Request) => {\n log([\n makeType('Request'),\n makeMethod({ request }),\n makeUrl({ request }),\n makeRequestData({ request }),\n ]);\n};\n\nconst logResponse = (response: AxiosResponse & Response) => {\n log([\n makeType('Response'),\n makeMethod({ response }),\n makeUrl({ response }),\n makeRequestData({ response }),\n makeStatus({ response }),\n makeResponseData({ response }),\n ]);\n};\n\nconst logRequestError = (error: AxiosError) => {\n log([\n makeType('Error'),\n makeMethod({ error }),\n makeUrl({ error }),\n makeRequestData({ error }),\n makeStatus({ error }),\n makeResponseData({ error }),\n ]);\n};\n\nconst log = (messageParts: string[]) => {\n const message = messageParts.filter((_) => _).join(' ');\n\n console.log(message);\n};\n\nexport const loggerHelper = {\n makeType,\n makeUrl,\n makeMethod,\n makeRequestData,\n makeResponseData,\n makeStatus,\n logRequest,\n logResponse,\n logRequestError,\n};\n","export class RequestHelper {\n sleep(seconds: number) {\n return new Promise((resolve) => {\n setTimeout(resolve, seconds * 1000);\n });\n }\n}\n"],"mappings":"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","names":["HttpMethods","HttpStatuses","stringify"]}
|