gitdb-database
Version:
A production-ready CLI tool for managing a NoSQL database using GitHub repositories as storage
54 lines • 2.3 kB
TypeScript
import { Octokit } from '@octokit/rest';
export interface DatabaseConfig {
token: string;
owner: string;
repo: string;
}
export interface DatabaseConnection {
octokit: Octokit;
owner: string;
repo: string;
isConnected: boolean;
}
export declare class DatabaseManager {
private connection;
private config;
connect(config: DatabaseConfig): Promise<DatabaseConnection>;
disconnect(): Promise<void>;
getConnection(): DatabaseConnection | null;
isConnected(): boolean;
ensureConnected(): Promise<DatabaseConnection>;
initializeDatabase(): Promise<void>;
createCollection(name: string): Promise<void>;
listCollections(): Promise<string[]>;
deleteCollection(name: string): Promise<void>;
createDocument(collection: string, data: any): Promise<any>;
readDocument(collection: string, id: string): Promise<any>;
updateDocument(collection: string, id: string, data: any): Promise<any>;
deleteDocument(collection: string, id: string): Promise<boolean>;
listDocuments(collection: string): Promise<string[]>;
findDocuments(collection: string, query: any): Promise<any[]>;
findOne(collection: string, query: any): Promise<any | null>;
find(collection: string, query: any, limit?: number): Promise<any[]>;
count(collection: string, query?: any): Promise<number>;
updateMany(collection: string, query: any, update: any): Promise<number>;
deleteMany(collection: string, query: any): Promise<number>;
distinct(collection: string, field: string, query?: any): Promise<any[]>;
insertMany(collection: string, documents: any[]): Promise<number>;
findAll(collection: string): Promise<any[]>;
getCommitHistory(collection: string): Promise<Array<{
sha: string;
message: string;
date: string;
}>>;
rollbackToVersion(collection: string, version: string): Promise<void>;
rollbackToCommit(collection: string, commitSha: string): Promise<void>;
rollbackToPrevious(collection: string): Promise<void>;
enableSuperMode(): Promise<void>;
disableSuperMode(): Promise<void>;
getCollections(): Promise<string[]>;
private generateId;
private matchesQuery;
}
export declare const databaseManager: DatabaseManager;
//# sourceMappingURL=database.d.ts.map