vasille-jsx
Version:
The first Developer eXperience Orientated front-end framework (JSX components)
53 lines (52 loc) • 1.87 kB
JavaScript
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));
},
};