UNPKG

wildboar-context

Version:

Library for constructing context objects for pure functional programming.

61 lines 2.83 kB
/// <reference types="node" /> import Plugin from "../Plugin"; import PluginKind from "../PluginKind"; import type { Readable } from "stream"; export interface StorageObjectID { key: string; version?: string; } export interface StorageObjectInfo extends StorageObjectID { lastModified?: Date; sizeInBytes?: number; storageClass?: string; owner?: string; etag?: string; } export interface BucketID { name: string; } export interface BucketInfo extends BucketID { versioning?: boolean; } export interface StorageObjectPermissions { create: boolean; read: boolean; update: boolean; delete: boolean; append: boolean; createVersion: boolean; readVersion: boolean; deleteVersion: boolean; readTags: boolean; writeTags: boolean; } export interface PresignedURLOptions { httpsOnly?: boolean; startDate?: Date; endDate?: Date; permissions?: Partial<StorageObjectPermissions>; } export declare type Tags = Record<string, string>; export default abstract class StoragePlugin extends Plugin { readonly kind: PluginKind.StoragePlugin; abstract checkBucket(bucketName: string): Promise<boolean>; abstract checkObject(bucketName: string, oid: StorageObjectID): Promise<boolean>; abstract copyObject(bucketName: string, srcOID: StorageObjectID, destOID: StorageObjectID, overwrite?: boolean): Promise<void>; abstract createBucket(bucketName: string, options?: Record<string, string>): Promise<void>; abstract deleteBucket(bucketName: string): Promise<void>; abstract deleteObject(bucketName: string, oid: StorageObjectID): Promise<void>; abstract deleteObjects(bucketName: string, objects: StorageObjectInfo[]): Promise<void>; abstract deleteObjectTagging(bucketName: string, oid: StorageObjectID): Promise<void>; abstract getObject(bucketName: string, oid: StorageObjectID): Promise<Buffer>; abstract getObjectTagging(bucketName: string, oid: StorageObjectID): Promise<Tags>; abstract getPresignedURL(bucketName: string, oid: StorageObjectID | undefined, options: PresignedURLOptions): Promise<string>; abstract listBuckets(): Promise<AsyncIterableIterator<BucketInfo>>; abstract listObjects(bucketName: string, prefix?: string): Promise<AsyncIterableIterator<StorageObjectInfo>>; abstract listObjectVersions(bucketName: string, oid: StorageObjectID): Promise<AsyncIterableIterator<StorageObjectInfo>>; abstract putObject(bucketName: string, oid: StorageObjectID, content: Buffer | Readable): Promise<void>; abstract putObjectTagging(bucketName: string, oid: StorageObjectID, tags: Tags): Promise<void>; abstract urlOf(bucketName: string, oid: StorageObjectID): Promise<string>; } //# sourceMappingURL=StoragePlugin.d.ts.map