@hashgraph/solo
Version:
An opinionated CLI tool to deploy and manage private Hedera Networks.
30 lines (22 loc) • 984 B
text/typescript
// SPDX-License-Identifier: Apache-2.0
import {type CacheHandlerRegistry} from '../api/cache-handler-registry.js';
import {type CacheOperationHandler} from '../api/cache-operation-handler.js';
import {type CacheArtifactEnum} from '../enums/cache-artifact-enum.js';
import {injectable} from 'tsyringe-neo';
()
export class DefaultCacheHandlerRegistry implements CacheHandlerRegistry {
private readonly handlers: Map<CacheArtifactEnum, CacheOperationHandler> = new Map();
public getHandler(type: CacheArtifactEnum): CacheOperationHandler {
const handler: CacheOperationHandler | undefined = this.handlers.get(type);
if (!handler) {
throw new Error(`No handler registered for type: ${type}`);
}
return handler;
}
public getAllHandlers(): readonly CacheOperationHandler[] {
return [...this.handlers.values()];
}
public registerHandler(handler: CacheOperationHandler): void {
this.handlers.set(handler.getType(), handler);
}
}