embed.js
1 import { buildEmbeddedObject } from './internal-builders.js'; 2 3 const { isArray } = Array; 4 const isString = (val) => typeof val === 'string'; 5 const isNumber = (val) => typeof val === 'number'; 6 7 export const embedExpression = (expr) => { 8 if (isString(expr) || expr == null || typeof expr === 'boolean' || isNumber(expr)) { 9 return expr; 10 } else if (isArray(expr)) { 11 return expr.map((value) => embedExpression(value)); 12 } else if (typeof expr === 'object') { 13 return buildEmbeddedObject( 14 Object.fromEntries( 15 Object.entries(expr).map(({ 0: key, 1: value }) => [key, embedExpression(value)]), 16 ), 17 ); 18 } else { 19 throw new Error(); 20 } 21 }; 22 23 export { buildEmbeddedObject, buildEmbeddedObject as o };