Files
3dverse-testtask/src/services/interfaces.ts
T

49 lines
1.3 KiB
TypeScript

export interface FileMetaData {
path: string;
id: string;
contentSize: number;
}
export interface FileService {
list(): AsyncIterable<FileMetaData>;
createFromFullContent(
path: string,
content: string | Uint8Array,
): Promise<FileMetaData>;
createFromReader(path: string, content: Deno.Reader): Promise<FileMetaData>;
getRawContentByPath(path: string): Promise<Uint8Array | null>;
getContentByPath(path: string): Promise<Deno.Reader | null>;
getContentById(id: string): Promise<Deno.Reader | null>;
getMetaDataByID(id: string): Promise<FileMetaData | null>;
renameById(id: string, newPath: string): Promise<FileMetaData | null>;
renameByPath(
originalPath: string,
newPath: string,
): Promise<FileMetaData | null>;
deleteById(id: string): Promise<boolean>;
}
export interface BlobService {
persistBlob(index: string, content: Uint8Array): Promise<number>;
persistReader(index: string, content: Deno.Reader): Promise<number>;
readAllBlob(index: string): Promise<Uint8Array>;
getBlob(index: string): Deno.Reader;
getNumberOfChunks(index: string): Promise<number>;
}
export type Vector3D = [x: number, y: number, z: number];
export interface WaveFrontService {
scaleAndTranslate(objFile: Deno.Reader, scale: Vector3D, translate: Vector3D): Deno.Reader
}