goscript 0.0.36 → 0.0.37
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/expr-call.go +26 -0
- package/compiler/spec.go +1 -1
- package/compiler/stmt.go +26 -8
- package/dist/gs/internal/byteorder/index.d.ts +8 -0
- package/dist/gs/internal/byteorder/index.js +34 -0
- package/dist/gs/internal/byteorder/index.js.map +1 -0
- package/dist/gs/internal/testlog/index.d.ts +1 -0
- package/dist/gs/internal/testlog/index.js +5 -0
- package/dist/gs/internal/testlog/index.js.map +1 -0
- package/dist/gs/os/dir.gs.d.ts +6 -0
- package/dist/gs/os/dir.gs.js +35 -0
- package/dist/gs/os/dir.gs.js.map +1 -0
- package/dist/gs/os/dir_unix.gs.d.ts +7 -0
- package/dist/gs/os/dir_unix.gs.js +113 -0
- package/dist/gs/os/dir_unix.gs.js.map +1 -0
- package/dist/gs/os/dirent_js.gs.d.ts +5 -0
- package/dist/gs/os/dirent_js.gs.js +20 -0
- package/dist/gs/os/dirent_js.gs.js.map +1 -0
- package/dist/gs/os/env.gs.d.ts +12 -0
- package/dist/gs/os/env.gs.js +157 -0
- package/dist/gs/os/env.gs.js.map +1 -0
- package/dist/gs/os/error.gs.d.ts +40 -0
- package/dist/gs/os/error.gs.js +158 -0
- package/dist/gs/os/error.gs.js.map +1 -0
- package/dist/gs/os/error_errno.gs.d.ts +1 -0
- package/dist/gs/os/error_errno.gs.js +5 -0
- package/dist/gs/os/error_errno.gs.js.map +1 -0
- package/dist/gs/os/exec.gs.d.ts +60 -0
- package/dist/gs/os/exec.gs.js +136 -0
- package/dist/gs/os/exec.gs.js.map +1 -0
- package/dist/gs/os/exec_nohandle.gs.d.ts +1 -0
- package/dist/gs/os/exec_nohandle.gs.js +2 -0
- package/dist/gs/os/exec_nohandle.gs.js.map +1 -0
- package/dist/gs/os/exec_posix.gs.d.ts +25 -0
- package/dist/gs/os/exec_posix.gs.js +67 -0
- package/dist/gs/os/exec_posix.gs.js.map +1 -0
- package/dist/gs/os/exec_unix.gs.d.ts +4 -0
- package/dist/gs/os/exec_unix.gs.js +46 -0
- package/dist/gs/os/exec_unix.gs.js.map +1 -0
- package/dist/gs/os/executable.gs.d.ts +2 -0
- package/dist/gs/os/executable.gs.js +16 -0
- package/dist/gs/os/executable.gs.js.map +1 -0
- package/dist/gs/os/executable_js.gs.d.ts +2 -0
- package/dist/gs/os/executable_js.gs.js +5 -0
- package/dist/gs/os/executable_js.gs.js.map +1 -0
- package/dist/gs/os/executable_wasm.gs.d.ts +2 -0
- package/dist/gs/os/executable_wasm.gs.js +6 -0
- package/dist/gs/os/executable_wasm.gs.js.map +1 -0
- package/dist/gs/os/file_constants_js.gs.d.ts +41 -0
- package/dist/gs/os/file_constants_js.gs.js +78 -0
- package/dist/gs/os/file_constants_js.gs.js.map +1 -0
- package/dist/gs/os/file_js.gs.d.ts +22 -0
- package/dist/gs/os/file_js.gs.js +73 -0
- package/dist/gs/os/file_js.gs.js.map +1 -0
- package/dist/gs/os/file_open_unix.gs.d.ts +6 -0
- package/dist/gs/os/file_open_unix.gs.js +10 -0
- package/dist/gs/os/file_open_unix.gs.js.map +1 -0
- package/dist/gs/os/file_posix_js.gs.d.ts +8 -0
- package/dist/gs/os/file_posix_js.gs.js +32 -0
- package/dist/gs/os/file_posix_js.gs.js.map +1 -0
- package/dist/gs/os/file_unix_js.gs.d.ts +27 -0
- package/dist/gs/os/file_unix_js.gs.js +64 -0
- package/dist/gs/os/file_unix_js.gs.js.map +1 -0
- package/dist/gs/os/getwd_js.gs.d.ts +6 -0
- package/dist/gs/os/getwd_js.gs.js +21 -0
- package/dist/gs/os/getwd_js.gs.js.map +1 -0
- package/dist/gs/os/index.d.ts +19 -0
- package/dist/gs/os/index.js +20 -0
- package/dist/gs/os/index.js.map +1 -0
- package/dist/gs/os/path.gs.d.ts +4 -0
- package/dist/gs/os/path.gs.js +32 -0
- package/dist/gs/os/path.gs.js.map +1 -0
- package/dist/gs/os/path_unix.gs.d.ts +4 -0
- package/dist/gs/os/path_unix.gs.js +40 -0
- package/dist/gs/os/path_unix.gs.js.map +1 -0
- package/dist/gs/os/pidfd_js.gs.d.ts +6 -0
- package/dist/gs/os/pidfd_js.gs.js +14 -0
- package/dist/gs/os/pidfd_js.gs.js.map +1 -0
- package/dist/gs/os/pipe_wasm.gs.d.ts +2 -0
- package/dist/gs/os/pipe_wasm.gs.js +14 -0
- package/dist/gs/os/pipe_wasm.gs.js.map +1 -0
- package/dist/gs/os/proc.gs.d.ts +11 -0
- package/dist/gs/os/proc.gs.js +68 -0
- package/dist/gs/os/proc.gs.js.map +1 -0
- package/dist/gs/os/proc_js.gs.d.ts +3 -0
- package/dist/gs/os/proc_js.gs.js +12 -0
- package/dist/gs/os/proc_js.gs.js.map +1 -0
- package/dist/gs/os/rawconn_js.gs.d.ts +10 -0
- package/dist/gs/os/rawconn_js.gs.js +26 -0
- package/dist/gs/os/rawconn_js.gs.js.map +1 -0
- package/dist/gs/os/removeall_js.gs.d.ts +2 -0
- package/dist/gs/os/removeall_js.gs.js +7 -0
- package/dist/gs/os/removeall_js.gs.js.map +1 -0
- package/dist/gs/os/root_js.gs.d.ts +23 -0
- package/dist/gs/os/root_js.gs.js +80 -0
- package/dist/gs/os/root_js.gs.js.map +1 -0
- package/dist/gs/os/root_nonwindows.gs.d.ts +2 -0
- package/dist/gs/os/root_nonwindows.gs.js +4 -0
- package/dist/gs/os/root_nonwindows.gs.js.map +1 -0
- package/dist/gs/os/root_noopenat.gs.d.ts +11 -0
- package/dist/gs/os/root_noopenat.gs.js +31 -0
- package/dist/gs/os/root_noopenat.gs.js.map +1 -0
- package/dist/gs/os/stat.gs.d.ts +24 -0
- package/dist/gs/os/stat.gs.js +20 -0
- package/dist/gs/os/stat.gs.js.map +1 -0
- package/dist/gs/os/stat_js.gs.d.ts +6 -0
- package/dist/gs/os/stat_js.gs.js +23 -0
- package/dist/gs/os/stat_js.gs.js.map +1 -0
- package/dist/gs/os/stat_unix_js.gs.d.ts +8 -0
- package/dist/gs/os/stat_unix_js.gs.js +16 -0
- package/dist/gs/os/stat_unix_js.gs.js.map +1 -0
- package/dist/gs/os/sticky_bsd.gs.d.ts +1 -0
- package/dist/gs/os/sticky_bsd.gs.js +3 -0
- package/dist/gs/os/sticky_bsd.gs.js.map +1 -0
- package/dist/gs/os/sys.gs.d.ts +2 -0
- package/dist/gs/os/sys.gs.js +10 -0
- package/dist/gs/os/sys.gs.js.map +1 -0
- package/dist/gs/os/sys_bsd.gs.d.ts +2 -0
- package/dist/gs/os/sys_bsd.gs.js +15 -0
- package/dist/gs/os/sys_bsd.gs.js.map +1 -0
- package/dist/gs/os/sys_js.gs.d.ts +2 -0
- package/dist/gs/os/sys_js.gs.js +6 -0
- package/dist/gs/os/sys_js.gs.js.map +1 -0
- package/dist/gs/os/tempfile.gs.d.ts +5 -0
- package/dist/gs/os/tempfile.gs.js +30 -0
- package/dist/gs/os/tempfile.gs.js.map +1 -0
- package/dist/gs/os/types.gs.d.ts +59 -0
- package/dist/gs/os/types.gs.js +123 -0
- package/dist/gs/os/types.gs.js.map +1 -0
- package/dist/gs/os/types_js.gs.d.ts +74 -0
- package/dist/gs/os/types_js.gs.js +147 -0
- package/dist/gs/os/types_js.gs.js.map +1 -0
- package/dist/gs/os/types_unix.gs.d.ts +40 -0
- package/dist/gs/os/types_unix.gs.js +87 -0
- package/dist/gs/os/types_unix.gs.js.map +1 -0
- package/dist/gs/os/wait_unimp.gs.d.ts +1 -0
- package/dist/gs/os/wait_unimp.gs.js +2 -0
- package/dist/gs/os/wait_unimp.gs.js.map +1 -0
- package/dist/gs/os/zero_copy_posix.gs.d.ts +4 -0
- package/dist/gs/os/zero_copy_posix.gs.js +27 -0
- package/dist/gs/os/zero_copy_posix.gs.js.map +1 -0
- package/dist/gs/os/zero_copy_stub.gs.d.ts +1 -0
- package/dist/gs/os/zero_copy_stub.gs.js +2 -0
- package/dist/gs/os/zero_copy_stub.gs.js.map +1 -0
- package/dist/gs/syscall/index.d.ts +80 -0
- package/dist/gs/syscall/index.js +163 -0
- package/dist/gs/syscall/index.js.map +1 -0
- package/gs/internal/byteorder/index.ts +40 -0
- package/gs/internal/testlog/index.ts +7 -0
- package/gs/os/dir.gs.ts +42 -0
- package/gs/os/dir_unix.gs.ts +155 -0
- package/gs/os/dirent_js.gs.ts +27 -0
- package/gs/os/env.gs.ts +179 -0
- package/gs/os/error.gs.ts +205 -0
- package/gs/os/error_errno.gs.ts +12 -0
- package/gs/os/exec.gs.ts +198 -0
- package/gs/os/exec_nohandle.gs.ts +2 -0
- package/gs/os/exec_posix.gs.ts +95 -0
- package/gs/os/exec_unix.gs.ts +64 -0
- package/gs/os/executable.gs.ts +18 -0
- package/gs/os/executable_js.gs.ts +6 -0
- package/gs/os/executable_wasm.gs.ts +10 -0
- package/gs/os/file_constants_js.gs.ts +98 -0
- package/gs/os/file_js.gs.ts +99 -0
- package/gs/os/file_open_unix.gs.ts +15 -0
- package/gs/os/file_posix_js.gs.ts +40 -0
- package/gs/os/file_unix_js.gs.ts +94 -0
- package/gs/os/getwd_js.gs.ts +28 -0
- package/gs/os/index.ts +19 -0
- package/gs/os/path.gs.ts +35 -0
- package/gs/os/path_unix.gs.ts +49 -0
- package/gs/os/pidfd_js.gs.ts +25 -0
- package/gs/os/pipe_wasm.gs.ts +17 -0
- package/gs/os/proc.gs.ts +84 -0
- package/gs/os/proc_js.gs.ts +15 -0
- package/gs/os/rawconn_js.gs.ts +30 -0
- package/gs/os/removeall_js.gs.ts +9 -0
- package/gs/os/root_js.gs.ts +111 -0
- package/gs/os/root_nonwindows.gs.ts +6 -0
- package/gs/os/root_noopenat.gs.ts +45 -0
- package/gs/os/stat.gs.ts +38 -0
- package/gs/os/stat_js.gs.ts +30 -0
- package/gs/os/stat_unix_js.gs.ts +27 -0
- package/gs/os/sticky_bsd.gs.ts +4 -0
- package/gs/os/sys.gs.ts +12 -0
- package/gs/os/sys_bsd.gs.ts +17 -0
- package/gs/os/sys_js.gs.ts +9 -0
- package/gs/os/tempfile.gs.ts +34 -0
- package/gs/os/types.gs.ts +170 -0
- package/gs/os/types_js.gs.ts +205 -0
- package/gs/os/types_unix.gs.ts +118 -0
- package/gs/os/wait_unimp.gs.ts +2 -0
- package/gs/os/zero_copy_posix.gs.ts +35 -0
- package/gs/os/zero_copy_stub.gs.ts +4 -0
- package/gs/syscall/index.ts +204 -0
- package/package.json +1 -1
package/compiler/expr-call.go
CHANGED
|
@@ -1120,9 +1120,22 @@ func (c *GoToTSCompiler) WriteCallExpr(exp *ast.CallExpr) error {
|
|
|
1120
1120
|
if i != 0 {
|
|
1121
1121
|
c.tsw.WriteLiterally(", ")
|
|
1122
1122
|
}
|
|
1123
|
+
// Check if this is the last argument and we have ellipsis (variadic call)
|
|
1124
|
+
if exp.Ellipsis != token.NoPos && i == len(exp.Args)-1 {
|
|
1125
|
+
c.tsw.WriteLiterally("...")
|
|
1126
|
+
}
|
|
1123
1127
|
if err := c.WriteValueExpr(arg); err != nil {
|
|
1124
1128
|
return fmt.Errorf("failed to write argument %d in call: %w", i, err)
|
|
1125
1129
|
}
|
|
1130
|
+
// Add non-null assertion for spread arguments that might be null
|
|
1131
|
+
if exp.Ellipsis != token.NoPos && i == len(exp.Args)-1 {
|
|
1132
|
+
// Check if the argument type is potentially nullable (slice)
|
|
1133
|
+
if argType := c.pkg.TypesInfo.TypeOf(arg); argType != nil {
|
|
1134
|
+
if _, isSlice := argType.Underlying().(*types.Slice); isSlice {
|
|
1135
|
+
c.tsw.WriteLiterally("!")
|
|
1136
|
+
}
|
|
1137
|
+
}
|
|
1138
|
+
}
|
|
1126
1139
|
}
|
|
1127
1140
|
c.tsw.WriteLiterally(")")
|
|
1128
1141
|
return nil // Handled regular function call
|
|
@@ -1206,9 +1219,22 @@ func (c *GoToTSCompiler) WriteCallExpr(exp *ast.CallExpr) error {
|
|
|
1206
1219
|
if i != 0 {
|
|
1207
1220
|
c.tsw.WriteLiterally(", ")
|
|
1208
1221
|
}
|
|
1222
|
+
// Check if this is the last argument and we have ellipsis (variadic call)
|
|
1223
|
+
if exp.Ellipsis != token.NoPos && i == len(exp.Args)-1 {
|
|
1224
|
+
c.tsw.WriteLiterally("...")
|
|
1225
|
+
}
|
|
1209
1226
|
if err := c.WriteValueExpr(arg); err != nil {
|
|
1210
1227
|
return fmt.Errorf("failed to write argument %d in call: %w", i, err)
|
|
1211
1228
|
}
|
|
1229
|
+
// Add non-null assertion for spread arguments that might be null
|
|
1230
|
+
if exp.Ellipsis != token.NoPos && i == len(exp.Args)-1 {
|
|
1231
|
+
// Check if the argument type is potentially nullable (slice)
|
|
1232
|
+
if argType := c.pkg.TypesInfo.TypeOf(arg); argType != nil {
|
|
1233
|
+
if _, isSlice := argType.Underlying().(*types.Slice); isSlice {
|
|
1234
|
+
c.tsw.WriteLiterally("!")
|
|
1235
|
+
}
|
|
1236
|
+
}
|
|
1237
|
+
}
|
|
1212
1238
|
}
|
|
1213
1239
|
c.tsw.WriteLiterally(")")
|
|
1214
1240
|
return nil
|
package/compiler/spec.go
CHANGED
|
@@ -95,7 +95,7 @@ func (c *GoToTSCompiler) writeVarRefedFieldInitializer(fieldName string, fieldTy
|
|
|
95
95
|
if named, ok := fieldType.(*types.Named); ok {
|
|
96
96
|
if _, isStruct := named.Underlying().(*types.Struct); isStruct {
|
|
97
97
|
isStructValueType = true
|
|
98
|
-
structTypeNameForClone =
|
|
98
|
+
structTypeNameForClone = c.getTypeString(fieldType)
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
101
|
|
package/compiler/stmt.go
CHANGED
|
@@ -170,10 +170,16 @@ func (c *GoToTSCompiler) WriteStmtBranch(stmt *ast.BranchStmt) error {
|
|
|
170
170
|
c.tsw.WriteLine("break") // No semicolon needed
|
|
171
171
|
case token.CONTINUE:
|
|
172
172
|
c.tsw.WriteLine("continue") // No semicolon needed
|
|
173
|
+
case token.GOTO:
|
|
174
|
+
// TypeScript doesn't support goto, but we can handle it by skipping it
|
|
175
|
+
// since the labeled statement restructuring should handle the control flow
|
|
176
|
+
c.tsw.WriteCommentLinef("goto %s // goto statement skipped", stmt.Label.Name)
|
|
177
|
+
case token.FALLTHROUGH:
|
|
178
|
+
// Fallthrough is handled in switch statements, should not appear elsewhere
|
|
179
|
+
c.tsw.WriteCommentLinef("fallthrough // fallthrough statement skipped")
|
|
173
180
|
default:
|
|
174
181
|
// This case should ideally not be reached if the Go parser is correct,
|
|
175
182
|
// as ast.BranchStmt only covers break, continue, goto, fallthrough.
|
|
176
|
-
// 'goto' and 'fallthrough' are handled elsewhere or not supported.
|
|
177
183
|
c.tsw.WriteCommentLinef("unhandled branch statement token: %s", stmt.Tok.String())
|
|
178
184
|
}
|
|
179
185
|
return nil
|
|
@@ -855,17 +861,29 @@ func (c *GoToTSCompiler) WriteStmtDefer(exp *ast.DeferStmt) error {
|
|
|
855
861
|
// WriteStmtLabeled handles labeled statements (ast.LabeledStmt), such as "label: statement".
|
|
856
862
|
// In TypeScript, labels cannot be used with variable declarations, so we need to handle this case specially.
|
|
857
863
|
func (c *GoToTSCompiler) WriteStmtLabeled(stmt *ast.LabeledStmt) error {
|
|
858
|
-
// Check if the labeled statement is a declaration statement
|
|
859
|
-
|
|
860
|
-
|
|
864
|
+
// Check if the labeled statement is a declaration statement or assignment with :=
|
|
865
|
+
needsBlock := false
|
|
866
|
+
if _, ok := stmt.Stmt.(*ast.DeclStmt); ok {
|
|
867
|
+
needsBlock = true
|
|
868
|
+
} else if assignStmt, ok := stmt.Stmt.(*ast.AssignStmt); ok && assignStmt.Tok == token.DEFINE {
|
|
869
|
+
// Assignment with := is also a declaration and needs special handling
|
|
870
|
+
needsBlock = true
|
|
871
|
+
}
|
|
872
|
+
|
|
873
|
+
if needsBlock {
|
|
874
|
+
// For declaration statements and := assignments, we need to put the label on a separate line
|
|
861
875
|
// because TypeScript doesn't allow labels with declarations
|
|
862
876
|
c.tsw.WriteLiterally(stmt.Label.Name)
|
|
863
|
-
c.tsw.WriteLine(": {
|
|
877
|
+
c.tsw.WriteLine(": {")
|
|
878
|
+
c.tsw.Indent(1)
|
|
864
879
|
|
|
865
|
-
// Write the
|
|
866
|
-
if err := c.WriteStmt(
|
|
867
|
-
return fmt.Errorf("failed to write labeled declaration statement: %w", err)
|
|
880
|
+
// Write the statement without the label
|
|
881
|
+
if err := c.WriteStmt(stmt.Stmt); err != nil {
|
|
882
|
+
return fmt.Errorf("failed to write labeled declaration/assignment statement: %w", err)
|
|
868
883
|
}
|
|
884
|
+
|
|
885
|
+
c.tsw.Indent(-1)
|
|
886
|
+
c.tsw.WriteLine("}")
|
|
869
887
|
} else {
|
|
870
888
|
// For non-declaration statements, write the label normally
|
|
871
889
|
c.tsw.WriteLiterally(stmt.Label.Name)
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as $ from "@goscript/builtin/builtin.js";
|
|
2
|
+
export declare function LittleEndian(): boolean;
|
|
3
|
+
export declare function BEUint16(b: $.Bytes): number;
|
|
4
|
+
export declare function BEUint32(b: $.Bytes): number;
|
|
5
|
+
export declare function BEUint64(b: $.Bytes): number;
|
|
6
|
+
export declare function LEUint16(b: $.Bytes): number;
|
|
7
|
+
export declare function LEUint32(b: $.Bytes): number;
|
|
8
|
+
export declare function LEUint64(b: $.Bytes): number;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import * as $ from "@goscript/builtin/builtin.js";
|
|
2
|
+
// Stub implementations for internal/byteorder package
|
|
3
|
+
export function LittleEndian() {
|
|
4
|
+
return true; // Assume little endian for JS
|
|
5
|
+
}
|
|
6
|
+
// Big Endian byte order functions
|
|
7
|
+
export function BEUint16(b) {
|
|
8
|
+
return (b[0] << 8) | b[1];
|
|
9
|
+
}
|
|
10
|
+
export function BEUint32(b) {
|
|
11
|
+
return (b[0] << 24) | (b[1] << 16) | (b[2] << 8) | b[3];
|
|
12
|
+
}
|
|
13
|
+
export function BEUint64(b) {
|
|
14
|
+
// JavaScript numbers are 64-bit floats, so we'll lose precision for very large integers
|
|
15
|
+
// For our stub purposes, this should be sufficient
|
|
16
|
+
let high = BEUint32(b);
|
|
17
|
+
let low = BEUint32($.goSlice(b, 4, undefined));
|
|
18
|
+
return (high * 0x100000000) + low;
|
|
19
|
+
}
|
|
20
|
+
// Little Endian byte order functions
|
|
21
|
+
export function LEUint16(b) {
|
|
22
|
+
return b[0] | (b[1] << 8);
|
|
23
|
+
}
|
|
24
|
+
export function LEUint32(b) {
|
|
25
|
+
return b[0] | (b[1] << 8) | (b[2] << 16) | (b[3] << 24);
|
|
26
|
+
}
|
|
27
|
+
export function LEUint64(b) {
|
|
28
|
+
// JavaScript numbers are 64-bit floats, so we'll lose precision for very large integers
|
|
29
|
+
// For our stub purposes, this should be sufficient
|
|
30
|
+
let low = LEUint32(b);
|
|
31
|
+
let high = LEUint32($.goSlice(b, 4, undefined));
|
|
32
|
+
return low + (high * 0x100000000);
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../gs/internal/byteorder/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,8BAA8B,CAAC;AAElD,sDAAsD;AACtD,MAAM,UAAU,YAAY;IAC1B,OAAO,IAAI,CAAA,CAAC,8BAA8B;AAC5C,CAAC;AAED,kCAAkC;AAClC,MAAM,UAAU,QAAQ,CAAC,CAAU;IACjC,OAAO,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAE,CAAC,CAAC,CAAC,CAAA;AAC7B,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,CAAU;IACjC,OAAO,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAE,CAAC,CAAC,CAAC,CAAA;AAC7D,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,CAAU;IACjC,wFAAwF;IACxF,mDAAmD;IACnD,IAAI,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IACtB,IAAI,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAA;IAC9C,OAAO,CAAC,IAAI,GAAG,WAAW,CAAC,GAAG,GAAG,CAAA;AACnC,CAAC;AAED,uCAAuC;AACvC,MAAM,UAAU,QAAQ,CAAC,CAAU;IACjC,OAAO,CAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;AAC7B,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,CAAU;IACjC,OAAO,CAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;AAC7D,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,CAAU;IACjC,wFAAwF;IACxF,mDAAmD;IACnD,IAAI,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IACrB,IAAI,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAA;IAC/C,OAAO,GAAG,GAAG,CAAC,IAAI,GAAG,WAAW,CAAC,CAAA;AACnC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function Getenv(key: string): void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../gs/internal/testlog/index.ts"],"names":[],"mappings":"AAEA,oDAAoD;AAEpD,MAAM,UAAU,MAAM,CAAC,GAAW;IAChC,2CAA2C;AAC7C,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as $ from "@goscript/builtin/builtin.js";
|
|
2
|
+
import * as fs from "@goscript/io/fs/index.js";
|
|
3
|
+
type DirEntry = fs.DirEntry;
|
|
4
|
+
export declare function ReadDir(name: string): [$.Slice<DirEntry>, $.GoError];
|
|
5
|
+
export declare function CopyFS(dir: string, fsys: fs.FS): $.GoError;
|
|
6
|
+
export {};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { ErrUnimplemented } from "./error.gs.js";
|
|
2
|
+
// ReadDir reads the named directory,
|
|
3
|
+
// returning all its directory entries sorted by filename.
|
|
4
|
+
// If an error occurs reading the directory,
|
|
5
|
+
// ReadDir returns the entries it was able to read before the error,
|
|
6
|
+
// along with the error.
|
|
7
|
+
export function ReadDir(name) {
|
|
8
|
+
// Directory reading not supported in JavaScript environment
|
|
9
|
+
return [null, ErrUnimplemented];
|
|
10
|
+
}
|
|
11
|
+
// CopyFS copies the file system fsys into the directory dir,
|
|
12
|
+
// creating dir if necessary.
|
|
13
|
+
//
|
|
14
|
+
// Files are created with mode 0o666 plus any execute permissions
|
|
15
|
+
// from the source, and directories are created with mode 0o777
|
|
16
|
+
// (before umask).
|
|
17
|
+
//
|
|
18
|
+
// CopyFS will not overwrite existing files. If a file name in fsys
|
|
19
|
+
// already exists in the destination, CopyFS will return an error
|
|
20
|
+
// such that errors.Is(err, fs.ErrExist) will be true.
|
|
21
|
+
//
|
|
22
|
+
// Symbolic links in fsys are not supported. A *PathError with Err set
|
|
23
|
+
// to ErrInvalid is returned when copying from a symbolic link.
|
|
24
|
+
//
|
|
25
|
+
// Symbolic links in dir are followed.
|
|
26
|
+
//
|
|
27
|
+
// New files added to fsys (including if dir is a subdirectory of fsys)
|
|
28
|
+
// while CopyFS is running are not guaranteed to be copied.
|
|
29
|
+
//
|
|
30
|
+
// Copying stops at and returns the first error encountered.
|
|
31
|
+
export function CopyFS(dir, fsys) {
|
|
32
|
+
// File system copying not supported in JavaScript environment
|
|
33
|
+
return ErrUnimplemented;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=dir.gs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dir.gs.js","sourceRoot":"","sources":["../../../gs/os/dir.gs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAMjD,qCAAqC;AACrC,0DAA0D;AAC1D,4CAA4C;AAC5C,oEAAoE;AACpE,wBAAwB;AACxB,MAAM,UAAU,OAAO,CAAC,IAAY;IACnC,4DAA4D;IAC5D,OAAO,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAA;AAChC,CAAC;AAED,6DAA6D;AAC7D,6BAA6B;AAC7B,EAAE;AACF,iEAAiE;AACjE,+DAA+D;AAC/D,kBAAkB;AAClB,EAAE;AACF,mEAAmE;AACnE,iEAAiE;AACjE,sDAAsD;AACtD,EAAE;AACF,sEAAsE;AACtE,+DAA+D;AAC/D,EAAE;AACF,sCAAsC;AACtC,EAAE;AACF,uEAAuE;AACvE,2DAA2D;AAC3D,EAAE;AACF,4DAA4D;AAC5D,MAAM,UAAU,MAAM,CAAC,GAAW,EAAE,IAAW;IAC9C,8DAA8D;IAC9D,OAAO,gBAAgB,CAAA;AACxB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as $ from "@goscript/builtin/builtin.js";
|
|
2
|
+
import * as syscall from "@goscript/syscall/index.js";
|
|
3
|
+
type uintptr = syscall.uintptr;
|
|
4
|
+
export declare function readInt(b: $.Bytes, off: uintptr, size: uintptr): [number, boolean];
|
|
5
|
+
export declare function readIntBE(b: $.Bytes, size: uintptr): number;
|
|
6
|
+
export declare function readIntLE(b: $.Bytes, size: uintptr): number;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import * as $ from "@goscript/builtin/builtin.js";
|
|
2
|
+
import * as byteorder from "@goscript/internal/byteorder/index.js";
|
|
3
|
+
import * as goarch from "@goscript/internal/goarch/index.js";
|
|
4
|
+
import * as sync from "@goscript/sync/index.js";
|
|
5
|
+
class dirInfo {
|
|
6
|
+
get mu() {
|
|
7
|
+
return this._fields.mu.value;
|
|
8
|
+
}
|
|
9
|
+
set mu(value) {
|
|
10
|
+
this._fields.mu.value = value;
|
|
11
|
+
}
|
|
12
|
+
// buffer for directory I/O
|
|
13
|
+
get buf() {
|
|
14
|
+
return this._fields.buf.value;
|
|
15
|
+
}
|
|
16
|
+
set buf(value) {
|
|
17
|
+
this._fields.buf.value = value;
|
|
18
|
+
}
|
|
19
|
+
// length of buf; return value from Getdirentries
|
|
20
|
+
get nbuf() {
|
|
21
|
+
return this._fields.nbuf.value;
|
|
22
|
+
}
|
|
23
|
+
set nbuf(value) {
|
|
24
|
+
this._fields.nbuf.value = value;
|
|
25
|
+
}
|
|
26
|
+
// location of next record in buf.
|
|
27
|
+
get bufp() {
|
|
28
|
+
return this._fields.bufp.value;
|
|
29
|
+
}
|
|
30
|
+
set bufp(value) {
|
|
31
|
+
this._fields.bufp.value = value;
|
|
32
|
+
}
|
|
33
|
+
_fields;
|
|
34
|
+
constructor(init) {
|
|
35
|
+
this._fields = {
|
|
36
|
+
mu: $.varRef(init?.mu?.clone() ?? new sync.Mutex()),
|
|
37
|
+
buf: $.varRef(init?.buf ?? null),
|
|
38
|
+
nbuf: $.varRef(init?.nbuf ?? 0),
|
|
39
|
+
bufp: $.varRef(init?.bufp ?? 0)
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
clone() {
|
|
43
|
+
const cloned = new dirInfo();
|
|
44
|
+
cloned._fields = {
|
|
45
|
+
mu: $.varRef(this._fields.mu.value?.clone() ?? null),
|
|
46
|
+
buf: $.varRef(this._fields.buf.value),
|
|
47
|
+
nbuf: $.varRef(this._fields.nbuf.value),
|
|
48
|
+
bufp: $.varRef(this._fields.bufp.value)
|
|
49
|
+
};
|
|
50
|
+
return cloned;
|
|
51
|
+
}
|
|
52
|
+
close() {
|
|
53
|
+
const d = this;
|
|
54
|
+
if (d.buf != null) {
|
|
55
|
+
dirBufPool.Put(d.buf);
|
|
56
|
+
d.buf = null;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
// Register this type with the runtime type system
|
|
60
|
+
static __typeInfo = $.registerStructType('dirInfo', new dirInfo(), [{ name: "close", args: [], returns: [] }], dirInfo, { "mu": "Mutex", "buf": { kind: $.TypeKind.Pointer, elemType: { kind: $.TypeKind.Slice, elemType: { kind: $.TypeKind.Basic, name: "number" } } }, "nbuf": { kind: $.TypeKind.Basic, name: "number" }, "bufp": { kind: $.TypeKind.Basic, name: "number" } });
|
|
61
|
+
}
|
|
62
|
+
// More than 5760 to work around https://golang.org/issue/24015.
|
|
63
|
+
let blockSize = 8192;
|
|
64
|
+
let dirBufPool = new sync.Pool({ New: () => {
|
|
65
|
+
// The buffer must be at least a block long.
|
|
66
|
+
let buf = new Uint8Array(8192);
|
|
67
|
+
return buf;
|
|
68
|
+
} });
|
|
69
|
+
// readInt returns the size-bytes unsigned integer in native byte order at offset off.
|
|
70
|
+
export function readInt(b, off, size) {
|
|
71
|
+
let u = 0;
|
|
72
|
+
let ok = false;
|
|
73
|
+
{
|
|
74
|
+
if ($.len(b) < $.int(off + size)) {
|
|
75
|
+
return [0, false];
|
|
76
|
+
}
|
|
77
|
+
if (goarch.BigEndian) {
|
|
78
|
+
return [readIntBE($.goSlice(b, off, undefined), size), true];
|
|
79
|
+
}
|
|
80
|
+
return [readIntLE($.goSlice(b, off, undefined), size), true];
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
export function readIntBE(b, size) {
|
|
84
|
+
switch (size) {
|
|
85
|
+
case 1:
|
|
86
|
+
return b[0];
|
|
87
|
+
case 2:
|
|
88
|
+
return byteorder.BEUint16(b);
|
|
89
|
+
case 4:
|
|
90
|
+
return byteorder.BEUint32(b);
|
|
91
|
+
case 8:
|
|
92
|
+
return byteorder.BEUint64(b);
|
|
93
|
+
default:
|
|
94
|
+
$.panic("syscall: readInt with unsupported size");
|
|
95
|
+
return 0; // This line will never be reached due to panic, but satisfies TypeScript
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
export function readIntLE(b, size) {
|
|
99
|
+
switch (size) {
|
|
100
|
+
case 1:
|
|
101
|
+
return b[0];
|
|
102
|
+
case 2:
|
|
103
|
+
return byteorder.LEUint16(b);
|
|
104
|
+
case 4:
|
|
105
|
+
return byteorder.LEUint32(b);
|
|
106
|
+
case 8:
|
|
107
|
+
return byteorder.LEUint64(b);
|
|
108
|
+
default:
|
|
109
|
+
$.panic("syscall: readInt with unsupported size");
|
|
110
|
+
return 0; // This line will never be reached due to panic, but satisfies TypeScript
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=dir_unix.gs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dir_unix.gs.js","sourceRoot":"","sources":["../../../gs/os/dir_unix.gs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import * as $ from "@goscript/builtin/builtin.js";
|
|
2
|
+
export declare function direntIno(buf: $.Bytes): [number, boolean];
|
|
3
|
+
export declare function direntReclen(buf: $.Bytes): [number, boolean];
|
|
4
|
+
export declare function direntNamlen(buf: $.Bytes): [number, boolean];
|
|
5
|
+
export declare function direntType(buf: $.Bytes): number;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { readInt } from "./dir_unix.gs.js";
|
|
2
|
+
import * as syscall from "@goscript/syscall/index.js";
|
|
3
|
+
import * as unsafe from "@goscript/unsafe/index.js";
|
|
4
|
+
export function direntIno(buf) {
|
|
5
|
+
return [1, true];
|
|
6
|
+
}
|
|
7
|
+
export function direntReclen(buf) {
|
|
8
|
+
return readInt(buf, unsafe.Offsetof(new syscall.Dirent({}).Reclen), unsafe.Sizeof(new syscall.Dirent({}).Reclen));
|
|
9
|
+
}
|
|
10
|
+
export function direntNamlen(buf) {
|
|
11
|
+
let [reclen, ok] = direntReclen(buf);
|
|
12
|
+
if (!ok) {
|
|
13
|
+
return [0, false];
|
|
14
|
+
}
|
|
15
|
+
return [reclen - unsafe.Offsetof(new syscall.Dirent({}).Name), true];
|
|
16
|
+
}
|
|
17
|
+
export function direntType(buf) {
|
|
18
|
+
return ~0;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=dirent_js.gs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dirent_js.gs.js","sourceRoot":"","sources":["../../../gs/os/dirent_js.gs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,OAAO,KAAK,OAAO,MAAM,4BAA4B,CAAA;AAErD,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAA;AAEnD,MAAM,UAAU,SAAS,CAAC,GAAY;IACrC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;AACjB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,GAAY;IACxC,OAAO,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;AAClH,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,GAAY;IACxC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;IACpC,IAAI,CAAC,EAAE,EAAE,CAAC;QACT,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IAClB,CAAC;IACD,OAAO,CAAC,MAAM,GAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAY,EAAE,IAAI,CAAC,CAAA;AACjF,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAY;IACtC,OAAO,CAAE,CAAY,CAAA;AACtB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as $ from "@goscript/builtin/builtin.js";
|
|
2
|
+
export declare function Expand(s: string, mapping: ((p0: string) => string) | null): string;
|
|
3
|
+
export declare function ExpandEnv(s: string): string;
|
|
4
|
+
export declare function isShellSpecialVar(c: number): boolean;
|
|
5
|
+
export declare function isAlphaNum(c: number): boolean;
|
|
6
|
+
export declare function getShellName(s: string): [string, number];
|
|
7
|
+
export declare function Getenv(key: string): string;
|
|
8
|
+
export declare function LookupEnv(key: string): [string, boolean];
|
|
9
|
+
export declare function Setenv(key: string, value: string): $.GoError;
|
|
10
|
+
export declare function Unsetenv(key: string): $.GoError;
|
|
11
|
+
export declare function Clearenv(): void;
|
|
12
|
+
export declare function Environ(): $.Slice<string>;
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import * as $ from "@goscript/builtin/builtin.js";
|
|
2
|
+
import { NewSyscallError } from "./error.gs.js";
|
|
3
|
+
import * as syscall from "@goscript/syscall/index.js";
|
|
4
|
+
// Expand replaces ${var} or $var in the string based on the mapping function.
|
|
5
|
+
// For example, [os.ExpandEnv](s) is equivalent to [os.Expand](s, [os.Getenv]).
|
|
6
|
+
export function Expand(s, mapping) {
|
|
7
|
+
let buf = new Uint8Array(0);
|
|
8
|
+
// ${} is all ASCII, so bytes are fine for this operation.
|
|
9
|
+
let i = 0;
|
|
10
|
+
// Encountered invalid syntax; eat the
|
|
11
|
+
// characters.
|
|
12
|
+
// Valid syntax, but $ was not followed by a
|
|
13
|
+
// name. Leave the dollar character untouched.
|
|
14
|
+
for (let j = 0; j < $.len(s); j++) {
|
|
15
|
+
// Encountered invalid syntax; eat the
|
|
16
|
+
// characters.
|
|
17
|
+
// Valid syntax, but $ was not followed by a
|
|
18
|
+
// name. Leave the dollar character untouched.
|
|
19
|
+
if ($.indexString(s, j) == 36 && j + 1 < $.len(s)) {
|
|
20
|
+
if (buf == null) {
|
|
21
|
+
buf = $.makeSlice(0, 2 * $.len(s), 'byte');
|
|
22
|
+
}
|
|
23
|
+
buf = $.append(buf, ...$.stringToBytes($.sliceString(s, i, j)));
|
|
24
|
+
let [name, w] = getShellName($.sliceString(s, j + 1, undefined));
|
|
25
|
+
// Encountered invalid syntax; eat the
|
|
26
|
+
// characters.
|
|
27
|
+
// Valid syntax, but $ was not followed by a
|
|
28
|
+
// name. Leave the dollar character untouched.
|
|
29
|
+
if (name == "" && w > 0) {
|
|
30
|
+
}
|
|
31
|
+
else if (name == "") {
|
|
32
|
+
// Valid syntax, but $ was not followed by a
|
|
33
|
+
// name. Leave the dollar character untouched.
|
|
34
|
+
buf = $.append(buf, $.indexString(s, j));
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
buf = $.append(buf, ...$.stringToBytes(mapping(name)));
|
|
38
|
+
}
|
|
39
|
+
j += w;
|
|
40
|
+
i = j + 1;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
if (buf == null) {
|
|
44
|
+
return s;
|
|
45
|
+
}
|
|
46
|
+
return $.bytesToString(buf) + $.sliceString(s, i, undefined);
|
|
47
|
+
}
|
|
48
|
+
// ExpandEnv replaces ${var} or $var in the string according to the values
|
|
49
|
+
// of the current environment variables. References to undefined
|
|
50
|
+
// variables are replaced by the empty string.
|
|
51
|
+
export function ExpandEnv(s) {
|
|
52
|
+
return Expand(s, Getenv);
|
|
53
|
+
}
|
|
54
|
+
// isShellSpecialVar reports whether the character identifies a special
|
|
55
|
+
// shell variable such as $*.
|
|
56
|
+
export function isShellSpecialVar(c) {
|
|
57
|
+
switch (c) {
|
|
58
|
+
case 42:
|
|
59
|
+
case 35:
|
|
60
|
+
case 36:
|
|
61
|
+
case 64:
|
|
62
|
+
case 33:
|
|
63
|
+
case 63:
|
|
64
|
+
case 45:
|
|
65
|
+
case 48:
|
|
66
|
+
case 49:
|
|
67
|
+
case 50:
|
|
68
|
+
case 51:
|
|
69
|
+
case 52:
|
|
70
|
+
case 53:
|
|
71
|
+
case 54:
|
|
72
|
+
case 55:
|
|
73
|
+
case 56:
|
|
74
|
+
case 57:
|
|
75
|
+
return true;
|
|
76
|
+
break;
|
|
77
|
+
}
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
// isAlphaNum reports whether the byte is an ASCII letter, number, or underscore.
|
|
81
|
+
export function isAlphaNum(c) {
|
|
82
|
+
return c == 95 || 48 <= c && c <= 57 || 97 <= c && c <= 122 || 65 <= c && c <= 90;
|
|
83
|
+
}
|
|
84
|
+
// getShellName returns the name that begins the string and the number of bytes
|
|
85
|
+
// consumed to extract it. If the name is enclosed in {}, it's part of a ${}
|
|
86
|
+
// expansion and two more bytes are needed than the length of the name.
|
|
87
|
+
export function getShellName(s) {
|
|
88
|
+
// Scan to closing brace
|
|
89
|
+
// Bad syntax; eat "${}"
|
|
90
|
+
// Bad syntax; eat "${"
|
|
91
|
+
switch (true) {
|
|
92
|
+
case $.indexString(s, 0) == 123:
|
|
93
|
+
if ($.len(s) > 2 && isShellSpecialVar($.indexString(s, 1)) && $.indexString(s, 2) == 125) {
|
|
94
|
+
return [$.sliceString(s, 1, 2), 3];
|
|
95
|
+
}
|
|
96
|
+
for (let i = 1; i < $.len(s); i++) {
|
|
97
|
+
// Bad syntax; eat "${}"
|
|
98
|
+
if ($.indexString(s, i) == 125) {
|
|
99
|
+
// Bad syntax; eat "${}"
|
|
100
|
+
if (i == 1) {
|
|
101
|
+
return ["", 2];
|
|
102
|
+
}
|
|
103
|
+
return [$.sliceString(s, 1, i), i + 1];
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return ["", 1];
|
|
107
|
+
break;
|
|
108
|
+
case isShellSpecialVar($.indexString(s, 0)):
|
|
109
|
+
return [$.sliceString(s, 0, 1), 1];
|
|
110
|
+
break;
|
|
111
|
+
}
|
|
112
|
+
// Scan alphanumerics.
|
|
113
|
+
let i = 0;
|
|
114
|
+
for (i = 0; i < $.len(s) && isAlphaNum($.indexString(s, i)); i++) {
|
|
115
|
+
}
|
|
116
|
+
return [$.sliceString(s, undefined, i), i];
|
|
117
|
+
}
|
|
118
|
+
// Getenv retrieves the value of the environment variable named by the key.
|
|
119
|
+
// It returns the value, which will be empty if the variable is not present.
|
|
120
|
+
// To distinguish between an empty value and an unset value, use [LookupEnv].
|
|
121
|
+
export function Getenv(key) {
|
|
122
|
+
// testlog.Getenv(key) // Testlog not available in JavaScript
|
|
123
|
+
let [v,] = syscall.Getenv(key);
|
|
124
|
+
return v;
|
|
125
|
+
}
|
|
126
|
+
// LookupEnv retrieves the value of the environment variable named
|
|
127
|
+
// by the key. If the variable is present in the environment the
|
|
128
|
+
// value (which may be empty) is returned and the boolean is true.
|
|
129
|
+
// Otherwise the returned value will be empty and the boolean will
|
|
130
|
+
// be false.
|
|
131
|
+
export function LookupEnv(key) {
|
|
132
|
+
// testlog.Getenv(key) // Testlog not available in JavaScript
|
|
133
|
+
return syscall.Getenv(key);
|
|
134
|
+
}
|
|
135
|
+
// Setenv sets the value of the environment variable named by the key.
|
|
136
|
+
// It returns an error, if any.
|
|
137
|
+
export function Setenv(key, value) {
|
|
138
|
+
let err = syscall.Setenv(key, value);
|
|
139
|
+
if (err != null) {
|
|
140
|
+
return NewSyscallError("setenv", err);
|
|
141
|
+
}
|
|
142
|
+
return null;
|
|
143
|
+
}
|
|
144
|
+
// Unsetenv unsets a single environment variable.
|
|
145
|
+
export function Unsetenv(key) {
|
|
146
|
+
return syscall.Unsetenv(key);
|
|
147
|
+
}
|
|
148
|
+
// Clearenv deletes all environment variables.
|
|
149
|
+
export function Clearenv() {
|
|
150
|
+
syscall.Clearenv();
|
|
151
|
+
}
|
|
152
|
+
// Environ returns a copy of strings representing the environment,
|
|
153
|
+
// in the form "key=value".
|
|
154
|
+
export function Environ() {
|
|
155
|
+
return syscall.Environ();
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=env.gs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.gs.js","sourceRoot":"","sources":["../../../gs/os/env.gs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import * as $ from "@goscript/builtin/builtin.js";
|
|
2
|
+
import * as fs from "@goscript/io/fs/index.js";
|
|
3
|
+
export declare let ErrInvalid: $.GoError;
|
|
4
|
+
export declare let ErrPermission: $.GoError;
|
|
5
|
+
export declare let ErrExist: $.GoError;
|
|
6
|
+
export declare let ErrNotExist: $.GoError;
|
|
7
|
+
export declare let ErrClosed: $.GoError;
|
|
8
|
+
export declare let ErrNoDeadline: $.GoError;
|
|
9
|
+
export declare let ErrDeadlineExceeded: $.GoError;
|
|
10
|
+
export declare let ErrUnimplemented: $.GoError;
|
|
11
|
+
export declare function errNoDeadline(): $.GoError;
|
|
12
|
+
export declare function errDeadlineExceeded(): $.GoError;
|
|
13
|
+
export type PathError = fs.PathError;
|
|
14
|
+
export declare const PathError: any;
|
|
15
|
+
export declare class SyscallError {
|
|
16
|
+
get Syscall(): string;
|
|
17
|
+
set Syscall(value: string);
|
|
18
|
+
get Err(): $.GoError;
|
|
19
|
+
set Err(value: $.GoError);
|
|
20
|
+
_fields: {
|
|
21
|
+
Syscall: $.VarRef<string>;
|
|
22
|
+
Err: $.VarRef<$.GoError>;
|
|
23
|
+
};
|
|
24
|
+
constructor(init?: Partial<{
|
|
25
|
+
Err?: $.GoError;
|
|
26
|
+
Syscall?: string;
|
|
27
|
+
}>);
|
|
28
|
+
clone(): SyscallError;
|
|
29
|
+
Error(): string;
|
|
30
|
+
Unwrap(): $.GoError;
|
|
31
|
+
Timeout(): boolean;
|
|
32
|
+
static __typeInfo: $.StructTypeInfo;
|
|
33
|
+
}
|
|
34
|
+
export declare function NewSyscallError(syscall: string, err: $.GoError): $.GoError;
|
|
35
|
+
export declare function IsExist(err: $.GoError): boolean;
|
|
36
|
+
export declare function IsNotExist(err: $.GoError): boolean;
|
|
37
|
+
export declare function IsPermission(err: $.GoError): boolean;
|
|
38
|
+
export declare function IsTimeout(err: $.GoError): boolean;
|
|
39
|
+
export declare function underlyingErrorIs(err: $.GoError, target: $.GoError): boolean;
|
|
40
|
+
export declare function underlyingError(err: $.GoError): $.GoError;
|