mira-storage-sqlite
Version:
SQLite storage implementation for Mira - provides database persistence using SQLite
92 lines • 3.94 kB
TypeScript
import { ILibraryServerData } from './ILibraryServerData';
export declare class LibraryServerDataSQLite implements ILibraryServerData {
private db;
private inTransaction;
private enableHash;
readonly config: Record<string, any>;
constructor(config: Record<string, any>, opts: any);
initialize(): Promise<void>;
createFile(fileData: Record<string, any>): Promise<Record<string, any>>;
updateFile(id: number, fileData: Record<string, any>): Promise<boolean>;
deleteFile(id: number, options?: {
moveToRecycleBin: boolean;
}): Promise<boolean>;
recoverFile(id: number): Promise<boolean>;
getFile(id: number): Promise<Record<string, any> | null>;
getFiles(options?: {
select?: string;
filters?: Record<string, any>;
isUrlFile?: boolean;
}): Promise<{
result: Record<string, any>[];
limit: number;
offset: number;
total: number;
}>;
createFolder(folderData: Record<string, any>): Promise<number>;
updateFolder(id: number, folderData: Record<string, any>): Promise<boolean>;
deleteFolder(id: number): Promise<boolean>;
getFolder(id: number): Promise<Record<string, any> | null>;
findFolderByName(name: string, parentId?: number | null): Promise<Record<string, any> | null>;
getFolders(options?: {
parentId?: number;
limit?: number;
offset?: number;
}): Promise<Record<string, any>[]>;
createTag(tagData: Record<string, any>): Promise<number>;
updateTag(id: number, tagData: Record<string, any>): Promise<boolean>;
deleteTag(id: number): Promise<boolean>;
getTag(id: number): Promise<Record<string, any> | null>;
getTags(options?: {
parentId?: number;
limit?: number;
offset?: number;
}): Promise<Record<string, any>[]>;
beginTransaction(): Promise<void>;
commitTransaction(): Promise<void>;
rollbackTransaction(): Promise<void>;
close(): Promise<void>;
createFileFromPath(filePath: string, fileMeta: Record<string, any>, options?: {
importType: string;
}): Promise<Record<string, any>>;
getFileFolder(fileId: number): Promise<Record<string, any>[]>;
getFileTags(fileId: number): Promise<Record<string, any>[]>;
setFileFolder(fileId: number, folderId: string): Promise<boolean>;
setFileTags(fileId: number, tagIds: string[]): Promise<boolean>;
getAllTags(): Promise<Record<string, any>[]>;
getAllFolders(): Promise<Record<string, any>[]>;
getLibraryId(): string;
getItemPath(item: Record<string, any>): Promise<string>;
getPublicURL(url: string): string;
getItemFilePath(item: Record<string, any>, options?: {
isUrlFile: boolean;
}): Promise<string>;
getItemThumbPath(item: Record<string, any>, options?: {
isUrlFile: boolean;
}): Promise<string>;
private rowToMap;
private calculateFileHashSync;
private handleFile;
private getFolderName;
private executeSql;
private runSql;
getSql(sql: string, params?: any[]): Promise<any[]>;
getLibraryPath(): Promise<string>;
query(sql: string, params?: any[]): Promise<any[]>;
getLibraryInfo(): Promise<Record<string, any>>;
queryFile(query: Record<string, any>, isUrlFile?: boolean): Promise<Record<string, any>[]>;
processingFiles(files: Record<string, any>[], isUrlFile?: boolean): Promise<{
thumb: string;
path: string;
}[]>;
queryFolder(query: Record<string, any>): Promise<Record<string, any>[]>;
queryLibrary(query: Record<string, any>): Promise<Record<string, any>>;
createLibrary(data: Record<string, any>): Promise<Record<string, any>>;
closeLibrary(): Promise<boolean>;
queryTag(query: Record<string, any>): Promise<Record<string, any>[]>;
getStats(): Promise<{
totalFiles: number;
totalSize: number;
}>;
}
//# sourceMappingURL=LibraryServerDataSQLite.d.ts.map