Vario Core Runtime - Instruction VM, Expression System, Runtime Context
npm install @variojs/coreVario 核心运行时 - 指令虚拟机、表达式系统、运行时上下文
- 🚀 高性能:表达式缓存、对象池、路径记忆化
- 🔒 安全沙箱:多层防护,白名单机制,防止恶意代码
- 📦 框架无关:可在任何 JavaScript 环境中使用
- 🎯 扁平化状态:$ 前缀系统 API,简洁直观
``bash`
npm install @variojs/core或
pnpm add @variojs/core
`typescript
import { createRuntimeContext, createVMExecutor } from '@variojs/core'
// 创建运行时上下文
const ctx = createRuntimeContext({
state: {
count: 0,
user: { name: 'John', age: 30 }
},
methods: {
increment: (ctx) => {
ctx._set('count', ctx._get('count') + 1)
}
}
})
// 访问状态(扁平化,无 models. 前缀)
ctx.count // 0
ctx.user.name // 'John'
// 使用系统 API
ctx._set('count', 10)
ctx.$emit('countChanged', 10)
// 执行指令
const executor = createVMExecutor(ctx)
await executor.execute({
type: 'set',
path: 'count',
value: 10
})
`
安全、强大的表达式求值引擎:
`typescript
import { compileExpression, createExpressionSandbox } from '@variojs/core'
const sandbox = createExpressionSandbox(ctx)
const expr = compileExpression('count > 10 && user.age >= 18')
const result = expr.evaluate(sandbox) // true/false
`
支持的语法:
- 变量访问:count, user.nameitems[0]
- 数组访问:user?.profile?.email
- 可选链:count + 1
- 运算:, price * quantityshowContent && isActive
- 逻辑:count > 10 ? "high" : "low"
- 三元:Array.isArray
- 白名单函数:, Math.max`
- ✅ 类型安全:完整的 TypeScript 类型定义
- ✅ 性能优化:表达式缓存、路径缓存、对象池复用
- ✅ 安全可靠:白名单机制,沙箱隔离,防止代码注入
- ✅ 易于扩展:支持自定义指令和方法
MIT