38 lines
653 B
Go
38 lines
653 B
Go
|
package process
|
||
|
|
||
|
import (
|
||
|
"os"
|
||
|
"strings"
|
||
|
|
||
|
"apigo.cc/ai/ai/goja"
|
||
|
"apigo.cc/ai/ai/goja_nodejs/require"
|
||
|
)
|
||
|
|
||
|
const ModuleName = "process"
|
||
|
|
||
|
type Process struct {
|
||
|
env map[string]string
|
||
|
}
|
||
|
|
||
|
func Require(runtime *goja.Runtime, module *goja.Object) {
|
||
|
p := &Process{
|
||
|
env: make(map[string]string),
|
||
|
}
|
||
|
|
||
|
for _, e := range os.Environ() {
|
||
|
envKeyValue := strings.SplitN(e, "=", 2)
|
||
|
p.env[envKeyValue[0]] = envKeyValue[1]
|
||
|
}
|
||
|
|
||
|
o := module.Get("exports").(*goja.Object)
|
||
|
o.Set("env", p.env)
|
||
|
}
|
||
|
|
||
|
func Enable(runtime *goja.Runtime) {
|
||
|
runtime.Set("process", require.Require(runtime, ModuleName))
|
||
|
}
|
||
|
|
||
|
func init() {
|
||
|
require.RegisterCoreModule(ModuleName, Require)
|
||
|
}
|