UNPKG

imagekit

Version:

Offical NodeJS SDK for ImageKit.io integration

503 lines (502 loc) 18.2 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var lodash_1 = require("lodash"); /* Constants */ var errorMessages_1 = __importDefault(require("../constants/errorMessages")); /* Utils */ var respond_1 = __importDefault(require("../../utils/respond")); var request_1 = __importDefault(require("../../utils/request")); /* Delete a file */ var deleteFile = function (fileId, defaultOptions, callback) { if (!fileId) { (0, respond_1.default)(true, errorMessages_1.default.FILE_ID_MISSING, callback); return; } var requestOptions = { url: "https://api.imagekit.io/v1/files/" + fileId, method: "DELETE" }; (0, request_1.default)(requestOptions, defaultOptions, callback); }; /* Delete a file version */ var deleteFileVersion = function (deleteFileVersionOptions, defaultOptions, callback) { var _a = deleteFileVersionOptions || {}, fileId = _a.fileId, versionId = _a.versionId; if (!fileId) { (0, respond_1.default)(true, errorMessages_1.default.FILE_ID_MISSING, callback); return; } if (!versionId) { (0, respond_1.default)(true, errorMessages_1.default.FILE_VERSION_ID_MISSING, callback); return; } var requestOptions = { url: "https://api.imagekit.io/v1/files/".concat(fileId, "/versions/").concat(versionId), method: "DELETE" }; (0, request_1.default)(requestOptions, defaultOptions, callback); }; /* Restore a file version as the current version */ var restoreFileVersion = function (restoreFileVersionOptions, defaultOptions, callback) { var _a = restoreFileVersionOptions || {}, fileId = _a.fileId, versionId = _a.versionId; if (!fileId) { (0, respond_1.default)(true, errorMessages_1.default.FILE_ID_MISSING, callback); return; } if (!versionId) { (0, respond_1.default)(true, errorMessages_1.default.FILE_VERSION_ID_MISSING, callback); return; } var requestOptions = { url: "https://api.imagekit.io/v1/files/".concat(fileId, "/versions/").concat(versionId, "/restore"), method: "PUT" }; (0, request_1.default)(requestOptions, defaultOptions, callback); }; /* Get Metadata of a file */ var getMetadata = function (fileIdOrURL, defaultOptions, callback) { if (!fileIdOrURL || fileIdOrURL.trim() == "") { (0, respond_1.default)(true, errorMessages_1.default.FILE_ID_OR_URL_MISSING, callback); return; } var requestOptions = { url: "https://api.imagekit.io/v1/files/" + fileIdOrURL + "/metadata", method: "GET" }; // In case of URL change the endopint if (fileIdOrURL.indexOf("http") === 0) { requestOptions = { url: "https://api.imagekit.io/v1/metadata?url=".concat(fileIdOrURL), method: "GET" }; } (0, request_1.default)(requestOptions, defaultOptions, callback); }; /* Get Details of a file */ var getDetails = function (fileId, defaultOptions, callback) { if (!fileId) { (0, respond_1.default)(true, errorMessages_1.default.FILE_ID_MISSING, callback); return; } var requestOptions = { url: "https://api.imagekit.io/v1/files/" + fileId + "/details", method: "GET" }; (0, request_1.default)(requestOptions, defaultOptions, callback); }; /* Get Details of a file version */ var getFileVersionDetails = function (fileDetailsOptions, defaultOptions, callback) { var _a = fileDetailsOptions || {}, fileId = _a.fileId, versionId = _a.versionId; if (!fileId) { (0, respond_1.default)(true, errorMessages_1.default.FILE_ID_MISSING, callback); return; } if (!versionId) { (0, respond_1.default)(true, errorMessages_1.default.FILE_VERSION_ID_MISSING, callback); return; } var requestOptions = { url: "https://api.imagekit.io/v1/files/".concat(fileId, "/versions/").concat(versionId), method: "GET" }; (0, request_1.default)(requestOptions, defaultOptions, callback); }; /* Update file details */ var updateDetails = function (fileId, updateData, defaultOptions, callback) { if (!fileId) { (0, respond_1.default)(true, errorMessages_1.default.FILE_ID_MISSING, callback); return; } if (!(0, lodash_1.isObject)(updateData)) { (0, respond_1.default)(true, errorMessages_1.default.UPDATE_DATA_MISSING, callback); return; } var data = {}; data = { tags: updateData.tags, customCoordinates: updateData.customCoordinates, extensions: updateData.extensions, webhookUrl: updateData.webhookUrl, customMetadata: updateData.customMetadata, }; if (updateData.publish) data = __assign(__assign({}, data), { publish: updateData.publish }); var requestOptions = { url: "https://api.imagekit.io/v1/files/" + fileId + "/details", method: "PATCH", json: data, }; (0, request_1.default)(requestOptions, defaultOptions, callback); }; /* List files */ var listFiles = function (listOptions, defaultOptions, callback) { if (listOptions && !(0, lodash_1.isObject)(listOptions)) { (0, respond_1.default)(true, errorMessages_1.default.INVALID_LIST_OPTIONS, callback); return; } if (listOptions && listOptions.tags && Array.isArray(listOptions.tags) && listOptions.tags.length) { listOptions.tags = listOptions.tags.join(","); } var requestOptions = { url: "https://api.imagekit.io/v1/files/", method: "GET", qs: listOptions || {} }; (0, request_1.default)(requestOptions, defaultOptions, callback); }; /* Get all versions of an asset */ var getFilesVersions = function (fileId, defaultOptions, callback) { if (!fileId) { (0, respond_1.default)(true, errorMessages_1.default.FILE_ID_MISSING, callback); return; } var requestOptions = { url: "https://api.imagekit.io/v1/files/".concat(fileId, "/versions"), method: "GET" }; (0, request_1.default)(requestOptions, defaultOptions, callback); }; /* Bulk Delete By FileIds */ var bulkDeleteFiles = function (fileIdArray, defaultOptions, callback) { if (!Array.isArray(fileIdArray) || fileIdArray.length === 0 || fileIdArray.filter(function (fileId) { return typeof fileId !== "string"; }).length > 0) { (0, respond_1.default)(true, errorMessages_1.default.INVALID_FILEIDS_VALUE, callback); return; } var data = { fileIds: fileIdArray, }; var requestOptions = { url: "https://api.imagekit.io/v1/files/batch/deleteByFileIds", method: "POST", json: data, }; (0, request_1.default)(requestOptions, defaultOptions, callback); }; /* Add tags in bulk */ var bulkAddTags = function (fileIdArray, tags, defaultOptions, callback) { if (!Array.isArray(fileIdArray) || fileIdArray.length === 0 || fileIdArray.filter(function (fileId) { return typeof fileId !== "string"; }).length > 0) { (0, respond_1.default)(true, errorMessages_1.default.INVALID_FILEIDS_VALUE, callback); return; } if (!Array.isArray(tags) || tags.length === 0 || tags.filter(function (tag) { return typeof tag !== "string"; }).length > 0) { (0, respond_1.default)(true, errorMessages_1.default.BULK_ADD_TAGS_INVALID, callback); return; } var data = { fileIds: fileIdArray, tags: tags, }; var requestOptions = { url: "https://api.imagekit.io/v1/files/addTags", method: "POST", json: data, }; (0, request_1.default)(requestOptions, defaultOptions, callback); }; /* Remove tags in bulk */ var bulkRemoveTags = function (fileIdArray, tags, defaultOptions, callback) { if (!Array.isArray(fileIdArray) || fileIdArray.length === 0 || fileIdArray.filter(function (fileId) { return typeof fileId !== "string"; }).length > 0) { (0, respond_1.default)(true, errorMessages_1.default.INVALID_FILEIDS_VALUE, callback); return; } if (!Array.isArray(tags) || tags.length === 0 || tags.filter(function (tag) { return typeof tag !== "string"; }).length > 0) { (0, respond_1.default)(true, errorMessages_1.default.BULK_ADD_TAGS_INVALID, callback); return; } var data = { fileIds: fileIdArray, tags: tags, }; var requestOptions = { url: "https://api.imagekit.io/v1/files/removeTags", method: "POST", json: data, }; (0, request_1.default)(requestOptions, defaultOptions, callback); }; /* Remove AI tags in bulk */ var bulkRemoveAITags = function (fileIdArray, tags, defaultOptions, callback) { if (!Array.isArray(fileIdArray) || fileIdArray.length === 0 || fileIdArray.filter(function (fileId) { return typeof fileId !== "string"; }).length > 0) { (0, respond_1.default)(true, errorMessages_1.default.INVALID_FILEIDS_VALUE, callback); return; } if (!Array.isArray(tags) || tags.length === 0 || tags.filter(function (tag) { return typeof tag !== "string"; }).length > 0) { (0, respond_1.default)(true, errorMessages_1.default.BULK_ADD_TAGS_INVALID, callback); return; } var data = { fileIds: fileIdArray, AITags: tags, }; var requestOptions = { url: "https://api.imagekit.io/v1/files/removeAITags", method: "POST", json: data, }; (0, request_1.default)(requestOptions, defaultOptions, callback); }; /* Copy file */ var copyFile = function (copyFileOptions, defaultOptions, callback) { var sourceFilePath = copyFileOptions.sourceFilePath, destinationPath = copyFileOptions.destinationPath, _a = copyFileOptions.includeFileVersions, includeFileVersions = _a === void 0 ? false : _a; if (typeof sourceFilePath !== "string" || sourceFilePath.length === 0) { (0, respond_1.default)(true, errorMessages_1.default.INVALID_SOURCE_FILE_PATH, callback); return; } if (typeof destinationPath !== "string" || destinationPath.length === 0) { (0, respond_1.default)(true, errorMessages_1.default.INVALID_DESTINATION_FOLDER_PATH, callback); return; } if (typeof includeFileVersions !== "boolean") { (0, respond_1.default)(true, errorMessages_1.default.INVALID_INCLUDE_VERSION, callback); return; } var data = { sourceFilePath: sourceFilePath, destinationPath: destinationPath, includeFileVersions: includeFileVersions }; var requestOptions = { url: "https://api.imagekit.io/v1/files/copy", method: "POST", json: data, }; (0, request_1.default)(requestOptions, defaultOptions, callback); }; /* Move file */ var moveFile = function (moveFileOptions, defaultOptions, callback) { var sourceFilePath = moveFileOptions.sourceFilePath, destinationPath = moveFileOptions.destinationPath; if (typeof sourceFilePath !== "string" || sourceFilePath.length === 0) { (0, respond_1.default)(true, errorMessages_1.default.INVALID_SOURCE_FILE_PATH, callback); return; } if (typeof destinationPath !== "string" || destinationPath.length === 0) { (0, respond_1.default)(true, errorMessages_1.default.INVALID_DESTINATION_FOLDER_PATH, callback); return; } var data = { sourceFilePath: sourceFilePath, destinationPath: destinationPath }; var requestOptions = { url: "https://api.imagekit.io/v1/files/move", method: "POST", json: data, }; (0, request_1.default)(requestOptions, defaultOptions, callback); }; /* Rename file */ var renameFile = function (renameFileOptions, defaultOptions, callback) { var filePath = renameFileOptions.filePath, newFileName = renameFileOptions.newFileName, _a = renameFileOptions.purgeCache, purgeCache = _a === void 0 ? false : _a; if (typeof filePath !== "string" || filePath.length === 0) { (0, respond_1.default)(true, errorMessages_1.default.INVALID_FILE_PATH, callback); return; } if (typeof newFileName !== "string" || newFileName.length === 0) { (0, respond_1.default)(true, errorMessages_1.default.INVALID_NEW_FILE_NAME, callback); return; } if (typeof purgeCache !== "boolean") { (0, respond_1.default)(true, errorMessages_1.default.INVALID_PURGE_CACHE, callback); return; } var data = { filePath: filePath, newFileName: newFileName, purgeCache: purgeCache }; var requestOptions = { url: "https://api.imagekit.io/v1/files/rename", method: "PUT", json: data, }; (0, request_1.default)(requestOptions, defaultOptions, callback); }; /* Copy Folder */ var copyFolder = function (copyFolderOptions, defaultOptions, callback) { var sourceFolderPath = copyFolderOptions.sourceFolderPath, destinationPath = copyFolderOptions.destinationPath, _a = copyFolderOptions.includeFileVersions, includeFileVersions = _a === void 0 ? false : _a; if (typeof sourceFolderPath !== "string" || sourceFolderPath.length === 0) { (0, respond_1.default)(true, errorMessages_1.default.INVALID_SOURCE_FOLDER_PATH, callback); return; } if (typeof destinationPath !== "string" || destinationPath.length === 0) { (0, respond_1.default)(true, errorMessages_1.default.INVALID_DESTINATION_FOLDER_PATH, callback); return; } if (typeof includeFileVersions !== "boolean") { (0, respond_1.default)(true, errorMessages_1.default.INVALID_INCLUDE_VERSION, callback); return; } var data = { sourceFolderPath: sourceFolderPath, destinationPath: destinationPath, includeFileVersions: includeFileVersions }; var requestOptions = { url: "https://api.imagekit.io/v1/bulkJobs/copyFolder", method: "POST", json: data, }; (0, request_1.default)(requestOptions, defaultOptions, callback); }; /* Move Folder */ var moveFolder = function (moveFolderOptions, defaultOptions, callback) { var sourceFolderPath = moveFolderOptions.sourceFolderPath, destinationPath = moveFolderOptions.destinationPath; if (typeof sourceFolderPath !== "string" || sourceFolderPath.length === 0) { (0, respond_1.default)(true, errorMessages_1.default.INVALID_SOURCE_FOLDER_PATH, callback); return; } if (typeof destinationPath !== "string" || destinationPath.length === 0) { (0, respond_1.default)(true, errorMessages_1.default.INVALID_DESTINATION_FOLDER_PATH, callback); return; } var data = { sourceFolderPath: sourceFolderPath, destinationPath: destinationPath, }; var requestOptions = { url: "https://api.imagekit.io/v1/bulkJobs/moveFolder", method: "POST", json: data, }; (0, request_1.default)(requestOptions, defaultOptions, callback); }; /* Create folder */ var createFolder = function (createFolderOptions, defaultOptions, callback) { var folderName = createFolderOptions.folderName, parentFolderPath = createFolderOptions.parentFolderPath; if (typeof folderName !== "string" || folderName.length === 0) { (0, respond_1.default)(true, errorMessages_1.default.INVALID_FOLDER_NAME, callback); return; } if (typeof parentFolderPath !== "string" || parentFolderPath.length === 0) { (0, respond_1.default)(true, errorMessages_1.default.INVALID_PARENT_FOLDER_PATH, callback); return; } var data = { folderName: folderName, parentFolderPath: parentFolderPath, }; var requestOptions = { url: "https://api.imagekit.io/v1/folder", method: "POST", json: data, }; (0, request_1.default)(requestOptions, defaultOptions, callback); }; /* Delete folder */ var deleteFolder = function (folderPath, defaultOptions, callback) { if (typeof folderPath !== "string" || folderPath.length === 0) { (0, respond_1.default)(true, errorMessages_1.default.INVALID_FOLDER_PATH, callback); return; } var data = { folderPath: folderPath, }; var requestOptions = { url: "https://api.imagekit.io/v1/folder", method: "DELETE", json: data, }; (0, request_1.default)(requestOptions, defaultOptions, callback); }; /* Bulk job status */ var getBulkJobStatus = function (jobId, defaultOptions, callback) { if (!jobId) { (0, respond_1.default)(true, errorMessages_1.default.JOB_ID_MISSING, callback); return; } var requestOptions = { url: "https://api.imagekit.io/v1/bulkJobs/" + jobId, method: "GET" }; (0, request_1.default)(requestOptions, defaultOptions, callback); }; exports.default = { deleteFile: deleteFile, getMetadata: getMetadata, getDetails: getDetails, getFileVersionDetails: getFileVersionDetails, updateDetails: updateDetails, listFiles: listFiles, getFilesVersions: getFilesVersions, bulkDeleteFiles: bulkDeleteFiles, deleteFileVersion: deleteFileVersion, restoreFileVersion: restoreFileVersion, bulkAddTags: bulkAddTags, bulkRemoveTags: bulkRemoveTags, bulkRemoveAITags: bulkRemoveAITags, copyFile: copyFile, moveFile: moveFile, renameFile: renameFile, copyFolder: copyFolder, moveFolder: moveFolder, createFolder: createFolder, deleteFolder: deleteFolder, getBulkJobStatus: getBulkJobStatus, };