UNPKG

@hashgraph/solo

Version:

An opinionated CLI tool to deploy and manage private Hedera Networks.

73 lines 2.29 kB
// SPDX-License-Identifier: Apache-2.0 import { ImageCacheHandler } from './image-cache-handler.js'; import { YamlImageTargetProvider } from '../target-providers/yaml-image-target-provider.js'; import { SoloError } from '../../../core/errors/solo-error.js'; /** * Builder for {@link ImageCacheHandler}. * * This builder allows runtime construction of an image cache handler by * providing a target provider directly or by creating a YAML-backed target * provider from a file path. */ export class ImageCacheHandlerBuilder { _provider; _engine; get name() { return this.constructor.name; } /** * Creates a new builder preconfigured with a YAML-backed image target provider. * * @param filePath path to the image targets YAML file * @returns a new builder instance */ static fromYaml(filePath) { return new ImageCacheHandlerBuilder().yamlProvider(filePath); } /** * Sets the target provider explicitly. * * @param provider provider supplying image cache targets * @returns this builder */ provider(provider) { this._provider = provider; return this; } /** * Creates and sets a YAML-backed image target provider using the given file path. * * @param filePath path to the image targets YAML file * @returns this builder */ yamlProvider(filePath) { this._provider = new YamlImageTargetProvider(filePath); return this; } /** * Sets the container engine client to be used by the handler. * * @param engine container engine client * @returns this builder */ engine(engine) { this._engine = engine; return this; } /** * Builds a ready-to-use {@link ImageCacheHandler}. * * @returns the configured image cache handler * @throws Error if any required dependency is missing */ build() { if (!this._provider) { throw new SoloError(`${this.name}: provider must be set`); } if (!this._engine) { throw new SoloError(`${this.name}: engine must be set`); } return new ImageCacheHandler(this._engine, this._provider); } } //# sourceMappingURL=image-cache-handler-builder.js.map