goscript 0.1.3 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -2
- package/cmd/go_js_wasm_exec/main.go +201 -0
- package/cmd/go_js_wasm_exec/main_test.go +83 -0
- package/cmd/goscript/{cmd_compile.go → cmd-compile.go} +35 -8
- package/cmd/goscript/cmd-test.go +14 -0
- package/cmd/goscript/cmd-test_test.go +1 -1
- package/cmd/goscript/cmd_compile_test.go +105 -6
- package/compiler/build-flags.go +9 -10
- package/compiler/compile-request.go +12 -9
- package/compiler/compliance_test.go +0 -1
- package/compiler/config.go +2 -0
- package/compiler/gotest/request.go +28 -0
- package/compiler/gotest/runner.go +353 -27
- package/compiler/gotest/runner_test.go +400 -1
- package/compiler/gotest/testdata/browserapi/browserapi_test.go +20 -0
- package/compiler/gotest/testdata/browserapi/go.mod +3 -0
- package/compiler/lowered-program.go +24 -17
- package/compiler/lowering.go +988 -263
- package/compiler/lowering_bench_test.go +364 -0
- package/compiler/override-facts.go +15 -0
- package/compiler/override-parity-verifier.go +450 -0
- package/compiler/override-parity.go +122 -0
- package/compiler/override-registry_test.go +559 -0
- package/compiler/package-graph.go +61 -4
- package/compiler/package-graph_test.go +30 -0
- package/compiler/protobuf-ts-binding.go +514 -0
- package/compiler/protobuf-ts-binding_test.go +172 -0
- package/compiler/semantic-model-types.go +17 -4
- package/compiler/semantic-model.go +709 -72
- package/compiler/semantic-model_test.go +219 -0
- package/compiler/service.go +20 -1
- package/compiler/skeleton_test.go +1008 -20
- package/compiler/typescript-emitter.go +147 -15
- package/dist/gs/builtin/builtin.d.ts +2 -2
- package/dist/gs/builtin/builtin.js +20 -0
- package/dist/gs/builtin/builtin.js.map +1 -1
- package/dist/gs/builtin/slice.d.ts +2 -1
- package/dist/gs/builtin/slice.js +34 -4
- package/dist/gs/builtin/slice.js.map +1 -1
- package/dist/gs/builtin/type.d.ts +14 -6
- package/dist/gs/builtin/type.js +224 -64
- package/dist/gs/builtin/type.js.map +1 -1
- package/dist/gs/builtin/varRef.d.ts +11 -0
- package/dist/gs/builtin/varRef.js +57 -2
- package/dist/gs/builtin/varRef.js.map +1 -1
- package/dist/gs/bytes/buffer.gs.js +1 -1
- package/dist/gs/bytes/buffer.gs.js.map +1 -1
- package/dist/gs/bytes/reader.gs.js +1 -1
- package/dist/gs/bytes/reader.gs.js.map +1 -1
- package/dist/gs/compress/zlib/index.d.ts +13 -6
- package/dist/gs/compress/zlib/index.js +131 -35
- package/dist/gs/compress/zlib/index.js.map +1 -1
- package/dist/gs/crypto/sha1/index.js +2 -5
- package/dist/gs/crypto/sha1/index.js.map +1 -1
- package/dist/gs/crypto/sha256/index.js +2 -5
- package/dist/gs/crypto/sha256/index.js.map +1 -1
- package/dist/gs/crypto/sha512/index.js +2 -5
- package/dist/gs/crypto/sha512/index.js.map +1 -1
- package/dist/gs/embed/index.d.ts +6 -0
- package/dist/gs/embed/index.js +210 -5
- package/dist/gs/embed/index.js.map +1 -1
- package/dist/gs/encoding/json/index.d.ts +114 -0
- package/dist/gs/encoding/json/index.js +544 -36
- package/dist/gs/encoding/json/index.js.map +1 -1
- package/dist/gs/fmt/fmt.d.ts +3 -3
- package/dist/gs/fmt/fmt.js +29 -16
- package/dist/gs/fmt/fmt.js.map +1 -1
- package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/index.d.ts +100 -0
- package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/index.js +564 -0
- package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/index.js.map +1 -1
- package/dist/gs/github.com/go-git/go-billy/v6/osfs/index.d.ts +45 -0
- package/dist/gs/github.com/go-git/go-billy/v6/osfs/index.js +229 -0
- package/dist/gs/github.com/go-git/go-billy/v6/osfs/index.js.map +1 -0
- package/dist/gs/github.com/pkg/errors/errors.js +54 -30
- package/dist/gs/github.com/pkg/errors/errors.js.map +1 -1
- package/dist/gs/go/scanner/index.d.ts +2 -0
- package/dist/gs/go/scanner/index.js +29 -5
- package/dist/gs/go/scanner/index.js.map +1 -1
- package/dist/gs/go/token/index.js +22 -6
- package/dist/gs/go/token/index.js.map +1 -1
- package/dist/gs/hash/index.d.ts +6 -0
- package/dist/gs/hash/index.js +20 -0
- package/dist/gs/hash/index.js.map +1 -1
- package/dist/gs/internal/goarch/index.d.ts +43 -3
- package/dist/gs/internal/goarch/index.js +42 -10
- package/dist/gs/internal/goarch/index.js.map +1 -1
- package/dist/gs/io/fs/fs.js +26 -14
- package/dist/gs/io/fs/fs.js.map +1 -1
- package/dist/gs/io/fs/readdir.js +8 -4
- package/dist/gs/io/fs/readdir.js.map +1 -1
- package/dist/gs/io/fs/sub.js +8 -1
- package/dist/gs/io/fs/sub.js.map +1 -1
- package/dist/gs/io/io.d.ts +12 -6
- package/dist/gs/io/io.js +87 -42
- package/dist/gs/io/io.js.map +1 -1
- package/dist/gs/math/bits/index.d.ts +31 -5
- package/dist/gs/math/bits/index.js +29 -28
- package/dist/gs/math/bits/index.js.map +1 -1
- package/dist/gs/mime/index.d.ts +16 -0
- package/dist/gs/mime/index.js +315 -6
- package/dist/gs/mime/index.js.map +1 -1
- package/dist/gs/net/http/httptest/index.d.ts +12 -0
- package/dist/gs/net/http/httptest/index.js +85 -6
- package/dist/gs/net/http/httptest/index.js.map +1 -1
- package/dist/gs/net/http/index.d.ts +303 -6
- package/dist/gs/net/http/index.js +1615 -58
- package/dist/gs/net/http/index.js.map +1 -1
- package/dist/gs/os/dir_unix.gs.js +1 -1
- package/dist/gs/os/dir_unix.gs.js.map +1 -1
- package/dist/gs/os/error.gs.js +1 -1
- package/dist/gs/os/error.gs.js.map +1 -1
- package/dist/gs/os/exec.gs.d.ts +1 -0
- package/dist/gs/os/exec.gs.js +4 -8
- package/dist/gs/os/exec.gs.js.map +1 -1
- package/dist/gs/os/exec_posix.gs.js +1 -1
- package/dist/gs/os/exec_posix.gs.js.map +1 -1
- package/dist/gs/os/index.d.ts +1 -1
- package/dist/gs/os/index.js +1 -1
- package/dist/gs/os/index.js.map +1 -1
- package/dist/gs/os/proc.gs.d.ts +4 -0
- package/dist/gs/os/proc.gs.js +12 -6
- package/dist/gs/os/proc.gs.js.map +1 -1
- package/dist/gs/os/root_js.gs.js +1 -1
- package/dist/gs/os/root_js.gs.js.map +1 -1
- package/dist/gs/os/types.gs.js +1 -1
- package/dist/gs/os/types.gs.js.map +1 -1
- package/dist/gs/os/types_js.gs.d.ts +6 -2
- package/dist/gs/os/types_js.gs.js +170 -9
- package/dist/gs/os/types_js.gs.js.map +1 -1
- package/dist/gs/os/types_unix.gs.js +1 -1
- package/dist/gs/os/types_unix.gs.js.map +1 -1
- package/dist/gs/path/path.js +11 -7
- package/dist/gs/path/path.js.map +1 -1
- package/dist/gs/reflect/index.d.ts +5 -4
- package/dist/gs/reflect/index.js +4 -3
- package/dist/gs/reflect/index.js.map +1 -1
- package/dist/gs/reflect/map.js +15 -0
- package/dist/gs/reflect/map.js.map +1 -1
- package/dist/gs/reflect/type.d.ts +26 -6
- package/dist/gs/reflect/type.js +1498 -279
- package/dist/gs/reflect/type.js.map +1 -1
- package/dist/gs/reflect/types.d.ts +14 -6
- package/dist/gs/reflect/types.js +35 -1
- package/dist/gs/reflect/types.js.map +1 -1
- package/dist/gs/reflect/value.d.ts +1 -0
- package/dist/gs/reflect/value.js +83 -41
- package/dist/gs/reflect/value.js.map +1 -1
- package/dist/gs/reflect/visiblefields.js +4 -140
- package/dist/gs/reflect/visiblefields.js.map +1 -1
- package/dist/gs/runtime/pprof/index.d.ts +8 -2
- package/dist/gs/runtime/pprof/index.js +50 -30
- package/dist/gs/runtime/pprof/index.js.map +1 -1
- package/dist/gs/runtime/runtime.js +5 -4
- package/dist/gs/runtime/runtime.js.map +1 -1
- package/dist/gs/runtime/trace/index.js +5 -19
- package/dist/gs/runtime/trace/index.js.map +1 -1
- package/dist/gs/strconv/atoi.gs.js +1 -1
- package/dist/gs/strconv/atoi.gs.js.map +1 -1
- package/dist/gs/strconv/complex.gs.d.ts +3 -0
- package/dist/gs/strconv/complex.gs.js +148 -0
- package/dist/gs/strconv/complex.gs.js.map +1 -0
- package/dist/gs/strconv/index.d.ts +1 -0
- package/dist/gs/strconv/index.js +1 -0
- package/dist/gs/strconv/index.js.map +1 -1
- package/dist/gs/strings/builder.js +1 -1
- package/dist/gs/strings/reader.d.ts +1 -1
- package/dist/gs/strings/reader.js +11 -7
- package/dist/gs/strings/reader.js.map +1 -1
- package/dist/gs/strings/replace.js +15 -7
- package/dist/gs/strings/replace.js.map +1 -1
- package/dist/gs/strings/strings.d.ts +5 -0
- package/dist/gs/strings/strings.js +57 -5
- package/dist/gs/strings/strings.js.map +1 -1
- package/dist/gs/sync/atomic/type.gs.js +9 -9
- package/dist/gs/sync/atomic/type.gs.js.map +1 -1
- package/dist/gs/sync/atomic/value.gs.js +2 -2
- package/dist/gs/sync/atomic/value.gs.js.map +1 -1
- package/dist/gs/sync/sync.d.ts +2 -1
- package/dist/gs/sync/sync.js +37 -16
- package/dist/gs/sync/sync.js.map +1 -1
- package/dist/gs/syscall/env.js +22 -14
- package/dist/gs/syscall/env.js.map +1 -1
- package/dist/gs/syscall/js/index.js +9 -0
- package/dist/gs/syscall/js/index.js.map +1 -1
- package/dist/gs/testing/testing.js +59 -15
- package/dist/gs/testing/testing.js.map +1 -1
- package/dist/gs/time/time.d.ts +24 -1
- package/dist/gs/time/time.js +43 -3
- package/dist/gs/time/time.js.map +1 -1
- package/dist/gs/unique/index.js +7 -1
- package/dist/gs/unique/index.js.map +1 -1
- package/go.mod +3 -3
- package/go.sum +16 -0
- package/gs/builtin/builtin.ts +25 -2
- package/gs/builtin/runtime-contract.test.ts +260 -18
- package/gs/builtin/slice.ts +51 -4
- package/gs/builtin/type.ts +310 -63
- package/gs/builtin/varRef.ts +85 -2
- package/gs/bytes/buffer.gs.ts +1 -1
- package/gs/bytes/reader.gs.ts +1 -1
- package/gs/compress/zlib/index.test.ts +159 -1
- package/gs/compress/zlib/index.ts +164 -37
- package/gs/compress/zlib/meta.json +4 -1
- package/gs/compress/zlib/parity.json +51 -0
- package/gs/crypto/sha1/index.test.ts +19 -2
- package/gs/crypto/sha1/index.ts +3 -6
- package/gs/crypto/sha256/index.test.ts +14 -2
- package/gs/crypto/sha256/index.ts +3 -6
- package/gs/crypto/sha512/index.test.ts +17 -2
- package/gs/crypto/sha512/index.ts +3 -6
- package/gs/embed/index.test.ts +87 -0
- package/gs/embed/index.ts +229 -5
- package/gs/encoding/json/index.test.ts +360 -6
- package/gs/encoding/json/index.ts +679 -38
- package/gs/encoding/json/parity.json +81 -0
- package/gs/fmt/fmt.test.ts +41 -3
- package/gs/fmt/fmt.ts +40 -17
- package/gs/fmt/meta.json +6 -1
- package/gs/github.com/aperturerobotics/protobuf-go-lite/index.test.ts +211 -3
- package/gs/github.com/aperturerobotics/protobuf-go-lite/index.ts +857 -1
- package/gs/github.com/go-git/go-billy/v6/osfs/index.test.ts +110 -0
- package/gs/github.com/go-git/go-billy/v6/osfs/index.ts +280 -0
- package/gs/github.com/go-git/go-billy/v6/osfs/meta.json +8 -0
- package/gs/github.com/pkg/errors/errors.ts +54 -30
- package/gs/go/scanner/index.test.ts +39 -56
- package/gs/go/scanner/index.ts +33 -5
- package/gs/go/scanner/parity.json +27 -0
- package/gs/go/token/index.ts +22 -6
- package/gs/hash/index.test.ts +20 -33
- package/gs/hash/index.ts +28 -0
- package/gs/hash/parity.json +21 -0
- package/gs/internal/goarch/index.test.ts +32 -0
- package/gs/internal/goarch/index.ts +45 -13
- package/gs/internal/goarch/parity.json +144 -0
- package/gs/io/fs/fs.ts +26 -14
- package/gs/io/fs/readdir.test.ts +38 -0
- package/gs/io/fs/readdir.ts +8 -4
- package/gs/io/fs/sub.ts +8 -1
- package/gs/io/io.test.ts +77 -6
- package/gs/io/io.ts +115 -52
- package/gs/io/meta.json +7 -1
- package/gs/io/parity.json +162 -0
- package/gs/math/bits/index.test.ts +14 -1
- package/gs/math/bits/index.ts +75 -32
- package/gs/math/bits/parity.json +156 -0
- package/gs/mime/index.test.ts +90 -0
- package/gs/mime/index.ts +369 -6
- package/gs/mime/parity.json +36 -0
- package/gs/net/http/httptest/index.test.ts +98 -2
- package/gs/net/http/httptest/index.ts +101 -6
- package/gs/net/http/httptest/parity.json +15 -0
- package/gs/net/http/index.test.ts +797 -12
- package/gs/net/http/index.ts +1874 -136
- package/gs/net/http/meta.json +16 -1
- package/gs/net/http/parity.json +193 -0
- package/gs/os/dir_unix.gs.ts +1 -1
- package/gs/os/error.gs.ts +1 -1
- package/gs/os/exec.gs.ts +4 -8
- package/gs/os/exec_posix.gs.ts +1 -1
- package/gs/os/file_unix_js.test.ts +52 -0
- package/gs/os/index.test.ts +9 -0
- package/gs/os/index.ts +1 -0
- package/gs/os/meta.json +4 -0
- package/gs/os/parity.json +9 -0
- package/gs/os/proc.gs.ts +18 -5
- package/gs/os/proc.test.ts +26 -0
- package/gs/os/readdir.test.ts +56 -0
- package/gs/os/root_js.gs.ts +1 -1
- package/gs/os/types.gs.ts +1 -1
- package/gs/os/types_js.gs.ts +170 -9
- package/gs/os/types_unix.gs.ts +1 -1
- package/gs/path/path.ts +11 -7
- package/gs/reflect/deepequal.test.ts +10 -1
- package/gs/reflect/field.test.ts +37 -15
- package/gs/reflect/function-types.test.ts +518 -22
- package/gs/reflect/index.ts +8 -6
- package/gs/reflect/map.ts +20 -0
- package/gs/reflect/meta.json +6 -4
- package/gs/reflect/parity.json +234 -0
- package/gs/reflect/sliceat.test.ts +156 -0
- package/gs/reflect/structof.test.ts +401 -0
- package/gs/reflect/type.ts +1980 -365
- package/gs/reflect/typefor.test.ts +540 -10
- package/gs/reflect/types.ts +43 -18
- package/gs/reflect/value.ts +105 -45
- package/gs/reflect/visiblefields.ts +5 -168
- package/gs/runtime/parity.json +24 -0
- package/gs/runtime/pprof/index.test.ts +29 -7
- package/gs/runtime/pprof/index.ts +56 -30
- package/gs/runtime/pprof/parity.json +27 -0
- package/gs/runtime/runtime.test.ts +3 -1
- package/gs/runtime/runtime.ts +4 -3
- package/gs/runtime/trace/index.test.ts +5 -3
- package/gs/runtime/trace/index.ts +8 -20
- package/gs/runtime/trace/parity.json +36 -0
- package/gs/strconv/atoi.gs.ts +1 -1
- package/gs/strconv/complex.gs.ts +174 -0
- package/gs/strconv/complex.test.ts +65 -0
- package/gs/strconv/index.ts +1 -0
- package/gs/strconv/parity.json +120 -0
- package/gs/strings/builder.ts +1 -1
- package/gs/strings/meta.json +5 -2
- package/gs/strings/parity.json +186 -0
- package/gs/strings/reader.test.ts +2 -2
- package/gs/strings/reader.ts +11 -7
- package/gs/strings/replace.ts +15 -7
- package/gs/strings/strings.test.ts +22 -2
- package/gs/strings/strings.ts +64 -6
- package/gs/sync/atomic/type.gs.ts +9 -9
- package/gs/sync/atomic/value.gs.ts +2 -2
- package/gs/sync/meta.json +1 -0
- package/gs/sync/sync.test.ts +41 -1
- package/gs/sync/sync.ts +41 -16
- package/gs/syscall/env.ts +29 -14
- package/gs/syscall/js/index.test.ts +18 -0
- package/gs/syscall/js/index.ts +12 -0
- package/gs/testing/testing.test.ts +99 -3
- package/gs/testing/testing.ts +95 -24
- package/gs/time/parity.json +225 -0
- package/gs/time/time.test.ts +20 -2
- package/gs/time/time.ts +49 -7
- package/gs/unique/index.ts +7 -1
- package/package.json +4 -2
- package/dist/gs/github.com/aperturerobotics/starpc/srpc/index.d.ts +0 -217
- package/dist/gs/github.com/aperturerobotics/starpc/srpc/index.js +0 -814
- package/dist/gs/github.com/aperturerobotics/starpc/srpc/index.js.map +0 -1
- package/gs/github.com/aperturerobotics/starpc/srpc/index.test.ts +0 -31
- package/gs/github.com/aperturerobotics/starpc/srpc/index.ts +0 -1233
- package/gs/github.com/aperturerobotics/starpc/srpc/meta.json +0 -46
- /package/compiler/{wasm_api.go → wasm-api.go} +0 -0
package/gs/time/time.ts
CHANGED
|
@@ -877,6 +877,25 @@ export function WeekdayString(w: Weekday): string {
|
|
|
877
877
|
return names[w] || 'Unknown'
|
|
878
878
|
}
|
|
879
879
|
|
|
880
|
+
export function Month_String(m: Month): string {
|
|
881
|
+
const names = [
|
|
882
|
+
'',
|
|
883
|
+
'January',
|
|
884
|
+
'February',
|
|
885
|
+
'March',
|
|
886
|
+
'April',
|
|
887
|
+
'May',
|
|
888
|
+
'June',
|
|
889
|
+
'July',
|
|
890
|
+
'August',
|
|
891
|
+
'September',
|
|
892
|
+
'October',
|
|
893
|
+
'November',
|
|
894
|
+
'December',
|
|
895
|
+
]
|
|
896
|
+
return names[m] || `%!Month(${m})`
|
|
897
|
+
}
|
|
898
|
+
|
|
880
899
|
// Weekday_String returns the string representation of a Weekday (wrapper function naming)
|
|
881
900
|
export function Weekday_String(w: Weekday): string {
|
|
882
901
|
return WeekdayString(w)
|
|
@@ -909,7 +928,7 @@ export class ParseError extends Error {
|
|
|
909
928
|
|
|
910
929
|
// Timer represents a single event timer
|
|
911
930
|
export class Timer {
|
|
912
|
-
private _timeout:
|
|
931
|
+
private _timeout: ReturnType<typeof setTimeout>
|
|
913
932
|
private _duration: Duration
|
|
914
933
|
private _callback?: () => void
|
|
915
934
|
private _channel = makeChannel(1, new Time(), 'both')
|
|
@@ -939,7 +958,7 @@ export class Timer {
|
|
|
939
958
|
return true
|
|
940
959
|
}
|
|
941
960
|
|
|
942
|
-
private start(d: Duration):
|
|
961
|
+
private start(d: Duration): ReturnType<typeof setTimeout> {
|
|
943
962
|
const ms = timeoutMilliseconds(d)
|
|
944
963
|
if (this._callback) {
|
|
945
964
|
return setTimeout(this._callback, ms)
|
|
@@ -952,7 +971,7 @@ export class Timer {
|
|
|
952
971
|
|
|
953
972
|
// Ticker holds a channel that delivers ticks at intervals
|
|
954
973
|
export class Ticker {
|
|
955
|
-
private _interval:
|
|
974
|
+
private _interval: ReturnType<typeof setInterval>
|
|
956
975
|
private _duration: Duration
|
|
957
976
|
private _stopped: boolean = false
|
|
958
977
|
private _channel = makeChannel(1, new Time(), 'both')
|
|
@@ -988,7 +1007,7 @@ export class Ticker {
|
|
|
988
1007
|
}
|
|
989
1008
|
}
|
|
990
1009
|
|
|
991
|
-
private start(d: Duration):
|
|
1010
|
+
private start(d: Duration): ReturnType<typeof setInterval> {
|
|
992
1011
|
const ms = timeoutMilliseconds(d)
|
|
993
1012
|
return setInterval(() => {
|
|
994
1013
|
this._channel.send(Now()).catch(() => {})
|
|
@@ -1058,6 +1077,7 @@ export function Date(
|
|
|
1058
1077
|
|
|
1059
1078
|
// Common locations
|
|
1060
1079
|
export const UTC = new Location('UTC', 0)
|
|
1080
|
+
export const Local = new Location('Local')
|
|
1061
1081
|
|
|
1062
1082
|
// FixedZone returns a Location that always uses the given zone name and offset (seconds east of UTC)
|
|
1063
1083
|
export function FixedZone(name: string, offset: number): Location {
|
|
@@ -1104,12 +1124,35 @@ export const October = Month.October
|
|
|
1104
1124
|
export const November = Month.November
|
|
1105
1125
|
export const December = Month.December
|
|
1106
1126
|
|
|
1127
|
+
// Export weekday constants
|
|
1128
|
+
export const Sunday = Weekday.Sunday
|
|
1129
|
+
export const Monday = Weekday.Monday
|
|
1130
|
+
export const Tuesday = Weekday.Tuesday
|
|
1131
|
+
export const Wednesday = Weekday.Wednesday
|
|
1132
|
+
export const Thursday = Weekday.Thursday
|
|
1133
|
+
export const Friday = Weekday.Friday
|
|
1134
|
+
export const Saturday = Weekday.Saturday
|
|
1135
|
+
|
|
1107
1136
|
// Time layout constants (matching Go's time package)
|
|
1108
|
-
export const DateTime = '2006-01-02 15:04:05'
|
|
1109
1137
|
export const Layout = "01/02 03:04:05PM '06 -0700"
|
|
1138
|
+
export const ANSIC = 'Mon Jan _2 15:04:05 2006'
|
|
1139
|
+
export const UnixDate = 'Mon Jan _2 15:04:05 MST 2006'
|
|
1140
|
+
export const RubyDate = 'Mon Jan 02 15:04:05 -0700 2006'
|
|
1141
|
+
export const RFC822 = '02 Jan 06 15:04 MST'
|
|
1142
|
+
export const RFC822Z = '02 Jan 06 15:04 -0700'
|
|
1143
|
+
export const RFC850 = 'Monday, 02-Jan-06 15:04:05 MST'
|
|
1144
|
+
export const RFC1123 = 'Mon, 02 Jan 2006 15:04:05 MST'
|
|
1145
|
+
export const RFC1123Z = 'Mon, 02 Jan 2006 15:04:05 -0700'
|
|
1110
1146
|
export const RFC3339 = '2006-01-02T15:04:05Z07:00'
|
|
1111
1147
|
export const RFC3339Nano = '2006-01-02T15:04:05.999999999Z07:00'
|
|
1112
1148
|
export const Kitchen = '3:04PM'
|
|
1149
|
+
export const Stamp = 'Jan _2 15:04:05'
|
|
1150
|
+
export const StampMilli = 'Jan _2 15:04:05.000'
|
|
1151
|
+
export const StampMicro = 'Jan _2 15:04:05.000000'
|
|
1152
|
+
export const StampNano = 'Jan _2 15:04:05.000000000'
|
|
1153
|
+
export const DateTime = '2006-01-02 15:04:05'
|
|
1154
|
+
export const DateOnly = '2006-01-02'
|
|
1155
|
+
export const TimeOnly = '15:04:05'
|
|
1113
1156
|
|
|
1114
1157
|
// Unix returns the local Time corresponding to the given Unix time,
|
|
1115
1158
|
// sec seconds and nsec nanoseconds since January 1, 1970 UTC
|
|
@@ -1298,8 +1341,7 @@ export function LoadLocation(name: string): Location {
|
|
|
1298
1341
|
case 'UTC':
|
|
1299
1342
|
return UTC
|
|
1300
1343
|
case 'Local':
|
|
1301
|
-
|
|
1302
|
-
return new Location('Local')
|
|
1344
|
+
return Local
|
|
1303
1345
|
default:
|
|
1304
1346
|
throw new Error(`time: unknown time zone ${name}`)
|
|
1305
1347
|
}
|
package/gs/unique/index.ts
CHANGED
|
@@ -26,7 +26,13 @@ export class Handle<T = any> {
|
|
|
26
26
|
new Handle(),
|
|
27
27
|
[{ name: 'Value', args: [], returns: [] }],
|
|
28
28
|
Handle,
|
|
29
|
-
|
|
29
|
+
[
|
|
30
|
+
{
|
|
31
|
+
name: 'value',
|
|
32
|
+
key: 'value',
|
|
33
|
+
type: { kind: $.TypeKind.Interface, methods: [] },
|
|
34
|
+
},
|
|
35
|
+
],
|
|
30
36
|
)
|
|
31
37
|
}
|
|
32
38
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "goscript",
|
|
3
3
|
"description": "Go to TypeScript transpiler",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.2.0",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Aperture Robotics LLC.",
|
|
7
7
|
"email": "support@aperture.us",
|
|
@@ -48,6 +48,8 @@
|
|
|
48
48
|
"example": "cd ./example/simple && bash run.bash",
|
|
49
49
|
"test": "bun run test:go && bun run test:js",
|
|
50
50
|
"test:go": "go test ./...",
|
|
51
|
+
"test:go:browser": "go run ./cmd/goscript test --browser --timeout 1m --dir compiler/gotest/testdata/browserapi --run TestBrowserAPI .",
|
|
52
|
+
"test:go:browser:shim": "mkdir -p .tmp/bin && go build -o .tmp/bin/go_js_wasm_exec ./cmd/go_js_wasm_exec && sh -c 'exec_path=\"$PWD/.tmp/bin/go_js_wasm_exec\"; cd compiler/gotest/testdata/browserapi && GOOS=js GOARCH=wasm go test -exec \"$exec_path\" -run TestBrowserAPI -count=1'",
|
|
51
53
|
"test:js": "bun run typecheck && vitest run",
|
|
52
54
|
"test:browser": "bun run scripts/generate-browser-tests.ts && vitest run --config vitest.browser.config.ts",
|
|
53
55
|
"test:browser:ui": "bun run scripts/generate-browser-tests.ts && vitest --config vitest.browser.config.ts --ui",
|
|
@@ -106,7 +108,7 @@
|
|
|
106
108
|
"husky": "^9.1.7",
|
|
107
109
|
"lint-staged": "^17.0.0",
|
|
108
110
|
"prettier": "^3.8.1",
|
|
109
|
-
"starpc": "0.49.
|
|
111
|
+
"starpc": "0.49.16",
|
|
110
112
|
"typescript": "^6.0.0",
|
|
111
113
|
"typescript-eslint": "^8.58.0",
|
|
112
114
|
"vitest": "^4.1.2"
|
|
@@ -1,217 +0,0 @@
|
|
|
1
|
-
import * as $ from '@goscript/builtin/index.js';
|
|
2
|
-
import * as context from '@goscript/context/index.js';
|
|
3
|
-
import * as io from '@goscript/io/index.js';
|
|
4
|
-
import * as protobuf_go_lite from '@goscript/github.com/aperturerobotics/protobuf-go-lite/index.js';
|
|
5
|
-
import type { Client as StarpcClient, Mux as StarpcMux, Server as StarpcServer } from 'starpc';
|
|
6
|
-
export type Message = protobuf_go_lite.Message;
|
|
7
|
-
export type TypeScriptClient = StarpcClient;
|
|
8
|
-
export type TypeScriptMux = StarpcMux;
|
|
9
|
-
export type TypeScriptServer = StarpcServer;
|
|
10
|
-
type MaybePromise<T> = T | Promise<T>;
|
|
11
|
-
export declare const ErrReset: $.GoError;
|
|
12
|
-
export declare const ErrUnimplemented: $.GoError;
|
|
13
|
-
export declare const ErrCompleted: $.GoError;
|
|
14
|
-
export declare const ErrUnrecognizedPacket: $.GoError;
|
|
15
|
-
export declare const ErrEmptyPacket: $.GoError;
|
|
16
|
-
export declare const ErrInvalidMessage: $.GoError;
|
|
17
|
-
export declare const ErrEmptyMethodID: $.GoError;
|
|
18
|
-
export declare const ErrEmptyServiceID: $.GoError;
|
|
19
|
-
export declare const ErrNoAvailableClients: $.GoError;
|
|
20
|
-
export declare const ErrNilWriter: $.GoError;
|
|
21
|
-
export declare class RawMessage implements Message {
|
|
22
|
-
private data;
|
|
23
|
-
private copyData;
|
|
24
|
-
constructor(init?: Partial<{
|
|
25
|
-
data?: $.Slice<number>;
|
|
26
|
-
copy?: boolean;
|
|
27
|
-
}>);
|
|
28
|
-
GetData(): $.Slice<number>;
|
|
29
|
-
SetData(data: $.Slice<number>): void;
|
|
30
|
-
Clear(): void;
|
|
31
|
-
Reset(): void;
|
|
32
|
-
MarshalVT(): [$.Slice<number>, $.GoError];
|
|
33
|
-
UnmarshalVT(data: $.Slice<number>): $.GoError;
|
|
34
|
-
SizeVT(): number;
|
|
35
|
-
MarshalToSizedBufferVT(dAtA: $.Slice<number>): [number, $.GoError];
|
|
36
|
-
clone(): RawMessage;
|
|
37
|
-
}
|
|
38
|
-
export declare function NewRawMessage(data: $.Slice<number>, copy: boolean): RawMessage;
|
|
39
|
-
export interface Client {
|
|
40
|
-
ExecCall(ctx: context.Context, service: string, method: string, input: Message | null, output: Message | null): Promise<$.GoError>;
|
|
41
|
-
NewStream(ctx: context.Context, service: string, method: string, firstMsg: Message | null): Promise<[Stream | null, $.GoError]>;
|
|
42
|
-
}
|
|
43
|
-
export declare class ClientSet implements Client {
|
|
44
|
-
private clients;
|
|
45
|
-
constructor(init?: Partial<{
|
|
46
|
-
clients?: $.Slice<Client | null>;
|
|
47
|
-
}>);
|
|
48
|
-
ExecCall(ctx: context.Context, service: string, method: string, input: Message | null, output: Message | null): Promise<$.GoError>;
|
|
49
|
-
NewStream(ctx: context.Context, service: string, method: string, firstMsg: Message | null): Promise<[Stream | null, $.GoError]>;
|
|
50
|
-
private execCall;
|
|
51
|
-
}
|
|
52
|
-
export declare function NewClientSet(clients: $.Slice<Client | null>): ClientSet;
|
|
53
|
-
export declare class PrefixClient implements Client {
|
|
54
|
-
private client;
|
|
55
|
-
private serviceIDPrefixes;
|
|
56
|
-
constructor(clientOrInit?: Client | Partial<{
|
|
57
|
-
client?: Client | null;
|
|
58
|
-
serviceIDPrefixes?: $.Slice<string>;
|
|
59
|
-
}> | null, serviceIDPrefixes?: $.Slice<string>);
|
|
60
|
-
ExecCall(ctx: context.Context, service: string, method: string, input: Message | null, output: Message | null): Promise<$.GoError>;
|
|
61
|
-
NewStream(ctx: context.Context, service: string, method: string, firstMsg: Message | null): Promise<[Stream | null, $.GoError]>;
|
|
62
|
-
private stripCheckServiceIDPrefix;
|
|
63
|
-
}
|
|
64
|
-
export declare function NewPrefixClient(client: Client | null, serviceIDPrefixes: $.Slice<string>): PrefixClient;
|
|
65
|
-
export interface Stream {
|
|
66
|
-
Context(): context.Context;
|
|
67
|
-
MsgSend(msg: Message | null): MaybePromise<$.GoError>;
|
|
68
|
-
MsgRecv(msg: Message | null): MaybePromise<$.GoError>;
|
|
69
|
-
CloseSend(): MaybePromise<$.GoError>;
|
|
70
|
-
Close(): MaybePromise<$.GoError>;
|
|
71
|
-
}
|
|
72
|
-
export interface StreamRecv<T> extends Stream {
|
|
73
|
-
Recv(): MaybePromise<[T, $.GoError]>;
|
|
74
|
-
RecvTo(value: T): MaybePromise<$.GoError>;
|
|
75
|
-
}
|
|
76
|
-
export interface StreamSend<T> extends Stream {
|
|
77
|
-
Send(value: T): MaybePromise<$.GoError>;
|
|
78
|
-
}
|
|
79
|
-
export interface StreamSendAndClose<T> extends StreamSend<T> {
|
|
80
|
-
SendAndClose(value: T): MaybePromise<$.GoError>;
|
|
81
|
-
}
|
|
82
|
-
export declare function NewStreamWithClose(stream: Stream | null, close: () => MaybePromise<$.GoError>): Stream;
|
|
83
|
-
export interface Invoker {
|
|
84
|
-
InvokeMethod(serviceID: string, methodID: string, stream: Stream | null): MaybePromise<[boolean, $.GoError]>;
|
|
85
|
-
}
|
|
86
|
-
export interface QueryableInvoker {
|
|
87
|
-
HasService(serviceID: string): boolean;
|
|
88
|
-
HasServiceMethod(serviceID: string, methodID: string): boolean;
|
|
89
|
-
}
|
|
90
|
-
export type InvokerFunc = (serviceID: string, methodID: string, stream: Stream | null) => [boolean, $.GoError] | Promise<[boolean, $.GoError]>;
|
|
91
|
-
export declare function InvokeMethod(fn: InvokerFunc, serviceID: string, methodID: string, stream: Stream | null): Promise<[boolean, $.GoError]>;
|
|
92
|
-
export declare function InvokerFunc_InvokeMethod(fn: InvokerFunc, serviceID: string, methodID: string, stream: Stream | null): Promise<[boolean, $.GoError]>;
|
|
93
|
-
export type InvokerSlice = $.Slice<Invoker | null>;
|
|
94
|
-
export declare function InvokerSlice_InvokeMethod(s: InvokerSlice, serviceID: string, methodID: string, stream: Stream | null): Promise<[boolean, $.GoError]>;
|
|
95
|
-
export interface Handler extends Invoker {
|
|
96
|
-
GetServiceID(): string;
|
|
97
|
-
GetMethodIDs(): $.Slice<string>;
|
|
98
|
-
}
|
|
99
|
-
export interface Mux extends Invoker, QueryableInvoker {
|
|
100
|
-
Register(handler: Handler | null): $.GoError;
|
|
101
|
-
}
|
|
102
|
-
export declare function NewMux(...fallbackInvokers: (Invoker | null)[]): Mux;
|
|
103
|
-
export declare class PrefixInvoker implements Invoker {
|
|
104
|
-
private inv;
|
|
105
|
-
private serviceIDPrefixes;
|
|
106
|
-
constructor(invOrInit?: Invoker | Partial<{
|
|
107
|
-
inv?: Invoker | null;
|
|
108
|
-
serviceIDPrefixes?: $.Slice<string>;
|
|
109
|
-
}> | null, serviceIDPrefixes?: $.Slice<string>);
|
|
110
|
-
InvokeMethod(serviceID: string, methodID: string, stream: Stream | null): Promise<[boolean, $.GoError]>;
|
|
111
|
-
}
|
|
112
|
-
export declare function NewPrefixInvoker(inv: Invoker | null, serviceIDPrefixes: $.Slice<string>): PrefixInvoker;
|
|
113
|
-
export declare function CheckStripPrefix(serviceID: string, serviceIDPrefixes: $.Slice<string>): [string, string];
|
|
114
|
-
export declare class Server {
|
|
115
|
-
private invoker;
|
|
116
|
-
constructor(init?: Partial<{
|
|
117
|
-
invoker?: Invoker | null;
|
|
118
|
-
}>);
|
|
119
|
-
GetInvoker(): Invoker | null;
|
|
120
|
-
HandleStream(_ctx: context.Context, _rwc: io.ReadWriteCloser | null): void;
|
|
121
|
-
AcceptMuxedConn(_ctx: context.Context, _conn: MuxedConn | null): $.GoError;
|
|
122
|
-
}
|
|
123
|
-
export declare function NewServer(invoker: Invoker | null): Server;
|
|
124
|
-
export interface PacketWriter {
|
|
125
|
-
WritePacket(packet: Packet | null): MaybePromise<$.GoError>;
|
|
126
|
-
Close(): MaybePromise<$.GoError>;
|
|
127
|
-
}
|
|
128
|
-
export type OpenStreamFunc = ((ctx: context.Context, msgHandler: PacketDataHandler, closeHandler: CloseHandler) => MaybePromise<[PacketWriter | null, $.GoError]>) & {
|
|
129
|
-
__server?: Server;
|
|
130
|
-
};
|
|
131
|
-
export declare function NewClient(openStream: OpenStreamFunc | null): Client;
|
|
132
|
-
export declare function NewClientWithInvoker(invoker: Invoker | null, contextFn?: ((ctx: context.Context) => context.Context) | null): Client;
|
|
133
|
-
export type PacketHandler = ((pkt: Packet | null) => MaybePromise<$.GoError>) | null;
|
|
134
|
-
export type PacketDataHandler = ((data: $.Slice<number>) => MaybePromise<$.GoError>) | null;
|
|
135
|
-
export type CloseHandler = ((closeErr: $.GoError) => void) | null;
|
|
136
|
-
export declare function NewStreamWithContext(stream: Stream | null, ctx: context.Context): Stream;
|
|
137
|
-
export declare class ServerRPC {
|
|
138
|
-
private ctx;
|
|
139
|
-
private invoker;
|
|
140
|
-
private writer;
|
|
141
|
-
constructor(ctx: context.Context, invoker: Invoker | null, writer: PacketWriter | null);
|
|
142
|
-
HandlePacketData(data: $.Slice<number>): Promise<$.GoError>;
|
|
143
|
-
HandlePacket(pkt: Packet | null): Promise<$.GoError>;
|
|
144
|
-
HandleCallStart(pkt: CallStart | null): Promise<$.GoError>;
|
|
145
|
-
HandleStreamClose(_closeErr: $.GoError): void;
|
|
146
|
-
Wait(_ctx: context.Context): $.GoError;
|
|
147
|
-
}
|
|
148
|
-
export declare function NewServerRPC(ctx: context.Context, invoker: Invoker | null, writer: PacketWriter | null): ServerRPC;
|
|
149
|
-
export declare class PacketReadWriter implements PacketWriter {
|
|
150
|
-
private rw;
|
|
151
|
-
constructor(rw: io.ReadWriteCloser | null);
|
|
152
|
-
Write(data: $.Slice<number>): [number, $.GoError];
|
|
153
|
-
WritePacket(_packet: Packet | null): $.GoError;
|
|
154
|
-
ReadPump(_cb: PacketDataHandler, closed: CloseHandler): void;
|
|
155
|
-
ReadToHandler(_cb: PacketDataHandler): $.GoError;
|
|
156
|
-
Close(): $.GoError;
|
|
157
|
-
}
|
|
158
|
-
export declare function NewPacketReadWriter(rw: io.ReadWriteCloser | null): PacketReadWriter;
|
|
159
|
-
export declare function NewServerPipe(server: Server | null): OpenStreamFunc;
|
|
160
|
-
export declare class MuxedConn {
|
|
161
|
-
rwc: any;
|
|
162
|
-
outbound: boolean;
|
|
163
|
-
constructor(rwc?: any, outbound?: boolean);
|
|
164
|
-
Close(): $.GoError;
|
|
165
|
-
}
|
|
166
|
-
export declare function NewOpenStreamWithMuxedConn(_conn: MuxedConn): OpenStreamFunc;
|
|
167
|
-
export declare function NewMuxedConn(rwc: any, outbound: boolean, _yamuxConf: unknown): [MuxedConn | null, $.GoError];
|
|
168
|
-
export declare function NewWebSocketConn(_ctx: context.Context, conn: unknown, isServer: boolean, yamuxConf: unknown): [MuxedConn | null, $.GoError];
|
|
169
|
-
export declare function NewClientWithMuxedConn(_conn: MuxedConn | null): Client;
|
|
170
|
-
export declare function NewMuxedConnWithRwc(_ctx: context.Context, _rwc: io.ReadWriteCloser | null, _outbound: boolean, _yamuxConf: unknown): [MuxedConn | null, $.GoError];
|
|
171
|
-
export declare function NewClientInvoker(client: Client | null): Invoker;
|
|
172
|
-
export declare class Packet {
|
|
173
|
-
Body: unknown;
|
|
174
|
-
GetBody(): unknown;
|
|
175
|
-
MarshalVT(): [$.Slice<number>, $.GoError];
|
|
176
|
-
UnmarshalVT(_data: $.Slice<number>): $.GoError;
|
|
177
|
-
SizeVT(): number;
|
|
178
|
-
MarshalToSizedBufferVT(_data: $.Slice<number>): [number, $.GoError];
|
|
179
|
-
Reset(): void;
|
|
180
|
-
}
|
|
181
|
-
export declare class CallStart {
|
|
182
|
-
RpcService: string;
|
|
183
|
-
RpcMethod: string;
|
|
184
|
-
Data: $.Slice<number>;
|
|
185
|
-
DataIsZero: boolean;
|
|
186
|
-
GetRpcService(): string;
|
|
187
|
-
GetRpcMethod(): string;
|
|
188
|
-
GetData(): $.Slice<number>;
|
|
189
|
-
GetDataIsZero(): boolean;
|
|
190
|
-
}
|
|
191
|
-
export declare class CallData {
|
|
192
|
-
Data: $.Slice<number>;
|
|
193
|
-
DataIsZero: boolean;
|
|
194
|
-
Complete: boolean;
|
|
195
|
-
Error: string;
|
|
196
|
-
GetData(): $.Slice<number>;
|
|
197
|
-
GetDataIsZero(): boolean;
|
|
198
|
-
GetComplete(): boolean;
|
|
199
|
-
GetError(): string;
|
|
200
|
-
}
|
|
201
|
-
export declare class Packet_CallStart {
|
|
202
|
-
CallStart: CallStart | null;
|
|
203
|
-
constructor(CallStart?: CallStart | null);
|
|
204
|
-
}
|
|
205
|
-
export declare class Packet_CallData {
|
|
206
|
-
CallData: CallData | null;
|
|
207
|
-
constructor(CallData?: CallData | null);
|
|
208
|
-
}
|
|
209
|
-
export declare class Packet_CallCancel {
|
|
210
|
-
CallCancel: boolean;
|
|
211
|
-
constructor(CallCancel?: boolean);
|
|
212
|
-
}
|
|
213
|
-
export declare function NewPacketDataHandler(handler: PacketHandler): PacketDataHandler;
|
|
214
|
-
export declare function NewCallStartPacket(service: string, method: string, data: $.Slice<number>, dataIsZero: boolean): Packet;
|
|
215
|
-
export declare function NewCallDataPacket(data: $.Slice<number>, dataIsZero: boolean, complete: boolean, err: $.GoError): Packet;
|
|
216
|
-
export declare function NewCallCancelPacket(): Packet;
|
|
217
|
-
export {};
|