import { StorageAdapter, StorageAdapterParams } from "../adapter"; import { Model } from "../../model"; import { EphemeralRepository } from "./repository"; import { Repository } from "../repository"; const _repositories: Record = { }; export class EphemeralAdapter implements StorageAdapter { static register(key: string, repository: EphemeralRepository): void { _repositories[key] = repository; } constructor(params: StorageAdapterParams) {} resolve(name: string, model: Model): Promise> { let repository = _repositories[name]; if (repository && repository.model.name === model.name) { return Promise.resolve(>repository); } return Promise.resolve(new EphemeralRepository(model)); } }