mirror of
https://github.com/open-policy-agent/opa.git
synced 2026-08-12 19:32:48 -06:00
a179a24c48
All packages, except for `cmd` and `internal`, have been moved into a new `v1` root package. Old packages are kept for backwards-compatibility reasons. All contained code is replaced with simple type aliases and proxy functions to `v1` implementations. Old packages default to the Rego v0 syntax, new `v1` packages default to the Rego v1 syntax. Signed-off-by: Johan Fylling <johan.dev@fylling.se>
38 lines
1.2 KiB
Go
38 lines
1.2 KiB
Go
// Copyright 2020 The OPA Authors. All rights reserved.
|
|
// Use of this source code is governed by an Apache2
|
|
// license that can be found in the LICENSE file.
|
|
|
|
// Package compile implements bundles compilation and linking.
|
|
package compile
|
|
|
|
import (
|
|
"github.com/open-policy-agent/opa/ast"
|
|
v1 "github.com/open-policy-agent/opa/v1/compile"
|
|
)
|
|
|
|
const (
|
|
// TargetRego is the default target. The source rego is copied (potentially
|
|
// rewritten for optimization purpsoes) into the bundle. The target supports
|
|
// base documents.
|
|
TargetRego = v1.TargetRego
|
|
|
|
// TargetWasm is an alternative target that compiles the policy into a wasm
|
|
// module instead of Rego. The target supports base documents.
|
|
TargetWasm = v1.TargetWasm
|
|
|
|
// TargetPlan is an altertive target that compiles the policy into an
|
|
// imperative query plan that can be further transpiled or interpreted.
|
|
TargetPlan = v1.TargetPlan
|
|
)
|
|
|
|
// Targets contains the list of targets supported by the compiler.
|
|
var Targets = v1.Targets
|
|
|
|
// Compiler implements bundle compilation and linking.
|
|
type Compiler = v1.Compiler
|
|
|
|
// New returns a new compiler instance that can be invoked.
|
|
func New() *Compiler {
|
|
return v1.New().WithRegoVersion(ast.DefaultRegoVersion)
|
|
}
|