UNPKG

@paroicms/site-generator-plugin

Version:

ParoiCMS Site Generator Plugin

83 lines (82 loc) 3.39 kB
import { boolVal, isObj, nbVal, strVal, strValOrUndef } from "@paroi/data-formatters-lib"; import { ApiError } from "@paroicms/public-server-lib"; export function formatGeneratorPluginConfiguration(pluginConf) { const anthropicApiKey = strValOrUndef(pluginConf.anthropicApiKey, { varName: "anthropicApiKey" }); const mistralApiKey = strValOrUndef(pluginConf.mistralApiKey, { varName: "mistralApiKey" }); const packName = strValOrUndef(pluginConf.packName, { varName: "packName" }); const debugDir = strValOrUndef(pluginConf.debugDir, { varName: "debugDir" }); if (!anthropicApiKey || !mistralApiKey || !packName) { throw new Error(`Invalid configuration for plugin "@paroicms/site-generator-plugin"`); } return { anthropicApiKey, mistralApiKey, packName, debugDir }; } export function formatGeneratorCommand(data) { if (!isObj(data)) throw new ApiError("Invalid input", 400); const command = strVal(data.command, { varName: "command" }); if (command === "newSession") { return { command: "newSession", language: strVal(data.language, { varName: "language" }), recaptchaToken: strVal(data.recaptchaToken, { varName: "recaptchaToken" }), }; } if (command === "renewSession") { return { command: "renewSession", sessionToken: strVal(data.sessionToken, { varName: "sessionToken" }), recaptchaToken: strVal(data.recaptchaToken, { varName: "recaptchaToken" }), }; } if (command === "setLanguage") { return { command: "setLanguage", sessionToken: strVal(data.sessionToken, { varName: "sessionToken" }), language: strVal(data.language, { varName: "language" }), }; } if (command === "loadWorkSession") { return { command: "loadWorkSession", sessionToken: strVal(data.sessionToken, { varName: "sessionToken" }), }; } if (command === "loadStep") { return { command: "loadStep", sessionToken: strVal(data.sessionToken, { varName: "sessionToken" }), stepNumber: nbVal(data.stepNumber, { varName: "stepNumber" }), }; } if (command === "createSiteSchema") { return { command: "createSiteSchema", sessionToken: strVal(data.sessionToken, { varName: "sessionToken" }), prompt: formatPrompt(data.prompt), }; } if (command === "updateSiteSchema") { return { command: "updateSiteSchema", sessionToken: strVal(data.sessionToken, { varName: "sessionToken" }), prompt: formatPrompt(data.prompt), fromStepNumber: nbVal(data.fromStepNumber), }; } if (command === "generateSite") { return { command: "generateSite", sessionToken: strVal(data.sessionToken, { varName: "sessionToken" }), fromStepNumber: nbVal(data.fromStepNumber), withSampleData: boolVal(data.withSampleData, { varName: "withSampleData" }), }; } throw new ApiError(`Invalid command: ${command}`, 400); } function formatPrompt(val) { const prompt = strVal(val, { varName: "prompt" }); if (prompt.length > 5000) { throw new ApiError("Prompt is too long", 400); } return prompt; }