@zregvart/opa-inspect
v0.70.0-0a0b822
Published
opa inspect functionality in JavaScript
Downloads
570
Readme
opa inspect
for JavaScript
This compiles the functionality of
opa inspect
wrapped in JavaScript by inspect.go
to WebAssembly, which is included in
main.js
with the Go runtime from wasm_exec.js
-- included in the Golang
runtime and copied to the package.
Example
Add the dependency:
npm add @zregvart/opa-inspect
Run this example with node example.js
import * as opa from "@zregvart/opa-inspect";
opa.inspect(
"example.rego",
`package example
# METADATA
# title: Task bundle was not used or is not defined
# description: |-
# Check for existence of a task bundle. Enforcing this rule will
# fail the contract if the task is not called from a bundle.
# custom:
# short_name: disallowed_task_reference
# failure_msg: Task '%s' does not contain a bundle reference
#
deny[msg] {
msg := "nope"
}`).then(json => {
console.log(json);
});
Running examples
In browser example
Run the dev
script with the examples/browser
workspace, for example:
$ npm run -w examples/browser dev
VITE v4.1.1 ready in 166 ms
➜ Local: http://localhost:5173/
➜ Network: use --host to expose
➜ press h to show help
And open http://localhost:5173/ in the browser.
API
opa.inspect
Can be called with following combination of arguments:
<string>
- a path that can be read using thefs
module<string>
,<string>
- a path/filename and the content of the Rego module inline, performs in-memory<Array<string>>
- an array of paths that can be read using thefs
module<stream<File>>
- a Vinyl stream of files- `<Array> - an array of Vinyl files
Building
Run make build
to build, this copies wasm_exec.js
from the Golang runtime
and compiles inspect.go
to WebAssembly.
Demo
Run make demo
to build and run the example in example.js