UNPKG

nebstore-client

Version:
67 lines (66 loc) 2.27 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const form_data_1 = __importDefault(require("form-data")); const ApiClient_1 = require("../ApiClient"); const stream_1 = require("stream"); const buffer_1 = require("buffer"); const validateFileType = (file) => { if (Buffer.isBuffer(file)) { return true; } else if (file instanceof buffer_1.Blob) { return true; } else if (file instanceof stream_1.Readable) { return true; } else { return false; } }; class StorageService { constructor(apiToken) { this.client = new ApiClient_1.ApiClient(apiToken); } async listBuckets(params) { return this.client.post('/buckets/list', params); } async listObjects(bucketName, params) { return this.client.post(`/buckets/${bucketName}/list`, params); } async createBucket(params) { return this.client.post('/buckets', params); } async emptyBucket(bucketName) { return this.client.post(`/buckets/${bucketName}/empty`); } async getBucket(bucketName) { return this.client.get(`/buckets/${bucketName}`); } async uploadObject(bucketName, objectKey, file) { const isCorrectFile = file && validateFileType(file); if (!isCorrectFile) { return { success: false, message: 'Invalid file type: accepted types [Blob, Buffer, ReadableStream]', }; } const formData = new form_data_1.default(); formData.append('object', file); formData.append('objectKey', objectKey); return this.client.uploadFile(`/buckets/${bucketName}/objects`, formData); } async deleteBucket(bucketName) { return this.client.delete(`/buckets/${bucketName}`); } async deleteObject(bucketName, objectKey) { return this.client.delete(`/buckets/${bucketName}/objects/${objectKey}`); } async getObject(bucketName, objectKey) { return this.client.get(`/buckets/${bucketName}/objects/${objectKey}`); } } exports.default = StorageService;