1
0
mirror of https://github.com/pocketbase/pocketbase.git synced 2025-03-27 00:09:09 +02:00

added jsvm .* helpers

This commit is contained in:
Gani Georgiev 2023-07-24 13:59:13 +03:00
parent ea4e3128ca
commit 543fb350ec
4 changed files with 5197 additions and 3485 deletions

View File

@ -7,6 +7,8 @@ import (
"errors"
"io"
"net/http"
"os"
"os/exec"
"reflect"
"strings"
"time"
@ -458,6 +460,27 @@ func filesystemBinds(vm *goja.Runtime) {
obj.Set("fileFromMultipart", filesystem.NewFileFromMultipart)
}
func osBinds(vm *goja.Runtime) {
obj := vm.NewObject()
vm.Set("$os", obj)
obj.Set("exec", exec.Command)
obj.Set("exit", os.Exit)
obj.Set("getenv", os.Getenv)
obj.Set("dirFS", os.DirFS)
obj.Set("readFile", os.ReadFile)
obj.Set("writeFile", os.WriteFile)
obj.Set("readDir", os.ReadDir)
obj.Set("tempDir", os.TempDir)
obj.Set("truncate", os.Truncate)
obj.Set("getwd", os.Getwd)
obj.Set("mkdir", os.Mkdir)
obj.Set("mkdirAll", os.MkdirAll)
obj.Set("rename", os.Rename)
obj.Set("remove", os.Remove)
obj.Set("removeAll", os.RemoveAll)
}
func formsBinds(vm *goja.Runtime) {
registerFactoryAsConstructor(vm, "AdminLoginForm", forms.NewAdminLogin)
registerFactoryAsConstructor(vm, "AdminPasswordResetConfirmForm", forms.NewAdminPasswordResetConfirm)

View File

@ -1228,3 +1228,13 @@ func TestRouterBinds(t *testing.T) {
t.Fatalf("Expected PreCount %d, got %d", 1, result.PreCount)
}
}
func TestOsBindsCount(t *testing.T) {
app, _ := tests.NewTestApp()
defer app.Cleanup()
vm := goja.New()
osBinds(vm)
testBindsCount(vm, "$os", 15, t)
}

File diff suppressed because it is too large Load Diff

View File

@ -515,6 +515,34 @@ declare namespace $filesystem {
let fileFromMultipart: filesystem.newFileFromMultipart
}
// -------------------------------------------------------------------
// osBinds
// -------------------------------------------------------------------
/**
* ` + "`$os`" + ` defines common helpers for working with the OS level primitives
* (eg. deleting directories, executing shell commands, etc.).
*
* @group PocketBase
*/
declare namespace $os {
export let exec: exec.command
export let exit: os.exit
export let getenv: os.getenv
export let dirFS: os.dirFS
export let readFile: os.readFile
export let writeFile: os.writeFile
export let readDir: os.readDir
export let tempDir: os.tempDir
export let truncate: os.truncate
export let getwd: os.getwd
export let mkdir: os.mkdir
export let mkdirAll: os.mkdirAll
export let rename: os.rename
export let remove: os.remove
export let removeAll: os.removeAll
}
// -------------------------------------------------------------------
// formsBinds
// -------------------------------------------------------------------
@ -842,6 +870,8 @@ func main() {
"github.com/pocketbase/pocketbase/apis": {"*"},
"github.com/pocketbase/pocketbase/forms": {"*"},
"github.com/pocketbase/pocketbase": {"*"},
"os": {"*"},
"os/exec": {"Command"},
},
FieldNameFormatter: func(s string) string {
return mapper.FieldName(nil, reflect.StructField{Name: s})