UNPKG

vasille-jsx

Version:

The same framework which is designed to build bulletproof frontends (JSX components)

34 lines (33 loc) 1.41 kB
import { DevArrayModel, DevExpression, DevIValue, DevMapModel, DevReference, DevSetModel, } from "vasille/dev"; import { match, set } from "../internal.js"; export function devExpr(ctx, func, values, depsCode, declaration, inspector) { return new DevExpression(func, values, ctx, depsCode, declaration, inspector, false); } export function devRef(v, declaration, inspector) { return new DevReference(v, declaration, inspector); } export function devSetModel(inspector, usage, ctx, data) { return new DevSetModel(inspector, usage, data, ctx); } export function devMapModel(inspector, usage, ctx, data) { return new DevMapModel(inspector, usage, data, ctx); } export function devArrayModel(inspector, usage, ctx, data) { return new DevArrayModel(inspector, usage, data, ctx); } export function devEnsure(obj, key, declaration, inspector) { if (!obj) { return undefined; } return key in obj ? obj[key] : (obj[key] = devRef(undefined, declaration, inspector)); } export function devMatch(name, data, declaration, inspector) { return match(name, data, v => devRef(v, declaration, inspector)); } export function devSet(o, key, value, declaration, inspector, executionPosition) { if (o[key] instanceof DevIValue) { o[key].update(value, executionPosition); return value; } return set(o, key, value, v => devRef(v, declaration, inspector)); }