UNPKG

ocat-lang

Version:

A programming language for the web design and development

21 lines (20 loc) 941 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.processLayout = void 0; const DEFAULT_LAYOUT = '<div>{* children *}</div>'; const PLACEHOLDER_REGEX = /\{\*\s*(\w+)\s*\*\}/g; const replacePlaceholder = (layout, name, value) => { return layout.replace(new RegExp(`\\{\\*\\s*${name}\\s*\\*\\}`, 'g'), value); }; const getDefaultLayout = (layout, children) => { return layout.length === 0 ? DEFAULT_LAYOUT.replace('{* children *}', children) : layout; }; const processLayout = (layout, title, description, children) => { let processedLayout = getDefaultLayout(layout, children); const replacements = { title, description, children }; for (const [name, value] of Object.entries(replacements)) { processedLayout = replacePlaceholder(processedLayout, name, value); } return processedLayout.replace(PLACEHOLDER_REGEX, 'onotdefined'); }; exports.processLayout = processLayout;