UNPKG

vasille-jsx

Version:

The first Developer eXperience Orientated front-end framework (JSX components)

53 lines (52 loc) 1.87 kB
import { IValue, proxyArrayModel, Expression, Pointer, Reference } from "vasille"; import { reactiveObject, reactiveObjectProxy, storeReactiveObject } from "./objects.js"; import { ContextArray, ContextMap, ContextSet } from "./models.js"; export const internal = { /** create an expression (without context), use it for OwningPointer */ ex(func, values) { return new Expression(func, values); }, /** create a forward-only pointer (without context), use it for OwningPointer */ fo(v) { return new Pointer(v); }, /** create a reference (without context), use it for default composing props values */ r(v) { return new Reference(v); }, rv(v) { return v instanceof IValue ? v.$ : v; }, /** create a reactive object proxy, use it for sending reactive objects to child components */ rop(o) { return reactiveObjectProxy(o); }, /** translate `{...}` to `$.ro(this, {...})` */ ro: reactiveObject, /** translate `new Set(#)` to `$.sm(this, #)` */ sm(node, data, name) { return node.register(new ContextSet(data), name); }, /** translate `new Map(#)` to `$.mm(this, #)` */ mm(node, data, name) { return node.register(new ContextMap(data), name); }, /** translate `[...]` to `$.am(this, [...])` */ am(node, data, name) { return node.register(proxyArrayModel(new ContextArray(data)), name); }, /** translate `{...} to $.sro({...})` */ sro: storeReactiveObject, /** translate `new Set(#)` to `$.ssm(#)` */ ssm(data) { return new ContextSet(data); }, /** translate `new Map(#)` to `$.smm(#)` */ smm(data) { return new ContextMap(data); }, /** translate `[...]` to `$.sam([...])` */ sam(data) { return proxyArrayModel(new ContextArray(data)); }, };