UNPKG

@speckle/objectloader2

Version:

This is an updated objectloader for the Speckle viewer written in typescript

36 lines (30 loc) 932 B
import { Base, Item } from '../../types/types.js' import { Database } from '../interfaces.js' import { MemoryDatabaseOptions } from '../options.js' export class MemoryDatabase implements Database { private items: Map<string, Base> constructor(options?: MemoryDatabaseOptions) { this.items = options?.items || new Map<string, Base>() } getAll(keys: string[]): Promise<(Item | undefined)[]> { const found: (Item | undefined)[] = [] for (const key of keys) { const item = this.items.get(key) if (item) { found.push({ baseId: key, base: item }) } else { found.push(undefined) } } return Promise.resolve(found) } cacheSaveBatch({ batch }: { batch: Item[] }): Promise<void> { for (const item of batch) { this.items.set(item.baseId, item.base) } return Promise.resolve() } disposeAsync(): Promise<void> { return Promise.resolve() } }