UNPKG

@sprucelabs/spruce-cli

Version:

Command line interface for building Spruce skills.

42 lines (34 loc) 1.17 kB
import { SettingsService } from '@sprucelabs/spruce-skill-utils' import SpruceError from '../errors/SpruceError' interface Dependency { id: string namespace: string } export default class DependencyService { private settings: SettingsService<string> public constructor(settings: SettingsService) { this.settings = settings } public set(dependencies: Dependency[]) { this.settings.set('dependencies', dependencies) } public add(dependency: Dependency) { this.assertDependencyDoesNotExist(dependency.namespace) const dependencies = this.settings.get('dependencies') ?? [] dependencies.push(dependency) this.settings.set('dependencies', dependencies) } private assertDependencyDoesNotExist(namespace: string) { const dependencies = this.get() const match = dependencies.find((d) => d.namespace === namespace) if (match) { throw new SpruceError({ code: 'DEPENDENCY_EXISTS', namespace, }) } } public get(): Dependency[] { return this.settings.get('dependencies') ?? [] } }