Files
Johan Fylling a179a24c48 v1 API
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>
2024-12-12 15:27:34 +01:00

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)
}