Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@isl-lang/evaluator

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@isl-lang/evaluator

Expression evaluator for ISL - runtime evaluation and verification of contracts

latest
Source
npmnpm
Version
1.0.0
Version published
Maintainers
1
Created
Source

@isl-lang/evaluator

Expression evaluator for ISL - runtime evaluation and verification of contracts.

Installation

npm install @isl-lang/evaluator
# or
pnpm add @isl-lang/evaluator

Usage

import { Evaluator, createContext } from '@isl-lang/evaluator';

// Create evaluation context with bindings
const context = createContext({
  user: {
    name: 'Alice',
    age: 25,
    email: 'alice@example.com'
  },
  config: {
    maxUsers: 100
  }
});

// Evaluate expressions
const evaluator = new Evaluator(context);

// Simple expressions
evaluator.evaluate('user.age >= 18'); // true
evaluator.evaluate('user.name.length > 0'); // true
evaluator.evaluate('config.maxUsers'); // 100

// Contract validation
const precondition = 'user.age >= 18 && user.email.contains("@")';
const isValid = evaluator.evaluate(precondition);

API

Evaluator

Main evaluator class.

const evaluator = new Evaluator(context);

// Evaluate expression to value
const result = evaluator.evaluate(expression);

// Evaluate with type checking
const typed = evaluator.evaluateTyped(expression);

createContext(bindings: object): EvalContext

Create an evaluation context with variable bindings.

validateContract(contract: Contract, context: EvalContext): ValidationResult

Validate a contract (precondition/postcondition) against a context.

import { validateContract } from '@isl-lang/evaluator';

const result = validateContract(
  { expression: 'input.amount > 0', type: 'precondition' },
  context
);

if (!result.valid) {
  console.error('Contract violation:', result.message);
}

Expression Language

Supported operators and functions:

Comparison

  • ==, !=, <, >, <=, >=

Logical

  • &&, ||, !

Arithmetic

  • +, -, *, /, %

String

  • .length, .contains(), .startsWith(), .endsWith()

Collection

  • .includes(), .every(), .some(), .filter(), .map()

Type checking

  • .isNull(), .isValid(), .typeof()

Documentation

Full documentation: https://isl-lang.dev/docs/evaluator

License

MIT

Keywords

isl

FAQs

Package last updated on 12 Feb 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts