@gent-js/gent
Version:
template-based data generator.
27 lines (26 loc) • 892 B
JavaScript
import { createJsonableTransformer, parseJsonable, stringifyJsonable, } from "./json/index.js";
export function buildDocumentFromJsonTemplate(templateString, commandManager, documentOptions) {
const jsonableTransformer = createJsonableTransformer(commandManager, documentOptions);
const jsonableValue = parseJsonable(templateString, jsonableTransformer);
if (jsonableValue === undefined) {
return [];
}
return [new JsonDocumentFragmentImpl(jsonableValue)];
}
class JsonDocumentFragmentImpl {
jsonableValue;
constructor(jsonableValue) {
this.jsonableValue = jsonableValue;
}
toString(context) {
let json;
try {
json = stringifyJsonable(this.jsonableValue, "", context);
}
catch (error) {
console.error(error);
json = undefined;
}
return json ?? "";
}
}