Skip to content

Playground

Experiment with vowwch contracts in the browser.

import { contract } from "vowwch"

const isPositive = (v: unknown): v is number =>
  typeof v === "number" && v > 0

const double = (n: number) => n * 2

const safeDouble = contract(double, {
  name: "double",
  input: isPositive,
  output: isPositive,
  mode: "strict",
})

console.log(safeDouble(5))

try {
  safeDouble(-1)
} catch (e) {
  console.error(e.message)
}
Output

Run code to see output