goscript 0.0.74 → 0.0.76
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 +8 -4
- package/cmd/goscript/main.js +48 -12
- package/compiler/assignment.go +34 -12
- package/compiler/compiler.go +6 -2
- package/compiler/decl.go +8 -12
- package/compiler/stmt.go +31 -0
- package/dist/gs/builtin/builtin.d.ts +6 -0
- package/dist/gs/builtin/builtin.js +26 -0
- package/dist/gs/builtin/builtin.js.map +1 -1
- package/go.mod +9 -10
- package/go.sum +20 -30
- package/gs/builtin/builtin.ts +29 -0
- package/gs.go +8 -0
- package/package.json +5 -4
package/README.md
CHANGED
|
@@ -36,14 +36,18 @@ Go has powerful concurrency support and an excellent standard library. GoScript
|
|
|
36
36
|
- Control flow (if, for, switch, select, range, defer, etc.)
|
|
37
37
|
- Type assertions and interface implementations
|
|
38
38
|
- Closures and anonymous functions
|
|
39
|
+
- Generics
|
|
40
|
+
- Reflection
|
|
41
|
+
- Encoding: encoding/json
|
|
42
|
+
- Most of the standard library
|
|
39
43
|
|
|
40
44
|
**🚧 In progress:**
|
|
41
45
|
|
|
42
|
-
- Reflection
|
|
43
|
-
-
|
|
44
|
-
-
|
|
46
|
+
- Reflection edge cases
|
|
47
|
+
- Full standard library coverage
|
|
48
|
+
- Various other edge cases (see GitHub issues)
|
|
45
49
|
|
|
46
|
-
**
|
|
50
|
+
**Important Notes**
|
|
47
51
|
|
|
48
52
|
- Uses JavaScript `number` type (64-bit float, not Go's int types)
|
|
49
53
|
- No pointer arithmetic (`uintptr`) or `unsafe` package
|
package/cmd/goscript/main.js
CHANGED
|
@@ -7,24 +7,60 @@ import { dirname } from 'node:path';
|
|
|
7
7
|
|
|
8
8
|
const __filename = fileURLToPath(import.meta.url);
|
|
9
9
|
const __dirname = dirname(__filename);
|
|
10
|
-
// Go up two levels from cmd/goscript/ to the
|
|
10
|
+
// Go up two levels from cmd/goscript/ to the goscript module root
|
|
11
11
|
const projectRoot = path.join(__dirname, '..', '..');
|
|
12
12
|
|
|
13
|
+
// The user's working directory (where they invoked the command)
|
|
14
|
+
const userCwd = process.cwd();
|
|
15
|
+
|
|
13
16
|
// Get arguments passed to the script, excluding node executable and script path
|
|
14
17
|
const args = process.argv.slice(2);
|
|
15
18
|
|
|
16
|
-
//
|
|
17
|
-
//
|
|
18
|
-
const
|
|
19
|
+
// Resolve --output and --dir paths relative to the user's cwd, since the
|
|
20
|
+
// go run process executes from the goscript module root, not the user's project.
|
|
21
|
+
const resolvedArgs = [];
|
|
22
|
+
let hasDir = false;
|
|
23
|
+
for (let i = 0; i < args.length; i++) {
|
|
24
|
+
const arg = args[i];
|
|
25
|
+
if (arg === '--dir') {
|
|
26
|
+
hasDir = true;
|
|
27
|
+
resolvedArgs.push(arg);
|
|
28
|
+
if (i + 1 < args.length) {
|
|
29
|
+
i++;
|
|
30
|
+
resolvedArgs.push(path.resolve(userCwd, args[i]));
|
|
31
|
+
}
|
|
32
|
+
} else if (arg.startsWith('--dir=')) {
|
|
33
|
+
hasDir = true;
|
|
34
|
+
const val = arg.slice('--dir='.length);
|
|
35
|
+
resolvedArgs.push('--dir=' + path.resolve(userCwd, val));
|
|
36
|
+
} else if (arg === '--output' || arg === '-o') {
|
|
37
|
+
resolvedArgs.push(arg);
|
|
38
|
+
if (i + 1 < args.length) {
|
|
39
|
+
i++;
|
|
40
|
+
resolvedArgs.push(path.resolve(userCwd, args[i]));
|
|
41
|
+
}
|
|
42
|
+
} else if (arg.startsWith('--output=')) {
|
|
43
|
+
const val = arg.slice('--output='.length);
|
|
44
|
+
resolvedArgs.push('--output=' + path.resolve(userCwd, val));
|
|
45
|
+
} else {
|
|
46
|
+
resolvedArgs.push(arg);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// Inject --dir with user's cwd if not explicitly provided, so the compiler
|
|
51
|
+
// loads packages from the user's project instead of the goscript module root.
|
|
52
|
+
if (!hasDir) {
|
|
53
|
+
resolvedArgs.push('--dir', userCwd);
|
|
54
|
+
}
|
|
19
55
|
|
|
20
|
-
//
|
|
21
|
-
const command =
|
|
56
|
+
// Build the command: go run from the goscript module root
|
|
57
|
+
const command = `go run ./cmd/goscript ${resolvedArgs.join(' ')}`;
|
|
22
58
|
|
|
23
|
-
// Execute the
|
|
59
|
+
// Execute from the goscript module root so Go can resolve the module
|
|
24
60
|
const child = spawn(command, {
|
|
25
|
-
shell: true,
|
|
26
|
-
stdio: 'inherit',
|
|
27
|
-
cwd: projectRoot,
|
|
61
|
+
shell: true,
|
|
62
|
+
stdio: 'inherit',
|
|
63
|
+
cwd: projectRoot,
|
|
28
64
|
});
|
|
29
65
|
|
|
30
66
|
child.on('error', (error) => {
|
|
@@ -33,5 +69,5 @@ child.on('error', (error) => {
|
|
|
33
69
|
});
|
|
34
70
|
|
|
35
71
|
child.on('exit', (code) => {
|
|
36
|
-
process.exit(code ?? 0);
|
|
37
|
-
});
|
|
72
|
+
process.exit(code ?? 0);
|
|
73
|
+
});
|
package/compiler/assignment.go
CHANGED
|
@@ -396,7 +396,37 @@ func (c *GoToTSCompiler) writeBlankIdentifierAssign(rhs ast.Expr) error {
|
|
|
396
396
|
|
|
397
397
|
// writePointerDerefAssign handles assignments to dereferenced pointers (*p = val)
|
|
398
398
|
func (c *GoToTSCompiler) writePointerDerefAssign(starExpr *ast.StarExpr, rhs ast.Expr, tok token.Token) error {
|
|
399
|
-
//
|
|
399
|
+
// Check if RHS is a struct - if so, use $.assignStruct() to copy fields
|
|
400
|
+
if shouldApplyClone(c.pkg, rhs) {
|
|
401
|
+
// For struct assignments, use $.assignStruct(target, source)
|
|
402
|
+
// This copies all fields from source to target
|
|
403
|
+
c.tsw.WriteLiterally("$.assignStruct(")
|
|
404
|
+
|
|
405
|
+
// Write the pointer as the target
|
|
406
|
+
if ident, ok := starExpr.X.(*ast.Ident); ok {
|
|
407
|
+
obj := c.objectOfIdent(ident)
|
|
408
|
+
if obj != nil && c.analysis.NeedsVarRef(obj) {
|
|
409
|
+
c.WriteIdent(ident, true)
|
|
410
|
+
} else {
|
|
411
|
+
c.WriteIdent(ident, false)
|
|
412
|
+
}
|
|
413
|
+
} else {
|
|
414
|
+
if err := c.WriteValueExpr(starExpr.X); err != nil {
|
|
415
|
+
return err
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
c.tsw.WriteLiterally("!, ")
|
|
419
|
+
|
|
420
|
+
// Write the RHS with clone as the source
|
|
421
|
+
c.tsw.WriteLiterally("$.markAsStructValue(")
|
|
422
|
+
if err := c.WriteValueExpr(rhs); err != nil {
|
|
423
|
+
return err
|
|
424
|
+
}
|
|
425
|
+
c.tsw.WriteLiterally(".clone()))")
|
|
426
|
+
return nil
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
// For non-struct types, use the original p!.value = val approach
|
|
400
430
|
if ident, ok := starExpr.X.(*ast.Ident); ok {
|
|
401
431
|
obj := c.objectOfIdent(ident)
|
|
402
432
|
if obj != nil && c.analysis.NeedsVarRef(obj) {
|
|
@@ -426,17 +456,9 @@ func (c *GoToTSCompiler) writePointerDerefAssign(starExpr *ast.StarExpr, rhs ast
|
|
|
426
456
|
c.tsw.WriteLiterally(" ")
|
|
427
457
|
}
|
|
428
458
|
|
|
429
|
-
// Write RHS
|
|
430
|
-
if
|
|
431
|
-
|
|
432
|
-
if err := c.WriteValueExpr(rhs); err != nil {
|
|
433
|
-
return err
|
|
434
|
-
}
|
|
435
|
-
c.tsw.WriteLiterally(".clone())")
|
|
436
|
-
} else {
|
|
437
|
-
if err := c.WriteValueExpr(rhs); err != nil {
|
|
438
|
-
return err
|
|
439
|
-
}
|
|
459
|
+
// Write RHS
|
|
460
|
+
if err := c.WriteValueExpr(rhs); err != nil {
|
|
461
|
+
return err
|
|
440
462
|
}
|
|
441
463
|
|
|
442
464
|
if tok == token.AND_NOT_ASSIGN {
|
package/compiler/compiler.go
CHANGED
|
@@ -1003,8 +1003,12 @@ func (c *GoToTSCompiler) WriteCaseClause(exp *ast.CaseClause) error {
|
|
|
1003
1003
|
return fmt.Errorf("failed to write statement in case clause body: %w", err)
|
|
1004
1004
|
}
|
|
1005
1005
|
}
|
|
1006
|
-
// Add break statement
|
|
1007
|
-
|
|
1006
|
+
// Add break statement only if the case body doesn't end with a terminating statement
|
|
1007
|
+
// (return, panic, continue, break, goto, fallthrough). Go's switch has implicit breaks,
|
|
1008
|
+
// but TS needs explicit break - however, adding break after return is unreachable code.
|
|
1009
|
+
if !endsWithTerminatingStmt(exp.Body) {
|
|
1010
|
+
c.tsw.WriteLine("break")
|
|
1011
|
+
}
|
|
1008
1012
|
c.tsw.Indent(-1)
|
|
1009
1013
|
c.tsw.WriteLine("}")
|
|
1010
1014
|
return nil
|
package/compiler/decl.go
CHANGED
|
@@ -216,12 +216,10 @@ func (c *GoToTSCompiler) extractTypeDependencies(typeExpr ast.Expr, typeSpecMap
|
|
|
216
216
|
}
|
|
217
217
|
|
|
218
218
|
case *ast.ArrayType:
|
|
219
|
-
// Array/slice
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
}
|
|
224
|
-
// Arrays of pointers don't create initialization dependencies
|
|
219
|
+
// Array/slice types don't create initialization dependencies
|
|
220
|
+
// Slices are reference types (initialized to null/empty), and arrays of structs
|
|
221
|
+
// don't require the element type constructor at declaration time.
|
|
222
|
+
// This allows circular references like: type A struct { BB []B }; type B struct { AA []A }
|
|
225
223
|
|
|
226
224
|
case *ast.StarExpr:
|
|
227
225
|
// Pointer types don't create initialization dependencies
|
|
@@ -264,12 +262,10 @@ func (c *GoToTSCompiler) extractStructFieldDependencies(fieldType ast.Expr, type
|
|
|
264
262
|
// Pointers are just references, no constructor call needed
|
|
265
263
|
|
|
266
264
|
case *ast.ArrayType:
|
|
267
|
-
// Array
|
|
268
|
-
//
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
deps = append(deps, elemDeps...)
|
|
272
|
-
}
|
|
265
|
+
// Array/slice fields don't create initialization dependencies
|
|
266
|
+
// Slices are reference types (initialized to null/empty), and arrays of structs
|
|
267
|
+
// don't require the element type constructor at declaration time.
|
|
268
|
+
// This allows circular references like: type A struct { BB []B }; type B struct { AA []A }
|
|
273
269
|
|
|
274
270
|
case *ast.MapType:
|
|
275
271
|
// Map field: struct { b map[K]V } - maps don't require initialization dependencies
|
package/compiler/stmt.go
CHANGED
|
@@ -1275,3 +1275,34 @@ func (c *GoToTSCompiler) needsDefensiveSemicolon(expr ast.Expr) bool {
|
|
|
1275
1275
|
}
|
|
1276
1276
|
return false
|
|
1277
1277
|
}
|
|
1278
|
+
|
|
1279
|
+
// isTerminatingStmt checks if a statement terminates control flow, meaning
|
|
1280
|
+
// code after it would be unreachable. This includes return, panic, continue,
|
|
1281
|
+
// break, goto, and fallthrough statements.
|
|
1282
|
+
func isTerminatingStmt(stmt ast.Stmt) bool {
|
|
1283
|
+
switch s := stmt.(type) {
|
|
1284
|
+
case *ast.ReturnStmt:
|
|
1285
|
+
return true
|
|
1286
|
+
case *ast.BranchStmt:
|
|
1287
|
+
// break, continue, goto, fallthrough all terminate the current block
|
|
1288
|
+
return true
|
|
1289
|
+
case *ast.ExprStmt:
|
|
1290
|
+
// Check for panic() calls
|
|
1291
|
+
if call, ok := s.X.(*ast.CallExpr); ok {
|
|
1292
|
+
if ident, ok := call.Fun.(*ast.Ident); ok {
|
|
1293
|
+
if ident.Name == "panic" {
|
|
1294
|
+
return true
|
|
1295
|
+
}
|
|
1296
|
+
}
|
|
1297
|
+
}
|
|
1298
|
+
}
|
|
1299
|
+
return false
|
|
1300
|
+
}
|
|
1301
|
+
|
|
1302
|
+
// endsWithTerminatingStmt checks if a statement list ends with a terminating statement.
|
|
1303
|
+
func endsWithTerminatingStmt(stmts []ast.Stmt) bool {
|
|
1304
|
+
if len(stmts) == 0 {
|
|
1305
|
+
return false
|
|
1306
|
+
}
|
|
1307
|
+
return isTerminatingStmt(stmts[len(stmts)-1])
|
|
1308
|
+
}
|
|
@@ -16,6 +16,12 @@ export declare function panic(...args: any[]): never;
|
|
|
16
16
|
* @param v The slice or map to clear
|
|
17
17
|
*/
|
|
18
18
|
export declare function clear<T>(v: T[] | Map<unknown, unknown> | null): void;
|
|
19
|
+
/**
|
|
20
|
+
* assignStruct copies all field values from source struct to target struct.
|
|
21
|
+
* Used for pointer dereference assignment: *p = value
|
|
22
|
+
* Copies the _fields contents from source to target.
|
|
23
|
+
*/
|
|
24
|
+
export declare function assignStruct<T>(target: T, source: T): void;
|
|
19
25
|
export type Bytes = Uint8Array | Slice<number>;
|
|
20
26
|
export declare function int(value: number): number;
|
|
21
27
|
/**
|
|
@@ -38,6 +38,32 @@ export function clear(v) {
|
|
|
38
38
|
return;
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* assignStruct copies all field values from source struct to target struct.
|
|
43
|
+
* Used for pointer dereference assignment: *p = value
|
|
44
|
+
* Copies the _fields contents from source to target.
|
|
45
|
+
*/
|
|
46
|
+
export function assignStruct(target, source) {
|
|
47
|
+
if (target === null ||
|
|
48
|
+
target === undefined ||
|
|
49
|
+
source === null ||
|
|
50
|
+
source === undefined) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
const targetFields = target._fields;
|
|
54
|
+
const sourceFields = source._fields;
|
|
55
|
+
if (!targetFields || !sourceFields) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
// Copy each field's value from source to target
|
|
59
|
+
for (const key of Object.keys(sourceFields)) {
|
|
60
|
+
const sourceField = sourceFields[key];
|
|
61
|
+
const targetField = targetFields[key];
|
|
62
|
+
if (sourceField && targetField && sourceField.value !== undefined) {
|
|
63
|
+
targetField.value = sourceField.value;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
41
67
|
// int converts a value to a Go int type, handling proper signed integer conversion
|
|
42
68
|
// This ensures that values like 2147483648 (2^31) are properly handled according to Go semantics
|
|
43
69
|
export function int(value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtin.js","sourceRoot":"","sources":["../../../gs/builtin/builtin.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"builtin.js","sourceRoot":"","sources":["../../../gs/builtin/builtin.ts"],"names":[],"mappings":"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"}
|
package/go.mod
CHANGED
|
@@ -3,19 +3,18 @@ module github.com/aperturerobotics/goscript
|
|
|
3
3
|
go 1.25.3
|
|
4
4
|
|
|
5
5
|
require (
|
|
6
|
-
github.com/aperturerobotics/cli v1.0
|
|
7
|
-
github.com/aperturerobotics/protobuf-go-lite v0.
|
|
8
|
-
github.com/aperturerobotics/util v1.32.
|
|
6
|
+
github.com/aperturerobotics/cli v1.1.0
|
|
7
|
+
github.com/aperturerobotics/protobuf-go-lite v0.12.2
|
|
8
|
+
github.com/aperturerobotics/util v1.32.5
|
|
9
9
|
github.com/pkg/errors v0.9.1
|
|
10
|
-
github.com/sirupsen/logrus v1.9.
|
|
11
|
-
golang.org/x/mod v0.
|
|
12
|
-
golang.org/x/tools v0.
|
|
10
|
+
github.com/sirupsen/logrus v1.9.5-0.20260309202648-9f0600962f75
|
|
11
|
+
golang.org/x/mod v0.34.0
|
|
12
|
+
golang.org/x/tools v0.43.0
|
|
13
13
|
)
|
|
14
14
|
|
|
15
15
|
require (
|
|
16
|
-
github.com/aperturerobotics/
|
|
17
|
-
github.com/aperturerobotics/json-iterator-lite v1.0.1-0.20240713111131-be6bf89c3008 // indirect
|
|
16
|
+
github.com/aperturerobotics/json-iterator-lite v1.0.1-0.20251104042408-0c9eb8a3f726 // indirect
|
|
18
17
|
github.com/xrash/smetrics v0.0.0-20250705151800-55b8f293f342 // indirect
|
|
19
|
-
golang.org/x/sync v0.
|
|
20
|
-
golang.org/x/sys v0.
|
|
18
|
+
golang.org/x/sync v0.20.0 // indirect
|
|
19
|
+
golang.org/x/sys v0.42.0 // indirect
|
|
21
20
|
)
|
package/go.sum
CHANGED
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
github.com/aperturerobotics/cli v1.0
|
|
2
|
-
github.com/aperturerobotics/cli v1.0
|
|
3
|
-
github.com/aperturerobotics/
|
|
4
|
-
github.com/aperturerobotics/
|
|
5
|
-
github.com/aperturerobotics/
|
|
6
|
-
github.com/aperturerobotics/
|
|
7
|
-
github.com/aperturerobotics/
|
|
8
|
-
github.com/aperturerobotics/
|
|
9
|
-
github.com/aperturerobotics/util v1.32.0 h1:6gIx5zt1/cOpyH5Wq+im3yNLnRncsfw9PupHNQsy8c0=
|
|
10
|
-
github.com/aperturerobotics/util v1.32.0/go.mod h1:Aufy+WeKncuhc1L2yEg+QxRhb8uVnGBprPyTubaDxLw=
|
|
11
|
-
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
|
1
|
+
github.com/aperturerobotics/cli v1.1.0 h1:7a+YRC+EY3npAnTzhHV5gLCiw91KS0Ts3XwLILGOsT8=
|
|
2
|
+
github.com/aperturerobotics/cli v1.1.0/go.mod h1:M7BFP9wow5ytTzMyJQOOO991fGfsUqdTI7gGEsHfTQ8=
|
|
3
|
+
github.com/aperturerobotics/json-iterator-lite v1.0.1-0.20251104042408-0c9eb8a3f726 h1:4B1F0DzuqPzb6WqgCjWaqDD7JU9RDsevQG5OP0DFBgs=
|
|
4
|
+
github.com/aperturerobotics/json-iterator-lite v1.0.1-0.20251104042408-0c9eb8a3f726/go.mod h1:SvGGBv3OVxUyqO0ZxA/nvs6z3cg7NIbZ64TnbV2OISo=
|
|
5
|
+
github.com/aperturerobotics/protobuf-go-lite v0.12.2 h1:ujwTKgpIYAVsv8VljB6PPMY5SI8i8m/NlIHAkkuxQcU=
|
|
6
|
+
github.com/aperturerobotics/protobuf-go-lite v0.12.2/go.mod h1:lGH3s5ArCTXKI4wJdlNpaybUtwSjfAG0vdWjxOfMcF8=
|
|
7
|
+
github.com/aperturerobotics/util v1.32.5 h1:5gr2Ft1rYGFA5yrSm3n18Ghu5Al2uyg7DTtljh1wLHI=
|
|
8
|
+
github.com/aperturerobotics/util v1.32.5/go.mod h1:jXVTz1OQqM3VSrjy06qiCmJLaUm80NxVuKgweaRs5dg=
|
|
12
9
|
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
|
13
10
|
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
|
14
11
|
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
|
|
@@ -17,26 +14,19 @@ github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
|
|
17
14
|
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
|
18
15
|
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
|
19
16
|
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
|
20
|
-
github.com/sirupsen/logrus v1.9.
|
|
21
|
-
github.com/sirupsen/logrus v1.9.
|
|
22
|
-
github.com/
|
|
23
|
-
github.com/
|
|
24
|
-
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
|
25
|
-
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
|
26
|
-
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
|
|
27
|
-
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
|
17
|
+
github.com/sirupsen/logrus v1.9.5-0.20260309202648-9f0600962f75 h1:JeSpp4dH/b6DwynjIVL8YDlOSNrEtfhhPajrT3CUUTI=
|
|
18
|
+
github.com/sirupsen/logrus v1.9.5-0.20260309202648-9f0600962f75/go.mod h1:FXZFonkDAnFozmO+5hGAFvB0Yg9/j2SIhA/QuIkP180=
|
|
19
|
+
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
|
|
20
|
+
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
|
|
28
21
|
github.com/xrash/smetrics v0.0.0-20250705151800-55b8f293f342 h1:FnBeRrxr7OU4VvAzt5X7s6266i6cSVkkFPS0TuXWbIg=
|
|
29
22
|
github.com/xrash/smetrics v0.0.0-20250705151800-55b8f293f342/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM=
|
|
30
|
-
golang.org/x/mod v0.
|
|
31
|
-
golang.org/x/mod v0.
|
|
32
|
-
golang.org/x/sync v0.
|
|
33
|
-
golang.org/x/sync v0.
|
|
34
|
-
golang.org/x/sys v0.
|
|
35
|
-
golang.org/x/sys v0.
|
|
36
|
-
golang.org/x/
|
|
37
|
-
golang.org/x/tools v0.
|
|
38
|
-
golang.org/x/tools v0.41.0/go.mod h1:XSY6eDqxVNiYgezAVqqCeihT4j1U2CCsqvH3WhQpnlg=
|
|
39
|
-
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
|
40
|
-
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
|
23
|
+
golang.org/x/mod v0.34.0 h1:xIHgNUUnW6sYkcM5Jleh05DvLOtwc6RitGHbDk4akRI=
|
|
24
|
+
golang.org/x/mod v0.34.0/go.mod h1:ykgH52iCZe79kzLLMhyCUzhMci+nQj+0XkbXpNYtVjY=
|
|
25
|
+
golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4=
|
|
26
|
+
golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
|
|
27
|
+
golang.org/x/sys v0.42.0 h1:omrd2nAlyT5ESRdCLYdm3+fMfNFE/+Rf4bDIQImRJeo=
|
|
28
|
+
golang.org/x/sys v0.42.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
|
|
29
|
+
golang.org/x/tools v0.43.0 h1:12BdW9CeB3Z+J/I/wj34VMl8X+fEXBxVR90JeMX5E7s=
|
|
30
|
+
golang.org/x/tools v0.43.0/go.mod h1:uHkMso649BX2cZK6+RpuIPXS3ho2hZo4FVwfoy1vIk0=
|
|
41
31
|
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
|
42
32
|
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
package/gs/builtin/builtin.ts
CHANGED
|
@@ -42,6 +42,35 @@ export function clear<T>(v: T[] | Map<unknown, unknown> | null): void {
|
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
+
/**
|
|
46
|
+
* assignStruct copies all field values from source struct to target struct.
|
|
47
|
+
* Used for pointer dereference assignment: *p = value
|
|
48
|
+
* Copies the _fields contents from source to target.
|
|
49
|
+
*/
|
|
50
|
+
export function assignStruct<T>(target: T, source: T): void {
|
|
51
|
+
if (
|
|
52
|
+
target === null ||
|
|
53
|
+
target === undefined ||
|
|
54
|
+
source === null ||
|
|
55
|
+
source === undefined
|
|
56
|
+
) {
|
|
57
|
+
return
|
|
58
|
+
}
|
|
59
|
+
const targetFields = (target as any)._fields
|
|
60
|
+
const sourceFields = (source as any)._fields
|
|
61
|
+
if (!targetFields || !sourceFields) {
|
|
62
|
+
return
|
|
63
|
+
}
|
|
64
|
+
// Copy each field's value from source to target
|
|
65
|
+
for (const key of Object.keys(sourceFields)) {
|
|
66
|
+
const sourceField = sourceFields[key]
|
|
67
|
+
const targetField = targetFields[key]
|
|
68
|
+
if (sourceField && targetField && sourceField.value !== undefined) {
|
|
69
|
+
targetField.value = sourceField.value
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
45
74
|
// Bytes represents all valid []byte representations in TypeScript
|
|
46
75
|
// This includes Uint8Array (the preferred representation) and $.Slice<number> (which includes null)
|
|
47
76
|
export type Bytes = Uint8Array | Slice<number>
|
package/gs.go
ADDED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "goscript",
|
|
3
3
|
"description": "Go to TypeScript transpiler",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.76",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Aperture Robotics LLC.",
|
|
7
7
|
"email": "support@aperture.us",
|
|
@@ -80,6 +80,7 @@
|
|
|
80
80
|
"cmd",
|
|
81
81
|
"compiler",
|
|
82
82
|
"gs",
|
|
83
|
+
"gs.go",
|
|
83
84
|
"!tests",
|
|
84
85
|
"go.mod",
|
|
85
86
|
"go.sum",
|
|
@@ -91,8 +92,8 @@
|
|
|
91
92
|
"./{src,builtin,example}/**/(*.ts|*.tsx|*.html|*.css|*.scss)": "prettier --config .prettierrc.yaml --write"
|
|
92
93
|
},
|
|
93
94
|
"devDependencies": {
|
|
94
|
-
"@aptre/protobuf-es-lite": "^0.
|
|
95
|
-
"@eslint/js": "^
|
|
95
|
+
"@aptre/protobuf-es-lite": "^1.0.0",
|
|
96
|
+
"@eslint/js": "^10.0.0",
|
|
96
97
|
"@types/node": "^25.0.3",
|
|
97
98
|
"@typescript-eslint/eslint-plugin": "^8.50.1",
|
|
98
99
|
"@typescript-eslint/parser": "^8.50.1",
|
|
@@ -100,7 +101,7 @@
|
|
|
100
101
|
"@vitest/browser": "^4.0.16",
|
|
101
102
|
"@vitest/browser-playwright": "^4.0.16",
|
|
102
103
|
"@vitest/browser-preview": "^4.0.16",
|
|
103
|
-
"eslint": "^
|
|
104
|
+
"eslint": "^10.0.0",
|
|
104
105
|
"eslint-config-prettier": "^10.0.2",
|
|
105
106
|
"husky": "^9.1.7",
|
|
106
107
|
"lint-staged": "^16.2.7",
|