UNPKG

@eleven-am/nestjs-storage

Version:

A NestJS module for uploading files to cloud storage providers

71 lines 2.11 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.makeRequest = makeRequest; function performFetch({ method, headers, body, query, address, abortSignal, }) { const url = new URL(address); if (query) { Object.entries(query).forEach(([key, value]) => { if (Array.isArray(value)) { value.forEach((value) => url.searchParams.append(key, String(value))); } else { url.searchParams.append(key, String(value)); } }); } return fetch(url.toString(), { method, headers, body: body ? JSON.stringify(body) : undefined, signal: abortSignal, }); } function getData(params) { return new Promise((resolve, reject) => { performFetch(params) .then((response) => { const isJson = response.headers.get('content-type')?.includes('application/json') ?? false; const statusCode = response.status; const statusText = response.statusText; const isOk = response.ok; if (!isOk) { reject({ statusCode, statusText, }); } if (isJson) { response .json() .then((json) => { resolve(json); }) .catch((error) => { reject(error); }); } else { response .text() .then((text) => { resolve(text); }) .catch((error) => { reject(error); }); } }) .catch((error) => { reject(error); }); }); } async function makeRequest(params, schema) { const data = await getData(params); if (schema) { return schema.parse(data); } return data; } //# sourceMappingURL=makeRequest.js.map