UNPKG

@flystorage/file-storage

Version:

File-storage abstraction: multiple filesystems, one API.

154 lines (153 loc) 9.55 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.UnableToListDirectory = exports.UnableToCheckDirectoryExistence = exports.UnableToCheckFileExistence = exports.UnableToDeleteFile = exports.UnableToDeleteDirectory = exports.UnableToCreateDirectory = exports.UnableToGetStat = exports.UnableToMoveFile = exports.UnableToCopyFile = exports.UnableToPrepareUploadRequest = exports.UnableToGetTemporaryUrl = exports.UnableToGetPublicUrl = exports.UnableToGetVisibility = exports.UnableToSetVisibility = exports.FileWasNotFound = exports.UnableToReadFile = exports.UnableToWriteFile = exports.UnableToGetFileSize = exports.UnableToGetLastModified = exports.UnableToGetMimeType = exports.UnableToGetChecksum = exports.ChecksumIsNotAvailable = exports.FlystorageError = void 0; exports.errorToMessage = errorToMessage; exports.isFileWasNotFound = isFileWasNotFound; function errorToMessage(error) { return error instanceof Error ? error.message : String(error); } class FlystorageError extends Error { context; code = 'unknown_error'; constructor(message, context = {}, cause = undefined) { const options = cause === undefined ? undefined : { cause }; // @ts-ignore TS2554 super(message, options); this.context = context; } } exports.FlystorageError = FlystorageError; /** * Thrown when the checksum algo is not supported or not pre-computed. This error * is thrown with the intention of falling back to computing it based on a file read. */ class ChecksumIsNotAvailable extends FlystorageError { algo; code = 'flystorage.checksum_not_supported'; constructor(message, algo, context = {}, cause = undefined) { super(message, context, cause); this.algo = algo; } static checksumNotSupported = (algo, { context = {}, cause = undefined } = {}) => new ChecksumIsNotAvailable(`Checksum algo "${algo}" is not supported`, algo, { ...context, algo }, cause); static isErrorOfType(error) { return (typeof error === 'object' && error.code === 'flystorage.checksum_not_supported'); } } exports.ChecksumIsNotAvailable = ChecksumIsNotAvailable; class UnableToGetChecksum extends FlystorageError { code = 'flystorage.unable_to_get_checksum'; static because = (reason, { context = {}, cause = undefined }) => new UnableToGetChecksum(`Unable to get checksum for file. Reason: ${reason}`, context, cause); } exports.UnableToGetChecksum = UnableToGetChecksum; class UnableToGetMimeType extends FlystorageError { code = 'flystorage.unable_to_get_mimetype'; static because = (reason, { context = {}, cause = undefined }) => new UnableToGetMimeType(`Unable to get mime-type. Reason: ${reason}`, context, cause); } exports.UnableToGetMimeType = UnableToGetMimeType; class UnableToGetLastModified extends FlystorageError { code = 'flystorage.unable_to_get_last_modified'; static because = (reason, { context = {}, cause = undefined }) => new UnableToGetLastModified(`Unable to get last modified. Reason: ${reason}`, context, cause); } exports.UnableToGetLastModified = UnableToGetLastModified; class UnableToGetFileSize extends FlystorageError { code = 'flystorage.unable_to_get_file_size'; static because = (reason, { context = {}, cause = undefined }) => new UnableToGetFileSize(`Unable to get file size. Reason: ${reason}`, context, cause); } exports.UnableToGetFileSize = UnableToGetFileSize; class UnableToWriteFile extends FlystorageError { code = 'flystorage.unable_to_write_file'; static because = (reason, { context = {}, cause = undefined }) => new UnableToWriteFile(`Unable to write the file. Reason: ${reason}`, context, cause); } exports.UnableToWriteFile = UnableToWriteFile; class UnableToReadFile extends FlystorageError { wasFileNotFound; context; code = 'flystorage.unable_to_read_file'; constructor(wasFileNotFound, message, context = {}, cause = undefined) { super(message, context, cause); this.wasFileNotFound = wasFileNotFound; this.context = context; } static because = (reason, { context = {}, cause = undefined }) => new UnableToReadFile(false, `Unable to read the file. Reason: ${reason}`, context, cause); static becauseFileWasNotFound = (error) => new UnableToReadFile(true, `Unable to read the file. Reason: ${error.message}`, error.context, error); } exports.UnableToReadFile = UnableToReadFile; class FileWasNotFound extends FlystorageError { code = 'flystorage.file_was_not_found'; static atLocation = (location, { context = {}, cause = undefined }) => new FileWasNotFound(`File was not found at location: ${location}`, context, cause); } exports.FileWasNotFound = FileWasNotFound; function isFileWasNotFound(error) { return (typeof error === 'object' && error.code === 'flystorage.file_was_not_found'); } class UnableToSetVisibility extends FlystorageError { code = 'flystorage.unable_to_set_visibility'; static because = (reason, { context = {}, cause = undefined }) => new UnableToSetVisibility(`Unable to set visibility. Reason: ${reason}`, context, cause); } exports.UnableToSetVisibility = UnableToSetVisibility; class UnableToGetVisibility extends FlystorageError { code = 'flystorage.unable_to_get_visibility'; static because = (reason, { context = {}, cause = undefined }) => new UnableToGetVisibility(`Unable to get visibility. Reason: ${reason}`, context, cause); } exports.UnableToGetVisibility = UnableToGetVisibility; class UnableToGetPublicUrl extends FlystorageError { code = 'flystorage.unable_to_get_public_url'; static because = (reason, { context = {}, cause = undefined }) => new UnableToGetPublicUrl(`Unable to get public URL. Reason: ${reason}`, context, cause); } exports.UnableToGetPublicUrl = UnableToGetPublicUrl; class UnableToGetTemporaryUrl extends FlystorageError { code = 'flystorage.unable_to_get_temporary_url'; static because = (reason, { context = {}, cause = undefined }) => new UnableToGetTemporaryUrl(`Unable to get temporary URL. Reason: ${reason}`, context, cause); } exports.UnableToGetTemporaryUrl = UnableToGetTemporaryUrl; class UnableToPrepareUploadRequest extends FlystorageError { code = 'flystorage.unable_to_prepare_upload_request'; static because = (reason, { context = {}, cause = undefined }) => new UnableToGetTemporaryUrl(`Unable to prepare upload request. Reason: ${reason}`, context, cause); } exports.UnableToPrepareUploadRequest = UnableToPrepareUploadRequest; class UnableToCopyFile extends FlystorageError { code = 'flystorage.unable_to_copy_file'; static because = (reason, { context = {}, cause = undefined }) => new UnableToCopyFile(`Unable to copy file. Reason: ${reason}`, context, cause); } exports.UnableToCopyFile = UnableToCopyFile; class UnableToMoveFile extends FlystorageError { code = 'flystorage.unable_to_move_file'; static because = (reason, { context = {}, cause = undefined }) => new UnableToMoveFile(`Unable to move file. Reason: ${reason}`, context, cause); } exports.UnableToMoveFile = UnableToMoveFile; class UnableToGetStat extends FlystorageError { code = 'flystorage.unable_to_get_stat'; static because = (reason, { context = {}, cause = undefined }) => new UnableToGetStat(`Unable to get stat. Reason: ${reason}`, context, cause); static noFileStatResolved = ({ context = {}, cause = undefined }) => new UnableToGetStat(`Stat was not a file.`, context, cause); } exports.UnableToGetStat = UnableToGetStat; class UnableToCreateDirectory extends FlystorageError { code = 'flystorage.unable_to_create_directory'; static because = (reason, { context = {}, cause = undefined }) => new UnableToCreateDirectory(`Unable to create directory. Reason: ${reason}`, context, cause); } exports.UnableToCreateDirectory = UnableToCreateDirectory; class UnableToDeleteDirectory extends FlystorageError { code = 'flystorage.unable_to_delete_directory'; static because = (reason, { context = {}, cause = undefined }) => new UnableToDeleteDirectory(`Unable to delete directory. Reason: ${reason}`, context, cause); } exports.UnableToDeleteDirectory = UnableToDeleteDirectory; class UnableToDeleteFile extends FlystorageError { code = 'flystorage.unable_to_delete_file'; static because = (reason, { context = {}, cause = undefined }) => new UnableToDeleteFile(`Unable to delete file. Reason: ${reason}`, context, cause); } exports.UnableToDeleteFile = UnableToDeleteFile; class UnableToCheckFileExistence extends FlystorageError { code = 'flystorage.unable_to_check_file_existence'; static because = (reason, { context = {}, cause = undefined }) => new UnableToCheckFileExistence(`Unable to check file existence. Reason: ${reason}`, context, cause); } exports.UnableToCheckFileExistence = UnableToCheckFileExistence; class UnableToCheckDirectoryExistence extends FlystorageError { code = 'flystorage.unable_to_check_directory_existence'; static because = (reason, { context = {}, cause = undefined }) => new UnableToCheckDirectoryExistence(`Unable to check directory existence. Reason: ${reason}`, context, cause); } exports.UnableToCheckDirectoryExistence = UnableToCheckDirectoryExistence; class UnableToListDirectory extends FlystorageError { code = 'flystorage.unable_to_list_directory_contents'; static because = (reason, { context = {}, cause = undefined }) => new UnableToListDirectory(`Unable to list directory contents. Reason: ${reason}`, context, cause); } exports.UnableToListDirectory = UnableToListDirectory;