UNPKG

@ackee/antonio-core

Version:

A HTTP client built on fetch API with axios-like API.

66 lines (65 loc) 11.1 kB
import { defaultRequestConfig } from '../../request/config'; import { mergeRequestConfigs } from '../../request/utils'; import { defaultGeneralConfig } from '../general-config'; import makeRequest, { generatorToPromise } from '../makeRequest'; import RequestInterceptorManager from '../../interceptors/requestInterceptors'; import ResponseInterceptorManager from '../../interceptors/responseInterceptors'; export class Antonio { defaults; interceptors; generalConfig; /** * @example * ```ts * import { Antonio } from `@ackee/antonio-core`; * * const api = new Antonio({ * baseURL: 'https://some-domain.com/api/', * }); * ``` */ constructor(requestConfig, generalConfig) { this.defaults = Object.freeze(mergeRequestConfigs(defaultRequestConfig, requestConfig)); this.interceptors = Object.freeze({ request: new RequestInterceptorManager(), response: new ResponseInterceptorManager() }); this.generalConfig = Object.freeze({ ...defaultGeneralConfig, ...generalConfig }); } request(props) { // @ts-expect-error const { method, url, body, ...requestConfig } = props; const it = makeRequest(this, method, url, body, requestConfig); return generatorToPromise(it); } post(url, body, requestConfig) { return makeRequest(this, 'POST', url, body, requestConfig); } put(url, body, requestConfig) { return makeRequest(this, 'PUT', url, body, requestConfig); } patch(url, body, requestConfig) { return makeRequest(this, 'PATCH', url, body, requestConfig); } get(url, requestConfig) { return makeRequest(this, 'GET', url, null, requestConfig); } delete(url, requestConfig) { return makeRequest(this, 'DELETE', url, null, requestConfig); } head(url, requestConfig) { return makeRequest(this, 'HEAD', url, null, requestConfig); } options(url, requestConfig) { return makeRequest(this, 'OPTIONS', url, null, requestConfig); } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkZWZhdWx0UmVxdWVzdENvbmZpZyIsIm1lcmdlUmVxdWVzdENvbmZpZ3MiLCJkZWZhdWx0R2VuZXJhbENvbmZpZyIsIm1ha2VSZXF1ZXN0IiwiZ2VuZXJhdG9yVG9Qcm9taXNlIiwiUmVxdWVzdEludGVyY2VwdG9yTWFuYWdlciIsIlJlc3BvbnNlSW50ZXJjZXB0b3JNYW5hZ2VyIiwiQW50b25pbyIsImRlZmF1bHRzIiwiaW50ZXJjZXB0b3JzIiwiZ2VuZXJhbENvbmZpZyIsImNvbnN0cnVjdG9yIiwicmVxdWVzdENvbmZpZyIsIk9iamVjdCIsImZyZWV6ZSIsInJlcXVlc3QiLCJyZXNwb25zZSIsInByb3BzIiwibWV0aG9kIiwidXJsIiwiYm9keSIsIml0IiwicG9zdCIsInB1dCIsInBhdGNoIiwiZ2V0IiwiZGVsZXRlIiwiaGVhZCIsIm9wdGlvbnMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9jb3JlL21vZGVscy9BbnRvbmlvLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlcXVlc3RCb2R5RGF0YSwgUmVxdWVzdENvbmZpZywgUmVxdWVzdE1ldGhvZCwgUmVxdWVzdFJlc3VsdCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcblxuaW1wb3J0IHsgZGVmYXVsdFJlcXVlc3RDb25maWcsIERlZmF1bHRSZXF1ZXN0Q29uZmlnIH0gZnJvbSAnLi4vLi4vcmVxdWVzdC9jb25maWcnO1xuaW1wb3J0IHsgbWVyZ2VSZXF1ZXN0Q29uZmlncyB9IGZyb20gJy4uLy4uL3JlcXVlc3QvdXRpbHMnO1xuXG5pbXBvcnQgdHlwZSB7IEdlbmVyYWxDb25maWcgfSBmcm9tICcuLi9nZW5lcmFsLWNvbmZpZyc7XG5pbXBvcnQgeyBkZWZhdWx0R2VuZXJhbENvbmZpZyB9IGZyb20gJy4uL2dlbmVyYWwtY29uZmlnJztcbmltcG9ydCBtYWtlUmVxdWVzdCwgeyBnZW5lcmF0b3JUb1Byb21pc2UgfSBmcm9tICcuLi9tYWtlUmVxdWVzdCc7XG5cbmltcG9ydCB0eXBlIHsgSW50ZXJjZXB0b3JNYW5hZ2VycyB9IGZyb20gJy4uLy4uL2ludGVyY2VwdG9ycyc7XG5pbXBvcnQgUmVxdWVzdEludGVyY2VwdG9yTWFuYWdlciBmcm9tICcuLi8uLi9pbnRlcmNlcHRvcnMvcmVxdWVzdEludGVyY2VwdG9ycyc7XG5pbXBvcnQgUmVzcG9uc2VJbnRlcmNlcHRvck1hbmFnZXIgZnJvbSAnLi4vLi4vaW50ZXJjZXB0b3JzL3Jlc3BvbnNlSW50ZXJjZXB0b3JzJztcblxuZXhwb3J0IHR5cGUgQW50b25pb1JlcXVlc3Q8Uk0gZXh0ZW5kcyBSZXF1ZXN0TWV0aG9kPiA9IFJlYWRvbmx5PFxuICAgIFJlcXVlc3RDb25maWcgJiB7fSAmIChSTSBleHRlbmRzICdQT1NUJyB8ICdQQVRDSCcgfCAnUFVUJ1xuICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICBib2R5OiBSZXF1aXJlZDxSZXF1ZXN0Qm9keURhdGE+O1xuICAgICAgICAgICAgICAgICAgbWV0aG9kOiBSTTtcbiAgICAgICAgICAgICAgICAgIHVybDogc3RyaW5nO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgICAgIG1ldGhvZDogUk07XG4gICAgICAgICAgICAgICAgICB1cmw6IHN0cmluZztcbiAgICAgICAgICAgICAgfSlcbj47XG5cbmV4cG9ydCBjbGFzcyBBbnRvbmlvPFRTdWNjZXNzRGF0YURlZmF1bHQgPSB1bmtub3duLCBURXJyb3JEYXRhRGVmYXVsdCA9IHVua25vd24+IHtcbiAgICByZWFkb25seSBkZWZhdWx0czogRGVmYXVsdFJlcXVlc3RDb25maWc7XG4gICAgcmVhZG9ubHkgaW50ZXJjZXB0b3JzOiBJbnRlcmNlcHRvck1hbmFnZXJzO1xuICAgIHJlYWRvbmx5IGdlbmVyYWxDb25maWc6IEdlbmVyYWxDb25maWc7XG5cbiAgICAvKipcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHRzXG4gICAgICogaW1wb3J0IHsgQW50b25pbyB9IGZyb20gYEBhY2tlZS9hbnRvbmlvLWNvcmVgO1xuICAgICAqXG4gICAgICogY29uc3QgYXBpID0gbmV3IEFudG9uaW8oe1xuICAgICAqICBiYXNlVVJMOiAnaHR0cHM6Ly9zb21lLWRvbWFpbi5jb20vYXBpLycsXG4gICAgICogfSk7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgY29uc3RydWN0b3IocmVxdWVzdENvbmZpZz86IFJlcXVlc3RDb25maWcsIGdlbmVyYWxDb25maWc/OiBQYXJ0aWFsPEdlbmVyYWxDb25maWc+KSB7XG4gICAgICAgIHRoaXMuZGVmYXVsdHMgPSBPYmplY3QuZnJlZXplPERlZmF1bHRSZXF1ZXN0Q29uZmlnPihtZXJnZVJlcXVlc3RDb25maWdzKGRlZmF1bHRSZXF1ZXN0Q29uZmlnLCByZXF1ZXN0Q29uZmlnKSk7XG5cbiAgICAgICAgdGhpcy5pbnRlcmNlcHRvcnMgPSBPYmplY3QuZnJlZXplPEludGVyY2VwdG9yTWFuYWdlcnM+KHtcbiAgICAgICAgICAgIHJlcXVlc3Q6IG5ldyBSZXF1ZXN0SW50ZXJjZXB0b3JNYW5hZ2VyKCksXG4gICAgICAgICAgICByZXNwb25zZTogbmV3IFJlc3BvbnNlSW50ZXJjZXB0b3JNYW5hZ2VyKCksXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZ2VuZXJhbENvbmZpZyA9IE9iamVjdC5mcmVlemU8R2VuZXJhbENvbmZpZz4oe1xuICAgICAgICAgICAgLi4uZGVmYXVsdEdlbmVyYWxDb25maWcsXG4gICAgICAgICAgICAuLi5nZW5lcmFsQ29uZmlnLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZXF1ZXN0PFJNIGV4dGVuZHMgUmVxdWVzdE1ldGhvZCwgVFN1Y2Nlc3NEYXRhID0gVFN1Y2Nlc3NEYXRhRGVmYXVsdCwgVEVycm9yRGF0YSA9IFRFcnJvckRhdGFEZWZhdWx0PihcbiAgICAgICAgcHJvcHM6IEFudG9uaW9SZXF1ZXN0PFJNPixcbiAgICApOiBQcm9taXNlPFJlcXVlc3RSZXN1bHQ8VFN1Y2Nlc3NEYXRhPj4ge1xuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgICAgIGNvbnN0IHsgbWV0aG9kLCB1cmwsIGJvZHksIC4uLnJlcXVlc3RDb25maWcgfSA9IHByb3BzO1xuXG4gICAgICAgIGNvbnN0IGl0ID0gbWFrZVJlcXVlc3Q8VFN1Y2Nlc3NEYXRhLCBURXJyb3JEYXRhPih0aGlzLCBtZXRob2QsIHVybCwgYm9keSwgcmVxdWVzdENvbmZpZyk7XG5cbiAgICAgICAgcmV0dXJuIGdlbmVyYXRvclRvUHJvbWlzZTxSZXF1ZXN0UmVzdWx0PFRTdWNjZXNzRGF0YT4+KGl0KTtcbiAgICB9XG5cbiAgICBwb3N0PFRTdWNjZXNzRGF0YSA9IFRTdWNjZXNzRGF0YURlZmF1bHQsIFRFcnJvckRhdGEgPSBURXJyb3JEYXRhRGVmYXVsdD4oXG4gICAgICAgIHVybDogc3RyaW5nLFxuICAgICAgICBib2R5OiBSZXF1ZXN0Qm9keURhdGEsXG4gICAgICAgIHJlcXVlc3RDb25maWc/OiBSZXF1ZXN0Q29uZmlnLFxuICAgICkge1xuICAgICAgICByZXR1cm4gbWFrZVJlcXVlc3Q8VFN1Y2Nlc3NEYXRhLCBURXJyb3JEYXRhPih0aGlzLCAnUE9TVCcsIHVybCwgYm9keSwgcmVxdWVzdENvbmZpZyk7XG4gICAgfVxuXG4gICAgcHV0PFRTdWNjZXNzRGF0YSA9IFRTdWNjZXNzRGF0YURlZmF1bHQsIFRFcnJvckRhdGEgPSBURXJyb3JEYXRhRGVmYXVsdD4oXG4gICAgICAgIHVybDogc3RyaW5nLFxuICAgICAgICBib2R5OiBSZXF1ZXN0Qm9keURhdGEsXG4gICAgICAgIHJlcXVlc3RDb25maWc/OiBSZXF1ZXN0Q29uZmlnLFxuICAgICkge1xuICAgICAgICByZXR1cm4gbWFrZVJlcXVlc3Q8VFN1Y2Nlc3NEYXRhLCBURXJyb3JEYXRhPih0aGlzLCAnUFVUJywgdXJsLCBib2R5LCByZXF1ZXN0Q29uZmlnKTtcbiAgICB9XG5cbiAgICBwYXRjaDxUU3VjY2Vzc0RhdGEgPSBUU3VjY2Vzc0RhdGFEZWZhdWx0LCBURXJyb3JEYXRhID0gVEVycm9yRGF0YURlZmF1bHQ+KFxuICAgICAgICB1cmw6IHN0cmluZyxcbiAgICAgICAgYm9keTogUmVxdWVzdEJvZHlEYXRhLFxuICAgICAgICByZXF1ZXN0Q29uZmlnPzogUmVxdWVzdENvbmZpZyxcbiAgICApIHtcbiAgICAgICAgcmV0dXJuIG1ha2VSZXF1ZXN0PFRTdWNjZXNzRGF0YSwgVEVycm9yRGF0YT4odGhpcywgJ1BBVENIJywgdXJsLCBib2R5LCByZXF1ZXN0Q29uZmlnKTtcbiAgICB9XG5cbiAgICBnZXQ8VFN1Y2Nlc3NEYXRhID0gVFN1Y2Nlc3NEYXRhRGVmYXVsdCwgVEVycm9yRGF0YSA9IFRFcnJvckRhdGFEZWZhdWx0PihcbiAgICAgICAgdXJsOiBzdHJpbmcsXG4gICAgICAgIHJlcXVlc3RDb25maWc/OiBSZXF1ZXN0Q29uZmlnLFxuICAgICkge1xuICAgICAgICByZXR1cm4gbWFrZVJlcXVlc3Q8VFN1Y2Nlc3NEYXRhLCBURXJyb3JEYXRhPih0aGlzLCAnR0VUJywgdXJsLCBudWxsLCByZXF1ZXN0Q29uZmlnKTtcbiAgICB9XG5cbiAgICBkZWxldGU8VFN1Y2Nlc3NEYXRhID0gVFN1Y2Nlc3NEYXRhRGVmYXVsdCwgVEVycm9yRGF0YSA9IFRFcnJvckRhdGFEZWZhdWx0PihcbiAgICAgICAgdXJsOiBzdHJpbmcsXG4gICAgICAgIHJlcXVlc3RDb25maWc/OiBSZXF1ZXN0Q29uZmlnLFxuICAgICkge1xuICAgICAgICByZXR1cm4gbWFrZVJlcXVlc3Q8VFN1Y2Nlc3NEYXRhLCBURXJyb3JEYXRhPih0aGlzLCAnREVMRVRFJywgdXJsLCBudWxsLCByZXF1ZXN0Q29uZmlnKTtcbiAgICB9XG5cbiAgICBoZWFkPFRTdWNjZXNzRGF0YSA9IFRTdWNjZXNzRGF0YURlZmF1bHQsIFRFcnJvckRhdGEgPSBURXJyb3JEYXRhRGVmYXVsdD4oXG4gICAgICAgIHVybDogc3RyaW5nLFxuICAgICAgICByZXF1ZXN0Q29uZmlnPzogUmVxdWVzdENvbmZpZyxcbiAgICApIHtcbiAgICAgICAgcmV0dXJuIG1ha2VSZXF1ZXN0PFRTdWNjZXNzRGF0YSwgVEVycm9yRGF0YT4odGhpcywgJ0hFQUQnLCB1cmwsIG51bGwsIHJlcXVlc3RDb25maWcpO1xuICAgIH1cblxuICAgIG9wdGlvbnM8VFN1Y2Nlc3NEYXRhID0gVFN1Y2Nlc3NEYXRhRGVmYXVsdCwgVEVycm9yRGF0YSA9IFRFcnJvckRhdGFEZWZhdWx0PihcbiAgICAgICAgdXJsOiBzdHJpbmcsXG4gICAgICAgIHJlcXVlc3RDb25maWc/OiBSZXF1ZXN0Q29uZmlnLFxuICAgICkge1xuICAgICAgICByZXR1cm4gbWFrZVJlcXVlc3Q8VFN1Y2Nlc3NEYXRhLCBURXJyb3JEYXRhPih0aGlzLCAnT1BUSU9OUycsIHVybCwgbnVsbCwgcmVxdWVzdENvbmZpZyk7XG4gICAgfVxufVxuXG5leHBvcnQgdHlwZSBUQW50b25pbyA9IEFudG9uaW87XG4iXSwibWFwcGluZ3MiOiJBQUVBLFNBQVNBLG9CQUFvQixRQUE4QixzQkFBc0I7QUFDakYsU0FBU0MsbUJBQW1CLFFBQVEscUJBQXFCO0FBR3pELFNBQVNDLG9CQUFvQixRQUFRLG1CQUFtQjtBQUN4RCxPQUFPQyxXQUFXLElBQUlDLGtCQUFrQixRQUFRLGdCQUFnQjtBQUdoRSxPQUFPQyx5QkFBeUIsTUFBTSx3Q0FBd0M7QUFDOUUsT0FBT0MsMEJBQTBCLE1BQU0seUNBQXlDO0FBZWhGLE9BQU8sTUFBTUMsT0FBTyxDQUE2RDtFQUNwRUMsUUFBUTtFQUNSQyxZQUFZO0VBQ1pDLGFBQWE7O0VBRXRCO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0lDLFdBQVdBLENBQUNDLGFBQTZCLEVBQUVGLGFBQXNDLEVBQUU7SUFDL0UsSUFBSSxDQUFDRixRQUFRLEdBQUdLLE1BQU0sQ0FBQ0MsTUFBTSxDQUF1QmIsbUJBQW1CLENBQUNELG9CQUFvQixFQUFFWSxhQUFhLENBQUMsQ0FBQztJQUU3RyxJQUFJLENBQUNILFlBQVksR0FBR0ksTUFBTSxDQUFDQyxNQUFNLENBQXNCO01BQ25EQyxPQUFPLEVBQUUsSUFBSVYseUJBQXlCLENBQUMsQ0FBQztNQUN4Q1csUUFBUSxFQUFFLElBQUlWLDBCQUEwQixDQUFDO0lBQzdDLENBQUMsQ0FBQztJQUVGLElBQUksQ0FBQ0ksYUFBYSxHQUFHRyxNQUFNLENBQUNDLE1BQU0sQ0FBZ0I7TUFDOUMsR0FBR1osb0JBQW9CO01BQ3ZCLEdBQUdRO0lBQ1AsQ0FBQyxDQUFDO0VBQ047RUFFQUssT0FBT0EsQ0FDSEUsS0FBeUIsRUFDVztJQUNwQztJQUNBLE1BQU07TUFBRUMsTUFBTTtNQUFFQyxHQUFHO01BQUVDLElBQUk7TUFBRSxHQUFHUjtJQUFjLENBQUMsR0FBR0ssS0FBSztJQUVyRCxNQUFNSSxFQUFFLEdBQUdsQixXQUFXLENBQTJCLElBQUksRUFBRWUsTUFBTSxFQUFFQyxHQUFHLEVBQUVDLElBQUksRUFBRVIsYUFBYSxDQUFDO0lBRXhGLE9BQU9SLGtCQUFrQixDQUE4QmlCLEVBQUUsQ0FBQztFQUM5RDtFQUVBQyxJQUFJQSxDQUNBSCxHQUFXLEVBQ1hDLElBQXFCLEVBQ3JCUixhQUE2QixFQUMvQjtJQUNFLE9BQU9ULFdBQVcsQ0FBMkIsSUFBSSxFQUFFLE1BQU0sRUFBRWdCLEdBQUcsRUFBRUMsSUFBSSxFQUFFUixhQUFhLENBQUM7RUFDeEY7RUFFQVcsR0FBR0EsQ0FDQ0osR0FBVyxFQUNYQyxJQUFxQixFQUNyQlIsYUFBNkIsRUFDL0I7SUFDRSxPQUFPVCxXQUFXLENBQTJCLElBQUksRUFBRSxLQUFLLEVBQUVnQixHQUFHLEVBQUVDLElBQUksRUFBRVIsYUFBYSxDQUFDO0VBQ3ZGO0VBRUFZLEtBQUtBLENBQ0RMLEdBQVcsRUFDWEMsSUFBcUIsRUFDckJSLGFBQTZCLEVBQy9CO0lBQ0UsT0FBT1QsV0FBVyxDQUEyQixJQUFJLEVBQUUsT0FBTyxFQUFFZ0IsR0FBRyxFQUFFQyxJQUFJLEVBQUVSLGFBQWEsQ0FBQztFQUN6RjtFQUVBYSxHQUFHQSxDQUNDTixHQUFXLEVBQ1hQLGFBQTZCLEVBQy9CO0lBQ0UsT0FBT1QsV0FBVyxDQUEyQixJQUFJLEVBQUUsS0FBSyxFQUFFZ0IsR0FBRyxFQUFFLElBQUksRUFBRVAsYUFBYSxDQUFDO0VBQ3ZGO0VBRUFjLE1BQU1BLENBQ0ZQLEdBQVcsRUFDWFAsYUFBNkIsRUFDL0I7SUFDRSxPQUFPVCxXQUFXLENBQTJCLElBQUksRUFBRSxRQUFRLEVBQUVnQixHQUFHLEVBQUUsSUFBSSxFQUFFUCxhQUFhLENBQUM7RUFDMUY7RUFFQWUsSUFBSUEsQ0FDQVIsR0FBVyxFQUNYUCxhQUE2QixFQUMvQjtJQUNFLE9BQU9ULFdBQVcsQ0FBMkIsSUFBSSxFQUFFLE1BQU0sRUFBRWdCLEdBQUcsRUFBRSxJQUFJLEVBQUVQLGFBQWEsQ0FBQztFQUN4RjtFQUVBZ0IsT0FBT0EsQ0FDSFQsR0FBVyxFQUNYUCxhQUE2QixFQUMvQjtJQUNFLE9BQU9ULFdBQVcsQ0FBMkIsSUFBSSxFQUFFLFNBQVMsRUFBRWdCLEdBQUcsRUFBRSxJQUFJLEVBQUVQLGFBQWEsQ0FBQztFQUMzRjtBQUNKIiwiaWdub3JlTGlzdCI6W119