@sprucelabs/spruce-cli
Version:
Command line interface for building Spruce skills.
36 lines • 1.23 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const SpruceError_1 = __importDefault(require("../errors/SpruceError"));
class DependencyService {
settings;
constructor(settings) {
this.settings = settings;
}
set(dependencies) {
this.settings.set('dependencies', dependencies);
}
add(dependency) {
this.assertDependencyDoesNotExist(dependency.namespace);
const dependencies = this.settings.get('dependencies') ?? [];
dependencies.push(dependency);
this.settings.set('dependencies', dependencies);
}
assertDependencyDoesNotExist(namespace) {
const dependencies = this.get();
const match = dependencies.find((d) => d.namespace === namespace);
if (match) {
throw new SpruceError_1.default({
code: 'DEPENDENCY_EXISTS',
namespace,
});
}
}
get() {
return this.settings.get('dependencies') ?? [];
}
}
exports.default = DependencyService;
//# sourceMappingURL=DependencyService.js.map