UNPKG

@intlayer/core

Version:

Includes core Intlayer functions like translation, dictionary, and utility functions shared across multiple packages.

31 lines (29 loc) 1.09 kB
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); //#region src/interpreter/splitAndJoinInsertion.ts /** * Check if a value is a complex object (not a primitive) * Used to determine if values need to be wrapped in fragments */ const isComplexValue = (value) => value != null && typeof value !== "string" && typeof value !== "number" && typeof value !== "boolean"; const insertionRegex = /\{\{\s*(.*?)\s*\}\}/g; const splitInsertionTemplate = (template, values = {}) => { if (!Object.values(values).some(isComplexValue)) return { isSimple: true, parts: template.replace(insertionRegex, (_, key) => (values[key.trim()] ?? "").toString()) }; const chunks = template.split(insertionRegex); const parts = []; for (let i = 0; i < chunks.length; i++) if (i % 2 === 0) { if (chunks[i]) parts.push(chunks[i]); } else { const val = values[chunks[i].trim()]; if (val != null) parts.push(val); } return { isSimple: false, parts }; }; //#endregion exports.splitInsertionTemplate = splitInsertionTemplate; //# sourceMappingURL=splitAndJoinInsertion.cjs.map