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
}