Repository navigation
v1.0.0
Cocoar.JsEval v1.0.0
JavaScript/TypeScript execution library for .NET, built on Jint.
Highlights
- JavaScript execution via Jint 4.8 (ES2025 support)
- TypeScript 6.0 transpilation with embedded compiler
- Four execution methods — from full-featured (
ExecuteAsync) to high-performance (Evaluatewith pre-parsed scripts, < 1 µs per call) - Built-in globals —
console,setTimeout/setInterval,fetch(),structuredClone,atob/btoa,performance.now(),TextEncoder/TextDecoder - Automatic .NET Task → JS Promise interop
- 8 extensible modules — HTTP, Database, SMTP, Template, AngleSharp, Logging, Common, VirtualFileSystem
- Expression Tree helpers —
FilterBuilder<T>, enum-as-string comparison, closure-pattern Contains/IN, nested property paths, collection navigation (Any) .d.tsgeneration from C# types for Monaco Editor IntelliSenseIJsEngineinterface for testability and mocking- Fluent DI registration —
services.AddJsEval(b => b.EnableFetch().AddModule<T>())
Quick Start
dotnet add package Cocoar.JsEval.Engineservices.AddJsEval();
var engine = sp.GetRequiredService<IJsEngine>();
await engine.ExecuteAsync("export const x = 2 + 3;");Expression Helpers
dotnet add package Cocoar.JsEval.Expressionsvar filter = new FilterBuilder<TodoView>()
.Where("IsArchived", false)
.WhereIf(customerIds.Count > 0, b => b.Contains("Customer.Id", customerIds))
.WhereAny<ResponsibleView, Guid>("Responsibles", "Id", userId)
.WhereEnumAsString("Status", "Active")
.Build();
var results = await session.Query<TodoView>().Where(filter).ToListAsync();Packages
| Package | Description |
|---|---|
Cocoar.JsEval |
Core interfaces and helpers |
Cocoar.JsEval.Engine |
JsEngine + fetch() + DI |
Cocoar.JsEval.TypeScript |
TypeScript 6.0 transpiler |
Cocoar.JsEval.TsDefinition |
.d.ts generation for IntelliSense |
Cocoar.JsEval.Expressions |
Expression Tree helpers (FilterBuilder, enum comparison, Contains/IN) |
Cocoar.JsEval.Module.Common |
Guid, Sleep, Random |
Cocoar.JsEval.Module.Http |
Fluent HTTP client |
Cocoar.JsEval.Module.Database |
SQL Server + PostgreSQL |
Cocoar.JsEval.Module.Smtp |
Email via MailKit |
Cocoar.JsEval.Module.Template |
Scriban templates |
Cocoar.JsEval.Module.AngleSharp |
HTML parsing |
Cocoar.JsEval.Module.Logging |
Microsoft.Extensions.Logging |
Cocoar.JsEval.Module.VirtualFileSystem |
Zio VFS |