UNPKG

@ackee/antonio-core

Version:

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

25 lines 4.5 kB
import { setUriParams } from './uriParams'; const removeSlashAtStartAndAtEnd = chunk => chunk.replace(/^\/|\/$/g, ''); export function joinUrlChunks(baseUrl, ...path) { const joinedUrl = [baseUrl, ...path].filter(Boolean).map(removeSlashAtStartAndAtEnd).join('/'); return new URL(joinedUrl); } export function createRequestUrl(requestUrl, requestConfig, generalConfig) { try { if (requestConfig.uriParams) { requestUrl = setUriParams(requestUrl, requestConfig.uriParams); } const url = joinUrlChunks(requestConfig.baseURL, requestUrl); if (requestConfig.params) { url.search = requestConfig.params.toString(); } return url.toString(); } catch (e) { generalConfig.logger.error(e, { requestUrl, requestConfig }); throw new TypeError(`Could not compose request url from: requestUrl: '${requestUrl}' and baseURL: '${requestConfig.baseURL}'.`); } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzZXRVcmlQYXJhbXMiLCJyZW1vdmVTbGFzaEF0U3RhcnRBbmRBdEVuZCIsImNodW5rIiwicmVwbGFjZSIsImpvaW5VcmxDaHVua3MiLCJiYXNlVXJsIiwicGF0aCIsImpvaW5lZFVybCIsImZpbHRlciIsIkJvb2xlYW4iLCJtYXAiLCJqb2luIiwiVVJMIiwiY3JlYXRlUmVxdWVzdFVybCIsInJlcXVlc3RVcmwiLCJyZXF1ZXN0Q29uZmlnIiwiZ2VuZXJhbENvbmZpZyIsInVyaVBhcmFtcyIsInVybCIsImJhc2VVUkwiLCJwYXJhbXMiLCJzZWFyY2giLCJ0b1N0cmluZyIsImUiLCJsb2dnZXIiLCJlcnJvciIsIlR5cGVFcnJvciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3JlcXVlc3QvdXRpbHMvdXJsL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRmluYWxSZXF1ZXN0Q29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBHZW5lcmFsQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9nZW5lcmFsLWNvbmZpZyc7XG5cbmltcG9ydCB7IHNldFVyaVBhcmFtcyB9IGZyb20gJy4vdXJpUGFyYW1zJztcblxuY29uc3QgcmVtb3ZlU2xhc2hBdFN0YXJ0QW5kQXRFbmQgPSAoY2h1bms6IHN0cmluZykgPT4gY2h1bmsucmVwbGFjZSgvXlxcL3xcXC8kL2csICcnKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGpvaW5VcmxDaHVua3MoYmFzZVVybD86IHN0cmluZywgLi4ucGF0aDogc3RyaW5nW10pIHtcbiAgICBjb25zdCBqb2luZWRVcmwgPSBbYmFzZVVybCwgLi4ucGF0aF0uZmlsdGVyKEJvb2xlYW4pLm1hcChyZW1vdmVTbGFzaEF0U3RhcnRBbmRBdEVuZCkuam9pbignLycpO1xuICAgIHJldHVybiBuZXcgVVJMKGpvaW5lZFVybCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSZXF1ZXN0VXJsKFxuICAgIHJlcXVlc3RVcmw6IHN0cmluZyxcbiAgICByZXF1ZXN0Q29uZmlnOiBGaW5hbFJlcXVlc3RDb25maWcsXG4gICAgZ2VuZXJhbENvbmZpZzogR2VuZXJhbENvbmZpZyxcbik6IHN0cmluZyB7XG4gICAgdHJ5IHtcbiAgICAgICAgaWYgKHJlcXVlc3RDb25maWcudXJpUGFyYW1zKSB7XG4gICAgICAgICAgICByZXF1ZXN0VXJsID0gc2V0VXJpUGFyYW1zKHJlcXVlc3RVcmwsIHJlcXVlc3RDb25maWcudXJpUGFyYW1zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHVybCA9IGpvaW5VcmxDaHVua3MocmVxdWVzdENvbmZpZy5iYXNlVVJMLCByZXF1ZXN0VXJsKTtcblxuICAgICAgICBpZiAocmVxdWVzdENvbmZpZy5wYXJhbXMpIHtcbiAgICAgICAgICAgIHVybC5zZWFyY2ggPSByZXF1ZXN0Q29uZmlnLnBhcmFtcy50b1N0cmluZygpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHVybC50b1N0cmluZygpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgZ2VuZXJhbENvbmZpZy5sb2dnZXIuZXJyb3IoZSwge1xuICAgICAgICAgICAgcmVxdWVzdFVybCxcbiAgICAgICAgICAgIHJlcXVlc3RDb25maWcsXG4gICAgICAgIH0pO1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgICAgICAgYENvdWxkIG5vdCBjb21wb3NlIHJlcXVlc3QgdXJsIGZyb206IHJlcXVlc3RVcmw6ICcke3JlcXVlc3RVcmx9JyBhbmQgYmFzZVVSTDogJyR7cmVxdWVzdENvbmZpZy5iYXNlVVJMfScuYCxcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiJBQUdBLFNBQVNBLFlBQVksUUFBUSxhQUFhO0FBRTFDLE1BQU1DLDBCQUEwQixHQUFJQyxLQUFhLElBQUtBLEtBQUssQ0FBQ0MsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7QUFFbkYsT0FBTyxTQUFTQyxhQUFhQSxDQUFDQyxPQUFnQixFQUFFLEdBQUdDLElBQWMsRUFBRTtFQUMvRCxNQUFNQyxTQUFTLEdBQUcsQ0FBQ0YsT0FBTyxFQUFFLEdBQUdDLElBQUksQ0FBQyxDQUFDRSxNQUFNLENBQUNDLE9BQU8sQ0FBQyxDQUFDQyxHQUFHLENBQUNULDBCQUEwQixDQUFDLENBQUNVLElBQUksQ0FBQyxHQUFHLENBQUM7RUFDOUYsT0FBTyxJQUFJQyxHQUFHLENBQUNMLFNBQVMsQ0FBQztBQUM3QjtBQUVBLE9BQU8sU0FBU00sZ0JBQWdCQSxDQUM1QkMsVUFBa0IsRUFDbEJDLGFBQWlDLEVBQ2pDQyxhQUE0QixFQUN0QjtFQUNOLElBQUk7SUFDQSxJQUFJRCxhQUFhLENBQUNFLFNBQVMsRUFBRTtNQUN6QkgsVUFBVSxHQUFHZCxZQUFZLENBQUNjLFVBQVUsRUFBRUMsYUFBYSxDQUFDRSxTQUFTLENBQUM7SUFDbEU7SUFFQSxNQUFNQyxHQUFHLEdBQUdkLGFBQWEsQ0FBQ1csYUFBYSxDQUFDSSxPQUFPLEVBQUVMLFVBQVUsQ0FBQztJQUU1RCxJQUFJQyxhQUFhLENBQUNLLE1BQU0sRUFBRTtNQUN0QkYsR0FBRyxDQUFDRyxNQUFNLEdBQUdOLGFBQWEsQ0FBQ0ssTUFBTSxDQUFDRSxRQUFRLENBQUMsQ0FBQztJQUNoRDtJQUVBLE9BQU9KLEdBQUcsQ0FBQ0ksUUFBUSxDQUFDLENBQUM7RUFDekIsQ0FBQyxDQUFDLE9BQU9DLENBQUMsRUFBRTtJQUNSUCxhQUFhLENBQUNRLE1BQU0sQ0FBQ0MsS0FBSyxDQUFDRixDQUFDLEVBQUU7TUFDMUJULFVBQVU7TUFDVkM7SUFDSixDQUFDLENBQUM7SUFDRixNQUFNLElBQUlXLFNBQVMsQ0FDZixvREFBb0RaLFVBQVUsbUJBQW1CQyxhQUFhLENBQUNJLE9BQU8sSUFDMUcsQ0FBQztFQUNMO0FBQ0oiLCJpZ25vcmVMaXN0IjpbXX0=