@fibery/ai-utils
Version:
Utilities for Fibery AI
45 lines • 1.65 kB
JavaScript
import * as ejs from 'ejs';
import _ from 'lodash';
// noinspection ES6PreferShortImport
import { templates } from './templates/index.js';
export const getDataToRenderTemplate = ({ processedTypes }) => {
const data = { schema: _.cloneDeep(processedTypes) };
data.types = _.keys(data.schema).map((typeName) => {
const fields = [];
_.keys(data.schema[typeName].fields).forEach((fieldName) => {
const processedField = data.schema[typeName].fields[fieldName];
const refType = processedField.type;
const formulaText = processedField.formulaText ? `${processedField.formulaText}` : '';
const defaultValue = processedField.defaultValue ? `${processedField.defaultValue}` : null;
const field = {
name: fieldName,
type: refType,
values: processedField.values || null,
formulaText,
defaultValue,
};
fields.push(field);
});
return {
name: typeName,
description: data.schema[typeName].description,
fields,
};
});
return data;
};
export const renderToString = async (params) => {
const { template, data } = params;
const templateString = templates[template];
if (!templateString) {
throw new Error(`Template '${template}' not found`);
}
try {
const rendered = ejs.render(templateString, data);
return rendered.trim();
}
catch (err) {
throw new Error(`Failed to render template '${template}': ${err}`);
}
};
//# sourceMappingURL=templates.js.map