tprompter
Version:
```bash $ ask anything ```
84 lines (83 loc) • 4.04 kB
JavaScript
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 };