Files
the_order/packages/storage/src/worm.ts

22 lines
562 B
TypeScript
Raw Normal View History

/**
* WORM (Write Once Read Many) mode storage
*/
import { StorageClient, StorageObject } from './storage';
export class WORMStorage extends StorageClient {
async upload(object: StorageObject): Promise<string> {
// WORM mode: prevent overwrites
const exists = await this.objectExists(object.key);
if (exists) {
throw new Error(`Object ${object.key} already exists in WORM storage`);
}
return super.upload(object);
}
async delete(_key: string): Promise<void> {
throw new Error('Deletion not allowed in WORM mode');
}
}