UNPKG

smh-rn-expo-json-ui-engine

Version:

A JSON-driven UI engine for React Native and Expo that enables dynamic, runtime-rendered interfaces without rebuilding the app.

1 lines 700 B
"use strict";import{JSONUIEnums}from"./types.js";const registry=new Map,registerJSONComponent=(e,r,t={})=>{const o={ref:e,json:r,propsType:{},defaultProps:t};registry.set(e,o)},getComponentEntry=e=>registry.get(e)??null,resolvePlaceholders=(e,r)=>{if("string"==typeof e)return e.replace(/{{(.*?)}}/g,(e,t)=>{const o=r?.[t.trim()];return void 0!==o?String(o):""});if("object"==typeof e&&null!==e){const t=Array.isArray(e)?[]:{};for(const o in e)t[o]=resolvePlaceholders(e[o],r);return t}return e},defineUseComponent=(e,r,t)=>(registerJSONComponent(e,t,r),{type:JSONUIEnums.CustomTypes.useComponent,ref:e,props:r});export{registerJSONComponent,getComponentEntry,resolvePlaceholders,defineUseComponent};