goscript 0.1.3 → 0.1.4
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/cmd/goscript/cmd_compile.go +28 -8
- package/cmd/goscript/cmd_compile_test.go +105 -6
- package/compiler/build-flags.go +9 -10
- package/compiler/gotest/runner_test.go +127 -0
- package/compiler/lowering.go +596 -136
- package/compiler/lowering_bench_test.go +350 -0
- package/compiler/package-graph.go +61 -4
- package/compiler/package-graph_test.go +30 -0
- package/compiler/semantic-model-types.go +8 -0
- package/compiler/semantic-model.go +447 -22
- package/compiler/semantic-model_test.go +138 -0
- package/compiler/skeleton_test.go +948 -14
- package/compiler/typescript-emitter.go +19 -2
- 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.js +5 -0
- package/dist/gs/builtin/slice.js.map +1 -1
- package/dist/gs/builtin/type.d.ts +1 -1
- package/dist/gs/builtin/type.js +72 -5
- package/dist/gs/builtin/type.js.map +1 -1
- package/dist/gs/compress/zlib/index.d.ts +3 -3
- package/dist/gs/compress/zlib/index.js +88 -26
- 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/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/starpc/srpc/index.js +118 -6
- package/dist/gs/github.com/aperturerobotics/starpc/srpc/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/io/fs/readdir.js +5 -3
- package/dist/gs/io/fs/readdir.js.map +1 -1
- package/dist/gs/io/io.d.ts +10 -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 +26 -5
- package/dist/gs/math/bits/index.js +13 -24
- package/dist/gs/math/bits/index.js.map +1 -1
- package/dist/gs/net/http/index.d.ts +3 -1
- package/dist/gs/net/http/index.js +18 -1
- package/dist/gs/net/http/index.js.map +1 -1
- package/dist/gs/os/types_js.gs.d.ts +6 -2
- package/dist/gs/os/types_js.gs.js +169 -8
- package/dist/gs/os/types_js.gs.js.map +1 -1
- package/dist/gs/reflect/type.d.ts +1 -0
- package/dist/gs/reflect/type.js +80 -51
- package/dist/gs/reflect/type.js.map +1 -1
- package/dist/gs/strings/reader.d.ts +1 -1
- package/dist/gs/strings/reader.js +2 -2
- package/dist/gs/strings/reader.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/js/index.js +9 -0
- package/dist/gs/syscall/js/index.js.map +1 -1
- package/dist/gs/testing/testing.js +8 -6
- package/dist/gs/testing/testing.js.map +1 -1
- package/gs/builtin/builtin.ts +25 -2
- package/gs/builtin/runtime-contract.test.ts +45 -0
- package/gs/builtin/slice.ts +7 -0
- package/gs/builtin/type.ts +85 -5
- package/gs/compress/zlib/index.test.ts +97 -0
- package/gs/compress/zlib/index.ts +117 -27
- package/gs/compress/zlib/meta.json +4 -1
- 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/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/starpc/srpc/index.test.ts +8 -1
- package/gs/github.com/aperturerobotics/starpc/srpc/index.ts +139 -11
- 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/io/fs/readdir.test.ts +38 -0
- package/gs/io/fs/readdir.ts +7 -3
- package/gs/io/io.test.ts +77 -6
- package/gs/io/io.ts +114 -52
- package/gs/io/meta.json +7 -1
- package/gs/math/bits/index.ts +52 -28
- package/gs/net/http/index.test.ts +16 -0
- package/gs/net/http/index.ts +19 -2
- package/gs/os/file_unix_js.test.ts +52 -0
- package/gs/os/meta.json +4 -0
- package/gs/os/readdir.test.ts +56 -0
- package/gs/os/types_js.gs.ts +169 -8
- package/gs/reflect/deepequal.test.ts +10 -1
- package/gs/reflect/type.ts +91 -56
- package/gs/reflect/typefor.test.ts +31 -1
- package/gs/strings/meta.json +5 -2
- package/gs/strings/reader.test.ts +2 -2
- package/gs/strings/reader.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/js/index.test.ts +18 -0
- package/gs/syscall/js/index.ts +12 -0
- package/gs/testing/testing.test.ts +32 -3
- package/gs/testing/testing.ts +13 -10
- package/package.json +1 -1
package/dist/gs/embed/index.js
CHANGED
|
@@ -1,16 +1,221 @@
|
|
|
1
|
+
import * as $ from '@goscript/builtin/index.js';
|
|
2
|
+
import * as io from '@goscript/io/index.js';
|
|
1
3
|
import * as fs from '@goscript/io/fs/index.js';
|
|
4
|
+
import * as time from '@goscript/time/index.js';
|
|
2
5
|
export class FS {
|
|
6
|
+
files;
|
|
7
|
+
constructor(files) {
|
|
8
|
+
this.files = files ?? new Map();
|
|
9
|
+
}
|
|
10
|
+
clone() {
|
|
11
|
+
const files = new Map();
|
|
12
|
+
for (const [name, data] of this.files) {
|
|
13
|
+
files.set(name, data.slice());
|
|
14
|
+
}
|
|
15
|
+
return $.markAsStructValue(new FS(files));
|
|
16
|
+
}
|
|
3
17
|
Open(name) {
|
|
4
|
-
|
|
18
|
+
const err = validatePath('open', name);
|
|
19
|
+
if (err != null) {
|
|
20
|
+
return [null, err];
|
|
21
|
+
}
|
|
22
|
+
const data = this.files.get(name);
|
|
23
|
+
if (data !== undefined) {
|
|
24
|
+
return [new embedFile(name, data), null];
|
|
25
|
+
}
|
|
26
|
+
const entries = this.dirEntries(name);
|
|
27
|
+
if (entries === null) {
|
|
28
|
+
return [null, pathError('open', name, fs.ErrNotExist)];
|
|
29
|
+
}
|
|
30
|
+
return [new embedFile(name, null, entries), null];
|
|
5
31
|
}
|
|
6
32
|
ReadDir(name) {
|
|
7
|
-
|
|
33
|
+
const err = validatePath('read', name);
|
|
34
|
+
if (err != null) {
|
|
35
|
+
return [null, err];
|
|
36
|
+
}
|
|
37
|
+
const entries = this.dirEntries(name);
|
|
38
|
+
if (entries === null) {
|
|
39
|
+
return [null, pathError('read', name, fs.ErrNotExist)];
|
|
40
|
+
}
|
|
41
|
+
return [entries, null];
|
|
8
42
|
}
|
|
9
43
|
ReadFile(name) {
|
|
10
|
-
|
|
44
|
+
const err = validatePath('read', name);
|
|
45
|
+
if (err != null) {
|
|
46
|
+
return [new Uint8Array(0), err];
|
|
47
|
+
}
|
|
48
|
+
const data = this.files.get(name);
|
|
49
|
+
if (data === undefined) {
|
|
50
|
+
const err = this.dirExists(name) ? fs.ErrInvalid : fs.ErrNotExist;
|
|
51
|
+
return [new Uint8Array(0), pathError('read', name, err)];
|
|
52
|
+
}
|
|
53
|
+
return [data.slice(), null];
|
|
54
|
+
}
|
|
55
|
+
Stat(name) {
|
|
56
|
+
const err = validatePath('stat', name);
|
|
57
|
+
if (err != null) {
|
|
58
|
+
return [null, err];
|
|
59
|
+
}
|
|
60
|
+
const data = this.files.get(name);
|
|
61
|
+
if (data !== undefined) {
|
|
62
|
+
return [new embedFileInfo(baseName(name), data.byteLength, 0o444), null];
|
|
63
|
+
}
|
|
64
|
+
if (!this.dirExists(name)) {
|
|
65
|
+
return [null, pathError('stat', name, fs.ErrNotExist)];
|
|
66
|
+
}
|
|
67
|
+
return [new embedFileInfo(baseName(name), 0, fs.ModeDir | 0o555), null];
|
|
68
|
+
}
|
|
69
|
+
dirEntries(name) {
|
|
70
|
+
if (!this.dirExists(name)) {
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
const prefix = name === '.' ? '' : name + '/';
|
|
74
|
+
const entries = new Map();
|
|
75
|
+
for (const [filePath, data] of this.files) {
|
|
76
|
+
if (prefix !== '' && !filePath.startsWith(prefix)) {
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
const rest = prefix === '' ? filePath : filePath.slice(prefix.length);
|
|
80
|
+
if (rest === '') {
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
const slash = rest.indexOf('/');
|
|
84
|
+
const childName = slash === -1 ? rest : rest.slice(0, slash);
|
|
85
|
+
if (entries.has(childName)) {
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
88
|
+
const isDir = slash !== -1;
|
|
89
|
+
const info = isDir ?
|
|
90
|
+
new embedFileInfo(childName, 0, fs.ModeDir | 0o555)
|
|
91
|
+
: new embedFileInfo(childName, data.byteLength, 0o444);
|
|
92
|
+
entries.set(childName, new embedDirEntry(info));
|
|
93
|
+
}
|
|
94
|
+
return Array.from(entries.values()).sort((a, b) => a.Name().localeCompare(b.Name()));
|
|
95
|
+
}
|
|
96
|
+
dirExists(name) {
|
|
97
|
+
if (name === '.') {
|
|
98
|
+
return true;
|
|
99
|
+
}
|
|
100
|
+
const prefix = name + '/';
|
|
101
|
+
for (const path of this.files.keys()) {
|
|
102
|
+
if (path.startsWith(prefix)) {
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return false;
|
|
11
107
|
}
|
|
12
108
|
}
|
|
13
|
-
|
|
14
|
-
|
|
109
|
+
class embedFile {
|
|
110
|
+
name;
|
|
111
|
+
data;
|
|
112
|
+
entries;
|
|
113
|
+
offset = 0;
|
|
114
|
+
dirOffset = 0;
|
|
115
|
+
constructor(name, data, entries = []) {
|
|
116
|
+
this.name = name;
|
|
117
|
+
this.data = data;
|
|
118
|
+
this.entries = entries;
|
|
119
|
+
}
|
|
120
|
+
Close() {
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
Read(buffer) {
|
|
124
|
+
if (this.data === null) {
|
|
125
|
+
return [0, pathError('read', this.name, fs.ErrInvalid)];
|
|
126
|
+
}
|
|
127
|
+
if (this.offset >= this.data.byteLength) {
|
|
128
|
+
return [0, io.EOF];
|
|
129
|
+
}
|
|
130
|
+
const n = Math.min(buffer.byteLength, this.data.byteLength - this.offset);
|
|
131
|
+
buffer.set(this.data.subarray(this.offset, this.offset + n));
|
|
132
|
+
this.offset += n;
|
|
133
|
+
return [n, null];
|
|
134
|
+
}
|
|
135
|
+
ReadDir(n) {
|
|
136
|
+
if (this.data !== null) {
|
|
137
|
+
return [null, pathError('readdir', this.name, fs.ErrInvalid)];
|
|
138
|
+
}
|
|
139
|
+
const allEntries = this.entries ?? [];
|
|
140
|
+
if (n <= 0) {
|
|
141
|
+
const entries = allEntries.slice(this.dirOffset);
|
|
142
|
+
this.dirOffset = allEntries.length;
|
|
143
|
+
return [entries, null];
|
|
144
|
+
}
|
|
145
|
+
if (this.dirOffset >= allEntries.length) {
|
|
146
|
+
return [[], io.EOF];
|
|
147
|
+
}
|
|
148
|
+
const entries = allEntries.slice(this.dirOffset, this.dirOffset + n);
|
|
149
|
+
this.dirOffset += entries.length;
|
|
150
|
+
return [entries, null];
|
|
151
|
+
}
|
|
152
|
+
Stat() {
|
|
153
|
+
if (this.data === null) {
|
|
154
|
+
return [new embedFileInfo(baseName(this.name), 0, fs.ModeDir | 0o555), null];
|
|
155
|
+
}
|
|
156
|
+
return [new embedFileInfo(baseName(this.name), this.data.byteLength, 0o444), null];
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
class embedFileInfo {
|
|
160
|
+
name;
|
|
161
|
+
size;
|
|
162
|
+
mode;
|
|
163
|
+
constructor(name, size, mode) {
|
|
164
|
+
this.name = name;
|
|
165
|
+
this.size = size;
|
|
166
|
+
this.mode = mode;
|
|
167
|
+
}
|
|
168
|
+
IsDir() {
|
|
169
|
+
return fs.FileMode_IsDir(this.mode);
|
|
170
|
+
}
|
|
171
|
+
ModTime() {
|
|
172
|
+
return new time.Time();
|
|
173
|
+
}
|
|
174
|
+
Mode() {
|
|
175
|
+
return this.mode;
|
|
176
|
+
}
|
|
177
|
+
Name() {
|
|
178
|
+
return this.name;
|
|
179
|
+
}
|
|
180
|
+
Size() {
|
|
181
|
+
return this.size;
|
|
182
|
+
}
|
|
183
|
+
Sys() {
|
|
184
|
+
return null;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
class embedDirEntry {
|
|
188
|
+
info;
|
|
189
|
+
constructor(info) {
|
|
190
|
+
this.info = info;
|
|
191
|
+
}
|
|
192
|
+
Info() {
|
|
193
|
+
return [this.info, null];
|
|
194
|
+
}
|
|
195
|
+
IsDir() {
|
|
196
|
+
return this.info.IsDir();
|
|
197
|
+
}
|
|
198
|
+
Name() {
|
|
199
|
+
return this.info.Name();
|
|
200
|
+
}
|
|
201
|
+
Type() {
|
|
202
|
+
return fs.fileModeType(this.info.Mode());
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
function validatePath(op, name) {
|
|
206
|
+
if (!fs.ValidPath(name)) {
|
|
207
|
+
return pathError(op, name, fs.ErrInvalid);
|
|
208
|
+
}
|
|
209
|
+
return null;
|
|
210
|
+
}
|
|
211
|
+
function pathError(op, name, err) {
|
|
212
|
+
return new fs.PathError({ Op: op, Path: name, Err: err });
|
|
213
|
+
}
|
|
214
|
+
function baseName(name) {
|
|
215
|
+
const idx = name.lastIndexOf('/');
|
|
216
|
+
if (idx === -1) {
|
|
217
|
+
return name;
|
|
218
|
+
}
|
|
219
|
+
return name.slice(idx + 1);
|
|
15
220
|
}
|
|
16
221
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../gs/embed/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../gs/embed/index.ts"],"names":[],"mappings":"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"}
|
package/dist/gs/fmt/fmt.d.ts
CHANGED
|
@@ -20,9 +20,9 @@ export declare function Println(...a: any[]): [number, $.GoError | null];
|
|
|
20
20
|
export declare function Sprint(...a: any[]): string;
|
|
21
21
|
export declare function Sprintf(format: string, ...a: any[]): string;
|
|
22
22
|
export declare function Sprintln(...a: any[]): string;
|
|
23
|
-
export declare function Fprint(w: any, ...a: any[]): [number, $.GoError | null]
|
|
24
|
-
export declare function Fprintf(w: any, format: string, ...a: any[]): [number, $.GoError | null]
|
|
25
|
-
export declare function Fprintln(w: any, ...a: any[]): [number, $.GoError | null]
|
|
23
|
+
export declare function Fprint(w: any, ...a: any[]): Promise<[number, $.GoError | null]>;
|
|
24
|
+
export declare function Fprintf(w: any, format: string, ...a: any[]): Promise<[number, $.GoError | null]>;
|
|
25
|
+
export declare function Fprintln(w: any, ...a: any[]): Promise<[number, $.GoError | null]>;
|
|
26
26
|
export declare function Append(b: $.Bytes, ...a: any[]): $.Bytes;
|
|
27
27
|
export declare function Appendf(b: $.Bytes, format: string, ...a: any[]): $.Bytes;
|
|
28
28
|
export declare function Appendln(b: $.Bytes, ...a: any[]): $.Bytes;
|
package/dist/gs/fmt/fmt.js
CHANGED
|
@@ -11,15 +11,23 @@ function formatValue(value, verb) {
|
|
|
11
11
|
switch (verb) {
|
|
12
12
|
case 'v': // default format
|
|
13
13
|
return defaultFormat(value);
|
|
14
|
+
case 'w': // wrapped error
|
|
15
|
+
return defaultFormat(value);
|
|
14
16
|
case 'd': // decimal integer
|
|
15
17
|
return String(Math.trunc(Number(value)));
|
|
16
18
|
case 'f': // decimal point, no exponent
|
|
17
19
|
return Number(value).toString();
|
|
18
20
|
case 's': // string
|
|
19
|
-
|
|
21
|
+
if (typeof value === 'string')
|
|
22
|
+
return value;
|
|
23
|
+
if (value instanceof Uint8Array)
|
|
24
|
+
return $.bytesToString(value);
|
|
25
|
+
return defaultFormat(value);
|
|
20
26
|
case 't': // boolean
|
|
21
27
|
return value ? 'true' : 'false';
|
|
22
28
|
case 'T': // type (approximate Go names for primitives we need)
|
|
29
|
+
if (hasGoTypeName(value))
|
|
30
|
+
return value.__goType;
|
|
23
31
|
if (typeof value === 'number') {
|
|
24
32
|
return Number.isInteger(value) ? 'int' : 'float64';
|
|
25
33
|
}
|
|
@@ -64,6 +72,11 @@ function formatValue(value, verb) {
|
|
|
64
72
|
return String(value);
|
|
65
73
|
}
|
|
66
74
|
}
|
|
75
|
+
function hasGoTypeName(value) {
|
|
76
|
+
return (value !== null &&
|
|
77
|
+
typeof value === 'object' &&
|
|
78
|
+
typeof value.__goType === 'string');
|
|
79
|
+
}
|
|
67
80
|
function defaultFormat(value) {
|
|
68
81
|
if (value === null || value === undefined)
|
|
69
82
|
return '<nil>';
|
|
@@ -104,6 +117,9 @@ function defaultFormat(value) {
|
|
|
104
117
|
// Ignore error by continuing to next case.
|
|
105
118
|
}
|
|
106
119
|
}
|
|
120
|
+
if ('__goValue' in value) {
|
|
121
|
+
return defaultFormat(value.__goValue);
|
|
122
|
+
}
|
|
107
123
|
// Basic Map/Set rendering
|
|
108
124
|
if (value instanceof Map) {
|
|
109
125
|
const parts = [];
|
|
@@ -313,8 +329,14 @@ export function Sprintf(format, ...a) {
|
|
|
313
329
|
export function Sprintln(...a) {
|
|
314
330
|
return a.map(defaultFormat).join(' ') + '\n';
|
|
315
331
|
}
|
|
332
|
+
async function writeToWriter(w, out) {
|
|
333
|
+
if (w && w.Write) {
|
|
334
|
+
return await w.Write(new TextEncoder().encode(out));
|
|
335
|
+
}
|
|
336
|
+
return [0, $.newError('Writer does not implement Write method')];
|
|
337
|
+
}
|
|
316
338
|
// Fprint functions (write to Writer) - simplified implementation
|
|
317
|
-
export function Fprint(w, ...a) {
|
|
339
|
+
export async function Fprint(w, ...a) {
|
|
318
340
|
// Same spacing as Print
|
|
319
341
|
let out = '';
|
|
320
342
|
for (let i = 0; i < a.length; i++) {
|
|
@@ -326,26 +348,17 @@ export function Fprint(w, ...a) {
|
|
|
326
348
|
}
|
|
327
349
|
out += defaultFormat(a[i]);
|
|
328
350
|
}
|
|
329
|
-
|
|
330
|
-
return w.Write(new TextEncoder().encode(out));
|
|
331
|
-
}
|
|
332
|
-
return [0, $.newError('Writer does not implement Write method')];
|
|
351
|
+
return await writeToWriter(w, out);
|
|
333
352
|
}
|
|
334
|
-
export function Fprintf(w, format, ...a) {
|
|
353
|
+
export async function Fprintf(w, format, ...a) {
|
|
335
354
|
const result = parseFormat(format, a);
|
|
336
|
-
|
|
337
|
-
return w.Write(new TextEncoder().encode(result));
|
|
338
|
-
}
|
|
339
|
-
return [0, $.newError('Writer does not implement Write method')];
|
|
355
|
+
return await writeToWriter(w, result);
|
|
340
356
|
}
|
|
341
|
-
export function Fprintln(w, ...a) {
|
|
357
|
+
export async function Fprintln(w, ...a) {
|
|
342
358
|
// Same behavior as Println
|
|
343
359
|
const body = a.map(defaultFormat).join(' ');
|
|
344
360
|
const result = body + '\n';
|
|
345
|
-
|
|
346
|
-
return w.Write(new TextEncoder().encode(result));
|
|
347
|
-
}
|
|
348
|
-
return [0, $.newError('Writer does not implement Write method')];
|
|
361
|
+
return await writeToWriter(w, result);
|
|
349
362
|
}
|
|
350
363
|
// Append functions (append to byte slice)
|
|
351
364
|
export function Append(b, ...a) {
|
package/dist/gs/fmt/fmt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fmt.js","sourceRoot":"","sources":["../../../gs/fmt/fmt.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fmt.js","sourceRoot":"","sources":["../../../gs/fmt/fmt.ts"],"names":[],"mappings":"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"}
|
|
@@ -67,6 +67,32 @@ export class RawMessage {
|
|
|
67
67
|
export function NewRawMessage(data, copy) {
|
|
68
68
|
return new RawMessage({ data, copy });
|
|
69
69
|
}
|
|
70
|
+
$.registerInterfaceType('srpc.Client', null, [
|
|
71
|
+
{
|
|
72
|
+
name: 'ExecCall',
|
|
73
|
+
args: [
|
|
74
|
+
{ name: 'ctx', type: 'context.Context' },
|
|
75
|
+
{ name: 'service', type: { kind: $.TypeKind.Basic, name: 'string' } },
|
|
76
|
+
{ name: 'method', type: { kind: $.TypeKind.Basic, name: 'string' } },
|
|
77
|
+
{ name: 'in', type: 'srpc.Message' },
|
|
78
|
+
{ name: 'out', type: 'srpc.Message' },
|
|
79
|
+
],
|
|
80
|
+
returns: [{ name: '_r0', type: 'error' }],
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
name: 'NewStream',
|
|
84
|
+
args: [
|
|
85
|
+
{ name: 'ctx', type: 'context.Context' },
|
|
86
|
+
{ name: 'service', type: { kind: $.TypeKind.Basic, name: 'string' } },
|
|
87
|
+
{ name: 'method', type: { kind: $.TypeKind.Basic, name: 'string' } },
|
|
88
|
+
{ name: 'firstMsg', type: 'srpc.Message' },
|
|
89
|
+
],
|
|
90
|
+
returns: [
|
|
91
|
+
{ name: '_r0', type: 'srpc.Stream' },
|
|
92
|
+
{ name: '_r1', type: 'error' },
|
|
93
|
+
],
|
|
94
|
+
},
|
|
95
|
+
]);
|
|
70
96
|
export class ClientSet {
|
|
71
97
|
clients;
|
|
72
98
|
constructor(init) {
|
|
@@ -255,6 +281,77 @@ class memoryStream {
|
|
|
255
281
|
}
|
|
256
282
|
}
|
|
257
283
|
}
|
|
284
|
+
class streamQueue {
|
|
285
|
+
queue = [];
|
|
286
|
+
waiters = [];
|
|
287
|
+
closed = false;
|
|
288
|
+
send(msg) {
|
|
289
|
+
if (this.closed) {
|
|
290
|
+
return ErrCompleted;
|
|
291
|
+
}
|
|
292
|
+
const waiter = this.waiters.shift();
|
|
293
|
+
if (waiter != null) {
|
|
294
|
+
waiter(msg, null);
|
|
295
|
+
return null;
|
|
296
|
+
}
|
|
297
|
+
this.queue.push(msg);
|
|
298
|
+
return null;
|
|
299
|
+
}
|
|
300
|
+
recv(msg) {
|
|
301
|
+
const next = this.queue.shift();
|
|
302
|
+
if (next !== undefined) {
|
|
303
|
+
if (msg != null && next != null) {
|
|
304
|
+
Object.assign(msg, next);
|
|
305
|
+
}
|
|
306
|
+
return null;
|
|
307
|
+
}
|
|
308
|
+
if (this.closed) {
|
|
309
|
+
return io.EOF;
|
|
310
|
+
}
|
|
311
|
+
return new Promise((resolve) => {
|
|
312
|
+
this.waiters.push((sent, err) => {
|
|
313
|
+
if (msg != null && sent != null) {
|
|
314
|
+
Object.assign(msg, sent);
|
|
315
|
+
}
|
|
316
|
+
resolve(err);
|
|
317
|
+
});
|
|
318
|
+
});
|
|
319
|
+
}
|
|
320
|
+
close() {
|
|
321
|
+
this.closed = true;
|
|
322
|
+
for (const waiter of this.waiters.splice(0)) {
|
|
323
|
+
waiter(null, io.EOF);
|
|
324
|
+
}
|
|
325
|
+
return null;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
class pairedMemoryStream {
|
|
329
|
+
ctx;
|
|
330
|
+
incoming;
|
|
331
|
+
outgoing;
|
|
332
|
+
constructor(ctx, incoming, outgoing) {
|
|
333
|
+
this.ctx = ctx;
|
|
334
|
+
this.incoming = incoming;
|
|
335
|
+
this.outgoing = outgoing;
|
|
336
|
+
}
|
|
337
|
+
Context() {
|
|
338
|
+
return this.ctx;
|
|
339
|
+
}
|
|
340
|
+
MsgSend(msg) {
|
|
341
|
+
return this.outgoing.send(msg);
|
|
342
|
+
}
|
|
343
|
+
MsgRecv(msg) {
|
|
344
|
+
return this.incoming.recv(msg);
|
|
345
|
+
}
|
|
346
|
+
CloseSend() {
|
|
347
|
+
return this.outgoing.close();
|
|
348
|
+
}
|
|
349
|
+
Close() {
|
|
350
|
+
const incomingErr = this.incoming.close();
|
|
351
|
+
const outgoingErr = this.outgoing.close();
|
|
352
|
+
return incomingErr ?? outgoingErr;
|
|
353
|
+
}
|
|
354
|
+
}
|
|
258
355
|
class streamWithClose {
|
|
259
356
|
stream;
|
|
260
357
|
closeFn;
|
|
@@ -461,7 +558,7 @@ class transportClient {
|
|
|
461
558
|
if (output != null) {
|
|
462
559
|
output.Reset();
|
|
463
560
|
}
|
|
464
|
-
return await writer?.Close() ?? null;
|
|
561
|
+
return (await writer?.Close()) ?? null;
|
|
465
562
|
}
|
|
466
563
|
async NewStream(ctx, service, method, firstMsg) {
|
|
467
564
|
if (this.openStream == null) {
|
|
@@ -524,14 +621,26 @@ class invokerClient {
|
|
|
524
621
|
if (this.invoker == null) {
|
|
525
622
|
return [null, ErrNoAvailableClients];
|
|
526
623
|
}
|
|
527
|
-
const
|
|
528
|
-
const
|
|
624
|
+
const streamCtx = this.contextFn == null ? ctx : this.contextFn(ctx);
|
|
625
|
+
const clientInput = new streamQueue();
|
|
626
|
+
const serverInput = new streamQueue();
|
|
627
|
+
const clientStream = new pairedMemoryStream(streamCtx, clientInput, serverInput);
|
|
628
|
+
const serverStream = new pairedMemoryStream(streamCtx, serverInput, clientInput);
|
|
629
|
+
if (firstMsg != null) {
|
|
630
|
+
const err = serverInput.send(firstMsg);
|
|
631
|
+
if (err != null) {
|
|
632
|
+
return [null, err];
|
|
633
|
+
}
|
|
634
|
+
}
|
|
635
|
+
const pending = Promise.resolve(this.invoker.InvokeMethod(service, method, serverStream));
|
|
529
636
|
pending.then(([handled, err]) => {
|
|
530
637
|
if (!handled || err != null) {
|
|
531
|
-
|
|
638
|
+
clientStream.Close();
|
|
639
|
+
return;
|
|
532
640
|
}
|
|
641
|
+
serverStream.CloseSend();
|
|
533
642
|
});
|
|
534
|
-
return [
|
|
643
|
+
return [clientStream, null];
|
|
535
644
|
}
|
|
536
645
|
}
|
|
537
646
|
export function NewClientWithInvoker(invoker, contextFn = null) {
|
|
@@ -638,7 +747,10 @@ export function NewPacketReadWriter(rw) {
|
|
|
638
747
|
return new PacketReadWriter(rw);
|
|
639
748
|
}
|
|
640
749
|
export function NewServerPipe(server) {
|
|
641
|
-
const openStream = ((_ctx, _msgHandler, _closeHandler) => [
|
|
750
|
+
const openStream = ((_ctx, _msgHandler, _closeHandler) => [
|
|
751
|
+
new closedPacketWriter(),
|
|
752
|
+
null,
|
|
753
|
+
]);
|
|
642
754
|
if (server != null) {
|
|
643
755
|
openStream.__server = server;
|
|
644
756
|
}
|