import { injectable } from 'tsyringe'; import { FSFileObject, FSFileHandlerObject, FSDirectoryHandlerObject, FSGetFileMessage, FSGetFileHandleMessage, FSGetDirectoryHandleMessage, FSWriteFileMessage, } from '../../types/fileSystem'; export const fileSystemServiceToken = 'FileSystemService'; export interface FileSystemRepository { getFile: (data: FSGetFileMessage['data']) => Promise; getFileHandle: ( data: FSGetFileHandleMessage['data'], ) => Promise; getDirectoryHandle: ( data: FSGetDirectoryHandleMessage['data'], ) => Promise; writeFile: (data: FSWriteFileMessage['data']) => Promise; } @injectable() export class FileSystemService { constructor(public service: FileSystemRepository) {} }