func NewRegoCompiler()

in sg/internal/policy/rego.go [28:48]


func NewRegoCompiler(
	packages []Package,
	opts ...RegoCompilerOptions,
) (*ast.Compiler, string, error) {
	modules := map[string]*ast.Module{}
	for _, p := range packages {
		for name, m := range p.ParsedModules() {
			modules[name] = m
		}
	}

	compiler := ast.NewCompiler()
	compiler.Compile(modules)
	if compiler.Failed() {
		return nil, "", fmt.Errorf("failed to create compiler: %w", compiler.Errors)
	}

	compilerKey := regoCompilerKey(packages, opts)

	return compiler, compilerKey, nil
}