package js import ( "apigo.cc/ai/ai/goja" "github.com/ssgo/u" ) func RequireFile() map[string]any { return map[string]any{ "read": func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value { args := MakeArgs(&argsIn, vm).Check(1) if r, err := u.ReadFile(findPath(vm, args.Str(0))); err == nil { return vm.ToValue(r) } else { panic(vm.NewGoError(err)) } }, "write": func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value { args := MakeArgs(&argsIn, vm).Check(2) if err := u.WriteFileBytes(findPath(vm, args.Str(0)), u.Bytes(args.Any(0))); err == nil { return nil } else { panic(vm.NewGoError(err)) } }, "dir": func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value { args := MakeArgs(&argsIn, vm).Check(1) if r, err := u.ReadDir(findPath(vm, args.Str(0))); err == nil { return vm.ToValue(r) } else { panic(vm.NewGoError(err)) } }, "stat": func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value { args := MakeArgs(&argsIn, vm).Check(1) return vm.ToValue(u.GetFileInfo(findPath(vm, args.Str(0)))) }, "find": func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value { args := MakeArgs(&argsIn, vm).Check(1) return vm.ToValue(findPath(vm, args.Str(0))) }, } }