in packages/codegen-ui-react/lib/react-studio-template-renderer-helper.ts [151:182]
export function jsonToLiteral(
jsonObject: json,
): ObjectLiteralExpression | StringLiteral | NumericLiteral | BooleanLiteral | NullLiteral | ArrayLiteralExpression {
if (jsonObject === null) {
return factory.createNull();
}
// eslint-disable-next-line default-case
switch (typeof jsonObject) {
case 'string':
return factory.createStringLiteral(jsonObject);
case 'number':
return factory.createNumericLiteral(jsonObject);
case 'boolean': {
if (jsonObject) {
return factory.createTrue();
}
return factory.createFalse();
}
case 'object': {
if (jsonObject instanceof Array) {
return factory.createArrayLiteralExpression(jsonObject.map(jsonToLiteral), false);
}
// else object
return factory.createObjectLiteralExpression(
Object.entries(jsonObject).map(([key, value]) =>
factory.createPropertyAssignment(factory.createStringLiteral(key), jsonToLiteral(value)),
),
false,
);
}
}
}