goscript 0.2.2 → 0.2.3
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/compiler/gotest/testdata/browserapi/browserapi_test.go +36 -0
- package/compiler/lowering.go +223 -9
- package/compiler/override-registry_test.go +50 -0
- package/compiler/protobuf-ts-binding.go +154 -6
- package/compiler/protobuf-ts-binding_test.go +7 -2
- package/compiler/runtime-contract.go +2 -0
- package/compiler/runtime-contract_test.go +1 -0
- package/compiler/semantic-model.go +16 -0
- package/compiler/semantic-model_test.go +38 -0
- package/compiler/skeleton_test.go +473 -15
- package/compiler/typescript-emitter.go +4 -0
- package/dist/gs/builtin/builtin.js +7 -9
- package/dist/gs/builtin/builtin.js.map +1 -1
- package/dist/gs/builtin/defer.js +2 -2
- package/dist/gs/builtin/hostio.js +5 -5
- package/dist/gs/builtin/hostio.js.map +1 -1
- package/dist/gs/builtin/map.js +2 -1
- package/dist/gs/builtin/map.js.map +1 -1
- package/dist/gs/builtin/slice.d.ts +3 -0
- package/dist/gs/builtin/slice.js +39 -0
- package/dist/gs/builtin/slice.js.map +1 -1
- package/dist/gs/builtin/type.js +49 -0
- package/dist/gs/builtin/type.js.map +1 -1
- package/dist/gs/compress/zlib/index.js +5 -2
- package/dist/gs/compress/zlib/index.js.map +1 -1
- package/dist/gs/crypto/ecdh/index.js +27 -8
- package/dist/gs/crypto/ecdh/index.js.map +1 -1
- package/dist/gs/crypto/ed25519/index.js +3 -3
- package/dist/gs/crypto/ed25519/index.js.map +1 -1
- package/dist/gs/crypto/rand/index.js +6 -3
- package/dist/gs/crypto/rand/index.js.map +1 -1
- package/dist/gs/embed/index.js +9 -3
- package/dist/gs/embed/index.js.map +1 -1
- package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/index.d.ts +1 -0
- package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/index.js +33 -0
- package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/index.js.map +1 -1
- package/dist/gs/github.com/mr-tron/base58/base58/index.js +4 -1
- package/dist/gs/github.com/mr-tron/base58/base58/index.js.map +1 -1
- package/dist/gs/golang.org/x/crypto/scrypt/index.d.ts +2 -0
- package/dist/gs/golang.org/x/crypto/scrypt/index.js +39 -0
- package/dist/gs/golang.org/x/crypto/scrypt/index.js.map +1 -0
- package/dist/gs/hash/fnv/index.js +13 -5
- package/dist/gs/hash/fnv/index.js.map +1 -1
- package/dist/gs/io/fs/glob.d.ts +3 -3
- package/dist/gs/io/fs/glob.js +8 -8
- package/dist/gs/io/fs/glob.js.map +1 -1
- package/dist/gs/io/fs/readdir.d.ts +2 -2
- package/dist/gs/io/fs/readdir.js +13 -74
- package/dist/gs/io/fs/readdir.js.map +1 -1
- package/dist/gs/io/fs/sub.js +4 -4
- package/dist/gs/io/fs/sub.js.map +1 -1
- package/dist/gs/io/fs/walk.js +1 -1
- package/dist/gs/io/fs/walk.js.map +1 -1
- package/dist/gs/maps/iter.js.map +1 -1
- package/dist/gs/maps/maps.js.map +1 -1
- package/dist/gs/mime/index.js +5 -2
- package/dist/gs/mime/index.js.map +1 -1
- package/dist/gs/net/http/httptest/index.js +6 -3
- package/dist/gs/net/http/httptest/index.js.map +1 -1
- package/dist/gs/net/http/index.d.ts +16 -4
- package/dist/gs/net/http/index.js +236 -40
- package/dist/gs/net/http/index.js.map +1 -1
- package/dist/gs/net/http/pprof/index.js.map +1 -1
- package/dist/gs/reflect/iter.js +1 -1
- package/dist/gs/reflect/iter.js.map +1 -1
- package/dist/gs/reflect/type.d.ts +2 -0
- package/dist/gs/reflect/type.js +53 -21
- package/dist/gs/reflect/type.js.map +1 -1
- package/dist/gs/runtime/pprof/index.js.map +1 -1
- package/dist/gs/runtime/runtime.js +2 -2
- package/dist/gs/runtime/runtime.js.map +1 -1
- package/dist/gs/runtime/trace/index.js.map +1 -1
- package/dist/gs/slices/slices.d.ts +1 -1
- package/dist/gs/slices/slices.js +37 -4
- package/dist/gs/slices/slices.js.map +1 -1
- package/gs/builtin/builtin.ts +11 -14
- package/gs/builtin/defer.ts +2 -2
- package/gs/builtin/hostio.ts +5 -5
- package/gs/builtin/map.ts +4 -1
- package/gs/builtin/slice.test.ts +14 -0
- package/gs/builtin/slice.ts +64 -0
- package/gs/builtin/type.ts +72 -0
- package/gs/bytes/bytes.test.ts +14 -13
- package/gs/compress/zlib/index.test.ts +19 -5
- package/gs/compress/zlib/index.ts +16 -7
- package/gs/context/context.test.ts +3 -1
- package/gs/crypto/ecdh/index.test.ts +6 -2
- package/gs/crypto/ecdh/index.ts +49 -12
- package/gs/crypto/ed25519/index.ts +20 -7
- package/gs/crypto/rand/index.ts +6 -3
- package/gs/embed/index.test.ts +3 -3
- package/gs/embed/index.ts +9 -3
- package/gs/fmt/fmt.test.ts +29 -4
- package/gs/github.com/aperturerobotics/protobuf-go-lite/index.test.ts +126 -0
- package/gs/github.com/aperturerobotics/protobuf-go-lite/index.ts +46 -0
- package/gs/github.com/mr-tron/base58/base58/index.ts +9 -3
- package/gs/github.com/zeebo/blake3/internal/consts/index.test.ts +2 -8
- package/gs/golang.org/x/crypto/scrypt/index.test.ts +81 -0
- package/gs/golang.org/x/crypto/scrypt/index.ts +54 -0
- package/gs/golang.org/x/crypto/scrypt/meta.json +5 -0
- package/gs/hash/fnv/index.test.ts +1 -8
- package/gs/hash/fnv/index.ts +27 -10
- package/gs/io/fs/glob.ts +13 -10
- package/gs/io/fs/meta.json +2 -0
- package/gs/io/fs/readdir.test.ts +63 -2
- package/gs/io/fs/readdir.ts +33 -30
- package/gs/io/fs/sub.ts +4 -4
- package/gs/io/fs/walk.ts +1 -1
- package/gs/maps/iter.ts +9 -9
- package/gs/maps/maps.ts +4 -4
- package/gs/math/bits/index.test.ts +10 -1
- package/gs/mime/index.test.ts +33 -15
- package/gs/mime/index.ts +9 -2
- package/gs/net/http/httptest/index.test.ts +17 -3
- package/gs/net/http/httptest/index.ts +8 -3
- package/gs/net/http/index.test.ts +645 -123
- package/gs/net/http/index.ts +548 -113
- package/gs/net/http/pprof/index.ts +24 -6
- package/gs/os/file_unix_js.test.ts +22 -0
- package/gs/reflect/iter.ts +4 -2
- package/gs/reflect/map.test.ts +56 -1
- package/gs/reflect/type.ts +76 -37
- package/gs/runtime/pprof/index.test.ts +7 -1
- package/gs/runtime/pprof/index.ts +5 -1
- package/gs/runtime/runtime.test.ts +7 -0
- package/gs/runtime/runtime.ts +2 -4
- package/gs/runtime/trace/index.test.ts +9 -1
- package/gs/runtime/trace/index.ts +5 -1
- package/gs/slices/meta.json +3 -0
- package/gs/slices/slices.test.ts +59 -21
- package/gs/slices/slices.ts +61 -20
- package/gs/strconv/complex.test.ts +17 -3
- package/gs/sync/atomic/doc_64.test.ts +2 -9
- package/gs/sync/sync.test.ts +18 -8
- package/gs/syscall/js/index.test.ts +9 -4
- package/package.json +5 -4
|
@@ -47,20 +47,34 @@ describe('net/http/httptest override', () => {
|
|
|
47
47
|
})
|
|
48
48
|
|
|
49
49
|
it('exports request defaults and recorder compatibility helpers', () => {
|
|
50
|
-
const req = NewRequestWithContext(
|
|
50
|
+
const req = NewRequestWithContext(
|
|
51
|
+
context.Background(),
|
|
52
|
+
'',
|
|
53
|
+
'https://example.invalid/path',
|
|
54
|
+
null,
|
|
55
|
+
)
|
|
51
56
|
expect(DefaultRemoteAddr).toBe('1.2.3.4')
|
|
52
57
|
expect(req.Method).toBe(MethodGet)
|
|
53
58
|
expect(req.Host).toBe('example.invalid')
|
|
54
59
|
expect(req.RemoteAddr).toBe('192.0.2.1:1234')
|
|
55
60
|
expect(req.TLS).not.toBeNull()
|
|
56
61
|
|
|
57
|
-
const pathReq = NewRequestWithContext(
|
|
62
|
+
const pathReq = NewRequestWithContext(
|
|
63
|
+
context.Background(),
|
|
64
|
+
MethodGet,
|
|
65
|
+
'/local?x=1',
|
|
66
|
+
null,
|
|
67
|
+
)
|
|
58
68
|
expect(pathReq.Host).toBe('example.com')
|
|
59
69
|
expect(pathReq.RequestURI).toBe('/local?x=1')
|
|
60
70
|
expect(pathReq.URL.Host).toBe('')
|
|
61
71
|
expect(pathReq.URL.Scheme).toBe('')
|
|
62
72
|
|
|
63
|
-
const bodyReq = NewTestRequest(
|
|
73
|
+
const bodyReq = NewTestRequest(
|
|
74
|
+
MethodPost,
|
|
75
|
+
'/body',
|
|
76
|
+
bytes.NewReader($.stringToBytes('abc')),
|
|
77
|
+
)
|
|
64
78
|
expect(bodyReq.ContentLength).toBe(3)
|
|
65
79
|
const noBodyReq = NewTestRequest(MethodPost, '/empty', NoBody)
|
|
66
80
|
expect(noBodyReq.ContentLength).toBe(0)
|
|
@@ -117,7 +117,11 @@ function requestBodyContentLength(body: io.Reader | null): number {
|
|
|
117
117
|
if (value === http.NoBody) {
|
|
118
118
|
return 0
|
|
119
119
|
}
|
|
120
|
-
if (
|
|
120
|
+
if (
|
|
121
|
+
value instanceof bytes.Buffer ||
|
|
122
|
+
value instanceof bytes.Reader ||
|
|
123
|
+
value instanceof strings.Reader
|
|
124
|
+
) {
|
|
121
125
|
return value.Len()
|
|
122
126
|
}
|
|
123
127
|
return -1
|
|
@@ -133,7 +137,8 @@ export class Server {
|
|
|
133
137
|
|
|
134
138
|
constructor(init?: Partial<Server> & { Handler?: http.Handler | null }) {
|
|
135
139
|
this.handler = init?.Handler ?? null
|
|
136
|
-
this.ConfigValue =
|
|
140
|
+
this.ConfigValue =
|
|
141
|
+
init?.ConfigValue ?? new http.Server({ Handler: this.handler })
|
|
137
142
|
this.URL = init?.URL ?? http.RegisterInProcessServer(this.handler)
|
|
138
143
|
}
|
|
139
144
|
|
|
@@ -200,7 +205,7 @@ function serverRequest(request: http.Request): http.Request {
|
|
|
200
205
|
const rawQuery = request.URL?.RawQuery ?? ''
|
|
201
206
|
const query = rawQuery === '' ? '' : `?${rawQuery}`
|
|
202
207
|
req.RequestURI = `${request.URL?.Path ?? '/'}${query}`
|
|
203
|
-
req.Host = request.Host === '' ? request.URL?.Host ?? '' : request.Host
|
|
208
|
+
req.Host = request.Host === '' ? (request.URL?.Host ?? '') : request.Host
|
|
204
209
|
if (req.URL?.clone != null) {
|
|
205
210
|
req.URL = req.URL.clone()
|
|
206
211
|
req.URL.Scheme = ''
|