evelodb
Version:
An awesome local database management system with nodejs. Made by Evelocore. With B-tree Operations.
106 lines (92 loc) • 3.59 kB
TypeScript
// evelodb.d.ts
import { ObjectId } from "bson";
export interface EveloDBConfig {
directory?: string;
extension?: string;
tabspace?: number;
encode?: "json" | "bson";
encryption?: string | null;
encryptionKey?: string | null;
noRepeat?: boolean;
autoPrimaryKey?: boolean | string;
objectId?: boolean;
}
export interface ReadImageConfig {
returnBase64?: boolean;
quality?: number;
pixels?: number;
blackAndWhite?: boolean;
mirror?: boolean;
upToDown?: boolean;
invert?: boolean;
brightness?: number;
contrast?: number;
maxWidth?: number | null;
maxHeight?: number | null;
}
export interface AnalyseResponse<T = any> {
indexes: number[];
reason: string;
message: string;
data: T[];
}
export class QueryResult<T = any> {
constructor(data: T[]);
getList(offset?: number, limit?: number): T[];
count(): number;
sort(compareFn: (a: T, b: T) => number): QueryResult<T>;
all(): T[];
}
export default class eveloDB {
constructor(config?: EveloDBConfig);
encrypt(data: any): any;
decrypt(data: any): any;
encodeData(data: any): string | Buffer;
decodeData(data: any): any;
generateKey(length: number): string;
generateUniqueId(): string | ObjectId;
getFilePath(collection: string): string;
create(collection: string, data: object): { success: boolean; [key: string]: any };
delete(collection: string, conditions: object): { success: boolean; deletedCount: number } | { err: any };
inject(collection: string, data: any): { success: boolean };
writeData(collection: string, data: any): { success: boolean };
find(collection: string, conditions: object): QueryResult<any>;
findOne(collection: string, conditions: object): any | null;
search(collection: string, conditions: object): QueryResult<any>;
get(collection: string): QueryResult<any>;
readData(collection: string): any;
count(collection: string): { success: boolean; count?: number; err?: string };
check(collection: string, data: object): boolean;
edit(collection: string, conditions: object, newData: object): { success: boolean; modifiedCount: number } | { err: any };
drop(collection: string): { success: boolean } | { err: any };
reset(collection: string): { success: boolean } | { err: any };
changeConfig(params: {
from: EveloDBConfig;
to: EveloDBConfig;
collections?: string[];
}): { success: boolean; converted: number; failed: number };
analyse(params: {
collection?: string;
filter?: object;
data?: any[];
model: string;
apiKey: string;
query: string;
}): Promise<{ success: boolean; response?: AnalyseResponse; err?: string }>;
rebuildBTree(collection: string): any;
getAllFromBTree(): any[];
writeFile(name: string, data: Buffer): { success: boolean } | { err: string };
allFiles(): string[];
readFile(name: string): { success: boolean; data: Buffer } | { err: string; code?: number };
readImage(name: string, config?: ReadImageConfig): Promise<{
success: boolean;
data: any;
metadata: {
filename: string;
extension: string;
originalSize: number;
processingApplied: Record<string, boolean>;
};
} | { err: string; code?: string }>;
deleteFile(name: string): { success: boolean } | { err: string; code?: number };
}