UNPKG

tprompter

Version:
84 lines (83 loc) 4.04 kB
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; import { Service } from 'typedi'; import { BuiltinTemplatesCatalog } from './catalog/BuiltinTemplatesCatalog.js'; import { ExternalTemplatesCatalog } from './catalog/ExternalTemplatesCatalog.js'; import { IO } from '../utils/IO.js'; import { PromptsEngine } from './PromptEngine.js'; import { DynamicPrompt } from './DynamicPrompt.js'; let TemplateService = class TemplateService { constructor(buildinPromptsCatalog, externalPromptsCatalog, promptEngine, io) { this.buildinPromptsCatalog = buildinPromptsCatalog; this.externalPromptsCatalog = externalPromptsCatalog; this.promptEngine = promptEngine; this.io = io; } getPromptByNameOrPath(nameOrFile) { return __awaiter(this, void 0, void 0, function* () { if (this.isFilepath(nameOrFile)) { const templateContent = yield this.io.readFile(nameOrFile); return new DynamicPrompt(nameOrFile, () => this.promptEngine.proceed(templateContent)); } const externalContent = yield this.externalPromptsCatalog.getTemplateContent(nameOrFile); if (externalContent) { return new DynamicPrompt(nameOrFile, () => this.promptEngine.proceed(externalContent)); } const builtin = yield this.buildinPromptsCatalog.getTemplate(nameOrFile); if (builtin) { return builtin; } return null; }); } listTemplates() { return __awaiter(this, void 0, void 0, function* () { return [ ...(yield this.buildinPromptsCatalog.listTemplates()), ...(yield this.externalPromptsCatalog.listTemplates()), ]; }); } installTemplate(name, content) { return __awaiter(this, void 0, void 0, function* () { yield this.externalPromptsCatalog.install(name, content); }); } uninstallTemplate(name) { return __awaiter(this, void 0, void 0, function* () { yield this.externalPromptsCatalog.uninstall(name); }); } isFilepath(nameOrFile) { return nameOrFile.startsWith('/') || nameOrFile.startsWith('./'); } getTemplatesFolder() { return __awaiter(this, void 0, void 0, function* () { return this.externalPromptsCatalog.getTemplatesFolder(); }); } }; TemplateService = __decorate([ Service(), __metadata("design:paramtypes", [BuiltinTemplatesCatalog, ExternalTemplatesCatalog, PromptsEngine, IO]) ], TemplateService); export { TemplateService };