/* typehints:start */ import { Application } from "../application"; /* typehints:end */ export const FILE_NOT_FOUND = "file_not_found"; export class StorageInterface { constructor(app) { /** @type {Application} */ this.app = app; } /** * Initializes the storage * @returns {Promise} * @abstract */ initialize() { abstract; return Promise.reject(); } /** * Writes a string to a file asynchronously * @param {string} filename * @param {string} contents * @returns {Promise} * @abstract */ writeFileAsync(filename, contents) { abstract; return Promise.reject(); } /** * Reads a string asynchronously. Returns Promise if file was not found. * @param {string} filename * @returns {Promise} * @abstract */ readFileAsync(filename) { abstract; return Promise.reject(); } /** * Tries to delete a file * @param {string} filename * @returns {Promise} */ deleteFileAsync(filename) { // Default implementation does not allow deleting files return Promise.reject(); } }