UNPKG

@nhost/nhost-js

Version:

Nhost JavaScript SDK

392 lines 13.9 kB
/** * This file is auto-generated. Do not edit manually. */ import { createEnhancedFetch, FetchError } from '../fetch'; export const createAPIClient = (baseURL, chainFunctions = []) => { let fetch = createEnhancedFetch(chainFunctions); const pushChainFunction = (chainFunction) => { chainFunctions.push(chainFunction); fetch = createEnhancedFetch(chainFunctions); }; const uploadFiles = async (body, options) => { const url = `${baseURL}/files`; const formData = new FormData(); const isReactNative = typeof navigator !== 'undefined' && navigator.product === 'ReactNative'; if (body['bucket-id'] !== undefined) { formData.append('bucket-id', body['bucket-id']); } if (body['metadata[]'] !== undefined) { body['metadata[]'].forEach((value) => { if (isReactNative) { formData.append('metadata[]', { string: JSON.stringify(value), type: 'application/json', name: '', }); } else { formData.append('metadata[]', new Blob([JSON.stringify(value)], { type: 'application/json' }), ''); } }); } if (body['file[]'] !== undefined) { body['file[]'].forEach((value) => { formData.append('file[]', value); }); } const res = await fetch(url, { ...options, method: 'POST', body: formData, }); if (res.status >= 300) { const responseBody = [412].includes(res.status) ? null : await res.text(); const payload = responseBody ? JSON.parse(responseBody) : {}; throw new FetchError(payload, res.status, res.headers); } const responseBody = [204, 205, 304].includes(res.status) ? null : await res.text(); const payload = responseBody ? JSON.parse(responseBody) : {}; return { body: payload, status: res.status, headers: res.headers, }; }; const deleteFile = async (id, options) => { const url = `${baseURL}/files/${id}`; const res = await fetch(url, { ...options, method: 'DELETE', headers: { ...options?.headers, }, }); if (res.status >= 300) { const responseBody = [412].includes(res.status) ? null : await res.text(); const payload = responseBody ? JSON.parse(responseBody) : {}; throw new FetchError(payload, res.status, res.headers); } const payload = undefined; return { body: payload, status: res.status, headers: res.headers, }; }; const getFile = async (id, params, options) => { const encodedParameters = params && Object.entries(params) .flatMap(([key, value]) => { // Default handling (scalars or explode: false) const stringValue = Array.isArray(value) ? value.join(',') : typeof value === 'object' && value !== null ? JSON.stringify(value) : String(value); return [`${key}=${encodeURIComponent(stringValue)}`]; }) .join('&'); const url = encodedParameters ? `${baseURL}/files/${id}?${encodedParameters}` : `${baseURL}/files/${id}`; const res = await fetch(url, { ...options, method: 'GET', headers: { ...options?.headers, }, }); if (res.status >= 300) { const responseBody = [412].includes(res.status) ? null : await res.text(); const payload = responseBody ? JSON.parse(responseBody) : {}; throw new FetchError(payload, res.status, res.headers); } const payload = await res.blob(); return { body: payload, status: res.status, headers: res.headers, }; }; const getFileMetadataHeaders = async (id, params, options) => { const encodedParameters = params && Object.entries(params) .flatMap(([key, value]) => { // Default handling (scalars or explode: false) const stringValue = Array.isArray(value) ? value.join(',') : typeof value === 'object' && value !== null ? JSON.stringify(value) : String(value); return [`${key}=${encodeURIComponent(stringValue)}`]; }) .join('&'); const url = encodedParameters ? `${baseURL}/files/${id}?${encodedParameters}` : `${baseURL}/files/${id}`; const res = await fetch(url, { ...options, method: 'HEAD', headers: { ...options?.headers, }, }); if (res.status >= 300) { const responseBody = [412].includes(res.status) ? null : await res.text(); const payload = responseBody ? JSON.parse(responseBody) : {}; throw new FetchError(payload, res.status, res.headers); } const payload = undefined; return { body: payload, status: res.status, headers: res.headers, }; }; const replaceFile = async (id, body, options) => { const url = `${baseURL}/files/${id}`; const formData = new FormData(); const isReactNative = typeof navigator !== 'undefined' && navigator.product === 'ReactNative'; if (body['metadata'] !== undefined) { if (isReactNative) { formData.append('metadata', { string: JSON.stringify(body['metadata']), type: 'application/json', name: '', }); } else { formData.append('metadata', new Blob([JSON.stringify(body['metadata'])], { type: 'application/json', }), ''); } } if (body['file'] !== undefined) { formData.append('file', body['file']); } const res = await fetch(url, { ...options, method: 'PUT', body: formData, }); if (res.status >= 300) { const responseBody = [412].includes(res.status) ? null : await res.text(); const payload = responseBody ? JSON.parse(responseBody) : {}; throw new FetchError(payload, res.status, res.headers); } const responseBody = [204, 205, 304].includes(res.status) ? null : await res.text(); const payload = responseBody ? JSON.parse(responseBody) : {}; return { body: payload, status: res.status, headers: res.headers, }; }; const getFilePresignedURL = async (id, options) => { const url = `${baseURL}/files/${id}/presignedurl`; const res = await fetch(url, { ...options, method: 'GET', headers: { ...options?.headers, }, }); if (res.status >= 300) { const responseBody = [412].includes(res.status) ? null : await res.text(); const payload = responseBody ? JSON.parse(responseBody) : {}; throw new FetchError(payload, res.status, res.headers); } const responseBody = [204, 205, 304].includes(res.status) ? null : await res.text(); const payload = responseBody ? JSON.parse(responseBody) : {}; return { body: payload, status: res.status, headers: res.headers, }; }; const deleteBrokenMetadata = async (options) => { const url = `${baseURL}/ops/delete-broken-metadata`; const res = await fetch(url, { ...options, method: 'POST', headers: { ...options?.headers, }, }); if (res.status >= 300) { const responseBody = [412].includes(res.status) ? null : await res.text(); const payload = responseBody ? JSON.parse(responseBody) : {}; throw new FetchError(payload, res.status, res.headers); } const responseBody = [204, 205, 304].includes(res.status) ? null : await res.text(); const payload = responseBody ? JSON.parse(responseBody) : {}; return { body: payload, status: res.status, headers: res.headers, }; }; const deleteOrphanedFiles = async (options) => { const url = `${baseURL}/ops/delete-orphans`; const res = await fetch(url, { ...options, method: 'POST', headers: { ...options?.headers, }, }); if (res.status >= 300) { const responseBody = [412].includes(res.status) ? null : await res.text(); const payload = responseBody ? JSON.parse(responseBody) : {}; throw new FetchError(payload, res.status, res.headers); } const responseBody = [204, 205, 304].includes(res.status) ? null : await res.text(); const payload = responseBody ? JSON.parse(responseBody) : {}; return { body: payload, status: res.status, headers: res.headers, }; }; const listBrokenMetadata = async (options) => { const url = `${baseURL}/ops/list-broken-metadata`; const res = await fetch(url, { ...options, method: 'POST', headers: { ...options?.headers, }, }); if (res.status >= 300) { const responseBody = [412].includes(res.status) ? null : await res.text(); const payload = responseBody ? JSON.parse(responseBody) : {}; throw new FetchError(payload, res.status, res.headers); } const responseBody = [204, 205, 304].includes(res.status) ? null : await res.text(); const payload = responseBody ? JSON.parse(responseBody) : {}; return { body: payload, status: res.status, headers: res.headers, }; }; const listFilesNotUploaded = async (options) => { const url = `${baseURL}/ops/list-not-uploaded`; const res = await fetch(url, { ...options, method: 'POST', headers: { ...options?.headers, }, }); if (res.status >= 300) { const responseBody = [412].includes(res.status) ? null : await res.text(); const payload = responseBody ? JSON.parse(responseBody) : {}; throw new FetchError(payload, res.status, res.headers); } const responseBody = [204, 205, 304].includes(res.status) ? null : await res.text(); const payload = responseBody ? JSON.parse(responseBody) : {}; return { body: payload, status: res.status, headers: res.headers, }; }; const listOrphanedFiles = async (options) => { const url = `${baseURL}/ops/list-orphans`; const res = await fetch(url, { ...options, method: 'POST', headers: { ...options?.headers, }, }); if (res.status >= 300) { const responseBody = [412].includes(res.status) ? null : await res.text(); const payload = responseBody ? JSON.parse(responseBody) : {}; throw new FetchError(payload, res.status, res.headers); } const responseBody = [204, 205, 304].includes(res.status) ? null : await res.text(); const payload = responseBody ? JSON.parse(responseBody) : {}; return { body: payload, status: res.status, headers: res.headers, }; }; const getVersion = async (options) => { const url = `${baseURL}/version`; const res = await fetch(url, { ...options, method: 'GET', headers: { ...options?.headers, }, }); if (res.status >= 300) { const responseBody = [412].includes(res.status) ? null : await res.text(); const payload = responseBody ? JSON.parse(responseBody) : {}; throw new FetchError(payload, res.status, res.headers); } const responseBody = [204, 205, 304].includes(res.status) ? null : await res.text(); const payload = responseBody ? JSON.parse(responseBody) : {}; return { body: payload, status: res.status, headers: res.headers, }; }; return { baseURL, pushChainFunction, uploadFiles, deleteFile, getFile, getFileMetadataHeaders, replaceFile, getFilePresignedURL, deleteBrokenMetadata, deleteOrphanedFiles, listBrokenMetadata, listFilesNotUploaded, listOrphanedFiles, getVersion, }; }; //# sourceMappingURL=client.js.map