diff --git a/src/Databases/IndexedDb.Storage.ts b/src/Databases/IndexedDb.Storage.ts index f4da9c5..042ae40 100644 --- a/src/Databases/IndexedDb.Storage.ts +++ b/src/Databases/IndexedDb.Storage.ts @@ -30,7 +30,11 @@ export class IndexedDbStorage extends Stora #db?: IDBPDatabase; - constructor(name: string, promise: Promise, readonly log: DBLogger) { + constructor( + name: string, + promise: Promise, + readonly log: DBLogger + ) { super(name); this.#promise = promise; } @@ -124,7 +128,7 @@ export class IndexedDbStorage extends Stora } const indexes = this.#resolveIndexes(filter); - let cursor = new Query(filter).find(await this.#getAll({ ...options, ...indexes })); + let cursor = new Query(filter).find(await this.#getAll({ ...options, ...indexes })); if (options !== undefined) { cursor = addOptions(cursor, options); } diff --git a/src/Databases/MemoryDb.Storage.ts b/src/Databases/MemoryDb.Storage.ts index 68036d0..f1df5e1 100644 --- a/src/Databases/MemoryDb.Storage.ts +++ b/src/Databases/MemoryDb.Storage.ts @@ -55,7 +55,7 @@ export class MemoryStorage extends Storage< } async find(filter?: Filter>, options?: Options): Promise[]> { - let cursor = new Query(filter ?? {}).find(Array.from(this.#documents.values())); + let cursor = new Query(filter ?? {}).find(Array.from(this.#documents.values())); if (options !== undefined) { cursor = addOptions(cursor, options); } diff --git a/src/Databases/MemoryDb.ts b/src/Databases/MemoryDb.ts index c4a556e..8d0a6e2 100644 --- a/src/Databases/MemoryDb.ts +++ b/src/Databases/MemoryDb.ts @@ -3,11 +3,18 @@ import { Document } from "../Types.js"; import { MemoryStorage } from "./MemoryDb.Storage.js"; import { Registrars } from "./Registrars.js"; +type Options = { + name: string; + registrars: Registrars[]; +}; + export class MemoryDatabase> { + readonly name: string; readonly #collections = new Map>(); - register(registrars: Registrars[]): void { - for (const { name } of registrars) { + constructor(readonly options: Options) { + this.name = options.name; + for (const { name } of options.registrars) { this.#collections.set(name, new Collection(name, new MemoryStorage(name))); } } diff --git a/src/Databases/Observer.Storage.ts b/src/Databases/Observer.Storage.ts index e839957..d74451f 100644 --- a/src/Databases/Observer.Storage.ts +++ b/src/Databases/Observer.Storage.ts @@ -51,7 +51,7 @@ export class ObserverStorage extends Storag } async find(filter?: Filter>, options?: Options): Promise[]> { - let cursor = new Query(filter ?? {}).find(Array.from(this.#documents.values())); + let cursor = new Query(filter ?? {}).find(Array.from(this.#documents.values())); if (options !== undefined) { cursor = addOptions(cursor, options); } diff --git a/src/Observe/Observe.ts b/src/Observe/Observe.ts index 3c6db1d..c48e3bd 100644 --- a/src/Observe/Observe.ts +++ b/src/Observe/Observe.ts @@ -69,7 +69,7 @@ function applyQueryOptions( options?: Options ): WithId[] { if (options !== undefined) { - return addOptions(new Query({}).find(documents), options).all() as WithId[]; + return addOptions(new Query({}).find(documents), options).all() as WithId[]; } return documents; } diff --git a/src/Storage/Storage.ts b/src/Storage/Storage.ts index 7b3eae9..67bd2f0 100644 --- a/src/Storage/Storage.ts +++ b/src/Storage/Storage.ts @@ -18,7 +18,10 @@ export abstract class Storage { readonly #channel: BroadcastChannel; - constructor(readonly name: string, readonly id = nanoid()) { + constructor( + readonly name: string, + readonly id = nanoid() + ) { this.#channel = new BroadcastChannel(`valkyr:db:${name}`); this.#channel.onmessage = ({ data }: MessageEvent>) => { if (data.name !== this.name) { @@ -124,7 +127,10 @@ export abstract class Storage { |-------------------------------------------------------------------------------- */ -export function addOptions(cursor: Cursor, options: Options): Cursor { +export function addOptions( + cursor: Cursor, + options: Options +): Cursor { if (options.sort) { cursor.sort(options.sort); }