n8n/packages/@n8n/expression-runtime/src/evaluator
Charlie Kolb 027b366fd0
feat: Add snippets, reusable code callable from expressions and Code nodes
Snippets are named JS expressions (functions or constants) stored per
instance ($snippets.<name>) or per project ($project.<name>), usable in
expressions and the Code node across all three execution environments:
the legacy/browser expression engine, the isolated-vm engine (compiled
in-isolate from tournament-transformed sources), and the secure task
runner (compiled inside the vm sandbox, never as host closures).

Includes a snippets backend module (CRUD, snippet/projectSnippet RBAC
scopes, save-time compile validation, project ownership transfer),
delivery via additionalData snapshots, a settings UI with a dedicated
editor screen, per-snippet unit tests (left/expected expressions,
deep-compared, run in-browser through the same sandbox pipeline),
expression and Code node autocomplete, and TypeScript language support
with signatures inferred from real snippet sources — reused standalone
in the snippet editor itself.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-12 12:04:37 +02:00
..
__tests__ feat(core): Add observability for the VM expression engine (#28715) 2026-04-24 14:11:07 +00:00
error-classification.ts feat(core): Add observability for the VM expression engine (#28715) 2026-04-24 14:11:07 +00:00
expression-evaluator.ts feat: Add snippets, reusable code callable from expressions and Code nodes 2026-08-12 12:04:37 +02:00
lru-cache.ts feat(core): Replace unbounded expression code cache with LRU (#27477) 2026-03-25 15:39:01 +00:00