Files
regorus/bindings/wasm/README.md
Anand Krishnamoorthi 8ca863c661 Python bindings (#115)
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2024-01-28 14:39:59 -08:00

1.3 KiB

regorusjs

Regorus is

  • Rego-Rus(t) - A fast, light-weight Rego interpreter written in Rust.
  • Rigorous - A rigorous enforcer of well-defined Rego semantics.

See Repository.

regorusjs is Regorus compiled into WASM.

Usage


var regorus = require('regorusjs')

// Create an engine.
var engine = new regorus.Engine();

// Add Rego policy.
engine.add_policy(
    // Associate this file name with policy
    'hello.rego',
    
    // Rego policy
`
  package test
  
  # Join messages
  message = concat(", ", [input.message, data.message])
`)

// Set policy data
engine.add_data_json(`
 {
    "message" : "World!"
 }
`)

// Set policy input
engine.set_input_json(`
 {
	"message" : "Hello"
 }
`)

// Eval query
results = engine.eval_query('data.test.message')

// Display
console.log(results)
// {
//   "result": [
//     {
//       "expressions": [
//         {
//           "value": "Hello, World!",
//           "text": "data.test.message",
//           "location": {
//             "row": 1,
//             "col": 1
//           }
//         }
//       ]
//     }
//   ]
// }

// Convert results to object
results = JSON.parse(results)

// Process result
console.log(results.result[0].expressions[0].value)
// Hello, World!