@sprucelabs/spruce-cli
Version:
Command line interface for building Spruce skills.
69 lines • 2.98 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const ConversationWriter_1 = __importDefault(require("../features/conversation/writers/ConversationWriter"));
const DeployWriter_1 = __importDefault(require("../features/deploy/writers/DeployWriter"));
const ErrorWriter_1 = __importDefault(require("../features/error/writers/ErrorWriter"));
const EventWriter_1 = __importDefault(require("../features/event/writers/EventWriter"));
const LogWriter_1 = __importDefault(require("../features/log/writers/LogWriter"));
const NodeWriter_1 = __importDefault(require("../features/node/writers/NodeWriter"));
const PermissionWriter_1 = __importDefault(require("../features/permission/writers/PermissionWriter"));
const PolishWriter_1 = __importDefault(require("../features/polish/writers/PolishWriter"));
const SandboxWriter_1 = __importDefault(require("../features/sandbox/writers/SandboxWriter"));
const SchemaWriter_1 = __importDefault(require("../features/schema/writers/SchemaWriter"));
const SkillWriter_1 = __importDefault(require("../features/skill/writers/SkillWriter"));
const StoreWriter_1 = __importDefault(require("../features/store/writers/StoreWriter"));
const TestWriter_1 = __importDefault(require("../features/test/writers/TestWriter"));
const ViewWriter_1 = __importDefault(require("../features/view/writers/ViewWriter"));
const VsCodeWriter_1 = __importDefault(require("../features/vscode/writers/VsCodeWriter"));
const classMap = {
error: ErrorWriter_1.default,
event: EventWriter_1.default,
schema: SchemaWriter_1.default,
skill: SkillWriter_1.default,
test: TestWriter_1.default,
node: NodeWriter_1.default,
vscode: VsCodeWriter_1.default,
conversation: ConversationWriter_1.default,
deploy: DeployWriter_1.default,
sandbox: SandboxWriter_1.default,
store: StoreWriter_1.default,
view: ViewWriter_1.default,
log: LogWriter_1.default,
polish: PolishWriter_1.default,
permission: PermissionWriter_1.default,
};
class WriterFactory {
templates;
ui;
linter;
settings;
static classMap = classMap;
constructor(options) {
const { templates, ui, linter, settings } = options;
this.templates = templates;
this.ui = ui;
this.linter = linter;
this.settings = settings;
}
static reset() {
this.classMap = classMap;
}
static setWriterClass(code, writer) {
this.classMap[code] = writer;
}
Writer(code, options) {
const Class = WriterFactory.classMap[code];
return new Class({
templates: this.templates,
term: this.ui,
linter: this.linter,
settings: this.settings,
...(options || {}),
});
}
}
exports.default = WriterFactory;
//# sourceMappingURL=WriterFactory.js.map