goscript 0.0.23 → 0.0.24
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 +1 -1
- package/cmd/goscript/cmd_compile.go +1 -1
- package/compiler/analysis.go +73 -131
- package/compiler/analysis_test.go +220 -0
- package/compiler/assignment.go +37 -43
- package/compiler/builtin_test.go +102 -0
- package/compiler/compiler.go +79 -14
- package/compiler/composite-lit.go +108 -43
- package/compiler/config.go +7 -3
- package/compiler/config_test.go +6 -33
- package/compiler/expr-selector.go +66 -41
- package/compiler/expr-star.go +57 -65
- package/compiler/expr-type.go +1 -1
- package/compiler/expr-value.go +1 -1
- package/compiler/expr.go +79 -18
- package/compiler/primitive.go +11 -10
- package/compiler/spec-struct.go +3 -3
- package/compiler/spec-value.go +75 -29
- package/compiler/spec.go +9 -3
- package/compiler/stmt-assign.go +36 -2
- package/compiler/stmt-for.go +11 -0
- package/compiler/stmt-range.go +110 -0
- package/compiler/stmt.go +52 -0
- package/compiler/type.go +36 -11
- package/dist/gs/builtin/builtin.js +37 -0
- package/dist/gs/builtin/builtin.js.map +1 -0
- package/dist/gs/builtin/channel.js +471 -0
- package/dist/gs/builtin/channel.js.map +1 -0
- package/dist/gs/builtin/defer.js +54 -0
- package/dist/gs/builtin/defer.js.map +1 -0
- package/dist/gs/builtin/io.js +15 -0
- package/dist/gs/builtin/io.js.map +1 -0
- package/dist/gs/builtin/map.js +44 -0
- package/dist/gs/builtin/map.js.map +1 -0
- package/dist/gs/builtin/slice.js +799 -0
- package/dist/gs/builtin/slice.js.map +1 -0
- package/dist/gs/builtin/type.js +745 -0
- package/dist/gs/builtin/type.js.map +1 -0
- package/dist/gs/builtin/varRef.js +14 -0
- package/dist/gs/builtin/varRef.js.map +1 -0
- package/dist/gs/context/context.js +55 -0
- package/dist/gs/context/context.js.map +1 -0
- package/dist/gs/context/index.js +2 -0
- package/dist/gs/context/index.js.map +1 -0
- package/dist/gs/runtime/index.js +2 -0
- package/dist/gs/runtime/index.js.map +1 -0
- package/dist/gs/runtime/runtime.js +158 -0
- package/dist/gs/runtime/runtime.js.map +1 -0
- package/dist/gs/time/index.js +2 -0
- package/dist/gs/time/index.js.map +1 -0
- package/dist/gs/time/time.js +115 -0
- package/dist/gs/time/time.js.map +1 -0
- package/package.json +3 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type.js","sourceRoot":"","sources":["../../../gs/builtin/type.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** Wrap a non-null T in a variable reference. */
|
|
2
|
+
export function varRef(v) {
|
|
3
|
+
// We create a new object wrapper for every varRef call to ensure
|
|
4
|
+
// distinct pointer identity, crucial for pointer comparisons (p1 == p2).
|
|
5
|
+
return { value: v };
|
|
6
|
+
}
|
|
7
|
+
/** Dereference a variable reference, throws on null → simulates Go panic. */
|
|
8
|
+
export function unref(b) {
|
|
9
|
+
if (b === null) {
|
|
10
|
+
throw new Error('runtime error: invalid memory address or nil pointer dereference');
|
|
11
|
+
}
|
|
12
|
+
return b.value;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=varRef.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"varRef.js","sourceRoot":"","sources":["../../../gs/builtin/varRef.ts"],"names":[],"mappings":"AASA,iDAAiD;AACjD,MAAM,UAAU,MAAM,CAAI,CAAI,EAAa;IACzC,iEAAiE;IACjE,yEAAyE;IACzE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAA;AAAA,CACpB;AAED,+EAA6E;AAC7E,MAAM,UAAU,KAAK,CAAI,CAAY,EAAK;IACxC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAA;IACH,CAAC;IACD,OAAO,CAAC,CAAC,KAAK,CAAA;AAAA,CACf"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import * as $ from "@goscript/builtin/builtin.js";
|
|
2
|
+
// Context represents a context that can be canceled
|
|
3
|
+
export class Context {
|
|
4
|
+
doneChannel;
|
|
5
|
+
canceled = false;
|
|
6
|
+
constructor() {
|
|
7
|
+
// Create a done channel that will be closed when context is canceled
|
|
8
|
+
this.doneChannel = $.makeChannel(0, {}, 'both');
|
|
9
|
+
}
|
|
10
|
+
// Done returns a channel that is closed when the context is canceled
|
|
11
|
+
Done() {
|
|
12
|
+
return this.doneChannel;
|
|
13
|
+
}
|
|
14
|
+
// Internal method to cancel the context
|
|
15
|
+
cancel() {
|
|
16
|
+
if (!this.canceled) {
|
|
17
|
+
this.canceled = true;
|
|
18
|
+
// Close the done channel to signal cancellation
|
|
19
|
+
// This will cause any receivers waiting on Done() to unblock
|
|
20
|
+
this.doneChannel.close();
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
isCanceled() {
|
|
24
|
+
return this.canceled;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
// Background returns a non-nil, empty Context
|
|
28
|
+
export function Background() {
|
|
29
|
+
return new Context();
|
|
30
|
+
}
|
|
31
|
+
// WithCancel returns a copy of parent with a new Done channel
|
|
32
|
+
// The returned context's Done channel is closed when the returned cancel function
|
|
33
|
+
// is called or when the parent context's Done channel is closed, whichever happens first
|
|
34
|
+
export function WithCancel(parent) {
|
|
35
|
+
const child = new Context();
|
|
36
|
+
// Create the cancel function
|
|
37
|
+
const cancel = () => {
|
|
38
|
+
child.cancel();
|
|
39
|
+
};
|
|
40
|
+
// If parent gets canceled, cancel the child too
|
|
41
|
+
if (parent) {
|
|
42
|
+
queueMicrotask(async () => {
|
|
43
|
+
try {
|
|
44
|
+
await parent.Done().receive();
|
|
45
|
+
child.cancel();
|
|
46
|
+
}
|
|
47
|
+
catch (e) {
|
|
48
|
+
// Parent context was canceled (channel closed), cancel child
|
|
49
|
+
child.cancel();
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
return [child, cancel];
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../gs/context/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,8BAA8B,CAAC;AAElD,oDAAoD;AACpD,MAAM,OAAO,OAAO;IACV,WAAW,CAAgB;IAC3B,QAAQ,GAAY,KAAK,CAAC;IAElC,cAAc;QACZ,qEAAqE;QACrE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAK,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;IAAA,CACrD;IAED,qEAAqE;IAC9D,IAAI,GAAkB;QAC3B,OAAO,IAAI,CAAC,WAAW,CAAC;IAAA,CACzB;IAED,wCAAwC;IACjC,MAAM,GAAS;QACpB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,gDAAgD;YAChD,6DAA6D;YAC7D,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAC3B,CAAC;IAAA,CACF;IAEM,UAAU,GAAY;QAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC;IAAA,CACtB;CACF;AAED,8CAA8C;AAC9C,MAAM,UAAU,UAAU,GAAY;IACpC,OAAO,IAAI,OAAO,EAAE,CAAC;AAAA,CACtB;AAED,8DAA8D;AAC9D,kFAAkF;AAClF,yFAAyF;AACzF,MAAM,UAAU,UAAU,CAAC,MAAe,EAAyB;IACjE,MAAM,KAAK,GAAG,IAAI,OAAO,EAAE,CAAC;IAE5B,6BAA6B;IAC7B,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC;QACnB,KAAK,CAAC,MAAM,EAAE,CAAC;IAAA,CAChB,CAAC;IAEF,gDAAgD;IAChD,IAAI,MAAM,EAAE,CAAC;QACX,cAAc,CAAC,KAAK,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;gBAC9B,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,6DAA6D;gBAC7D,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,CAAC;QAAA,CACF,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAAA,CACxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../gs/context/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../gs/runtime/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
// Runtime constants for the JavaScript/WebAssembly target
|
|
2
|
+
export const GOOS = "js";
|
|
3
|
+
export const GOARCH = "wasm";
|
|
4
|
+
// Version returns the Go version as a string
|
|
5
|
+
export function Version() {
|
|
6
|
+
return "go1.22.0"; // Static version for goscript compatibility
|
|
7
|
+
}
|
|
8
|
+
// GOMAXPROCS sets the maximum number of operating system threads
|
|
9
|
+
// In JavaScript/browser environment, this is mostly informational
|
|
10
|
+
export function GOMAXPROCS(n) {
|
|
11
|
+
// In browser/JS environment, we can't actually control OS threads
|
|
12
|
+
// Return number of logical CPUs available, or previous value
|
|
13
|
+
if (n < 1) {
|
|
14
|
+
// Return current "setting" (number of logical CPUs)
|
|
15
|
+
return NumCPU();
|
|
16
|
+
}
|
|
17
|
+
// In a real implementation, we would set the max procs
|
|
18
|
+
// For JS/browser, we just return the requested value
|
|
19
|
+
return n;
|
|
20
|
+
}
|
|
21
|
+
// NumCPU returns the number of logical CPUs usable by the current process
|
|
22
|
+
export function NumCPU() {
|
|
23
|
+
// In browser environment, use navigator.hardwareConcurrency if available
|
|
24
|
+
if (typeof navigator !== 'undefined' && navigator.hardwareConcurrency) {
|
|
25
|
+
return navigator.hardwareConcurrency;
|
|
26
|
+
}
|
|
27
|
+
// Default to 1 if we can't determine
|
|
28
|
+
return 1;
|
|
29
|
+
}
|
|
30
|
+
// GC runs a garbage collection and blocks the caller until the
|
|
31
|
+
// garbage collection is complete. In JavaScript, we can suggest GC but not force it.
|
|
32
|
+
export function GC() {
|
|
33
|
+
// In JavaScript, we can't force garbage collection
|
|
34
|
+
// Some engines have gc() function in development, but it's not standard
|
|
35
|
+
if (typeof globalThis.gc === 'function') {
|
|
36
|
+
globalThis.gc();
|
|
37
|
+
}
|
|
38
|
+
// Otherwise, this is a no-op
|
|
39
|
+
}
|
|
40
|
+
// Gosched yields the processor, allowing other goroutines to run.
|
|
41
|
+
// In JavaScript, we can use setTimeout(0) or queueMicrotask for similar effect
|
|
42
|
+
export function Gosched() {
|
|
43
|
+
return new Promise(resolve => {
|
|
44
|
+
queueMicrotask(resolve);
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
// NumGoroutine returns the number of goroutines that currently exist.
|
|
48
|
+
// In goscript, this is informational only
|
|
49
|
+
let goroutineCount = 1; // Start with main goroutine
|
|
50
|
+
export function NumGoroutine() {
|
|
51
|
+
return goroutineCount;
|
|
52
|
+
}
|
|
53
|
+
// Internal function to track goroutine creation (called by goscript runtime)
|
|
54
|
+
export function _incrementGoroutineCount() {
|
|
55
|
+
goroutineCount++;
|
|
56
|
+
}
|
|
57
|
+
// Internal function to track goroutine completion (called by goscript runtime)
|
|
58
|
+
export function _decrementGoroutineCount() {
|
|
59
|
+
if (goroutineCount > 0) {
|
|
60
|
+
goroutineCount--;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
// Caller returns details about the calling goroutine's stack.
|
|
64
|
+
// This is a simplified version for goscript
|
|
65
|
+
export function Caller(skip) {
|
|
66
|
+
// In JavaScript, we can use Error stack trace, but it's limited
|
|
67
|
+
// Return dummy values for goscript compatibility
|
|
68
|
+
const pc = 0; // program counter (not meaningful in JS)
|
|
69
|
+
const file = "unknown";
|
|
70
|
+
const line = 0;
|
|
71
|
+
const ok = false; // indicate we don't have real stack info
|
|
72
|
+
return [pc, file, line, ok];
|
|
73
|
+
}
|
|
74
|
+
// Stack returns a formatted stack trace of the calling goroutine.
|
|
75
|
+
// In JavaScript, we use Error.stack
|
|
76
|
+
export function Stack() {
|
|
77
|
+
const stack = new Error().stack || "stack trace unavailable";
|
|
78
|
+
const encoder = new TextEncoder();
|
|
79
|
+
return encoder.encode(stack);
|
|
80
|
+
}
|
|
81
|
+
// MemStats represents memory allocation statistics
|
|
82
|
+
export class MemStats {
|
|
83
|
+
// Simplified memory stats for goscript
|
|
84
|
+
Alloc = 0; // bytes allocated and not yet freed
|
|
85
|
+
TotalAlloc = 0; // bytes allocated (even if freed)
|
|
86
|
+
Sys = 0; // bytes obtained from system
|
|
87
|
+
Lookups = 0; // number of pointer lookups
|
|
88
|
+
Mallocs = 0; // number of mallocs
|
|
89
|
+
Frees = 0; // number of frees
|
|
90
|
+
constructor() {
|
|
91
|
+
// Initialize with some default values
|
|
92
|
+
// In a real environment, these would be obtained from the JS runtime
|
|
93
|
+
this.updateMemoryStats();
|
|
94
|
+
}
|
|
95
|
+
updateMemoryStats() {
|
|
96
|
+
// Use performance.memory if available (Chrome/Edge)
|
|
97
|
+
if (typeof performance !== 'undefined' && performance.memory) {
|
|
98
|
+
const mem = performance.memory;
|
|
99
|
+
this.Alloc = mem.usedJSHeapSize || 0;
|
|
100
|
+
this.Sys = mem.totalJSHeapSize || 0;
|
|
101
|
+
this.TotalAlloc = this.Alloc; // Simplified
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
// ReadMemStats populates m with memory allocator statistics
|
|
106
|
+
export function ReadMemStats(m) {
|
|
107
|
+
// Update the provided MemStats object with current values
|
|
108
|
+
if (typeof performance !== 'undefined' && performance.memory) {
|
|
109
|
+
const mem = performance.memory;
|
|
110
|
+
m.Alloc = mem.usedJSHeapSize || 0;
|
|
111
|
+
m.Sys = mem.totalJSHeapSize || 0;
|
|
112
|
+
m.TotalAlloc = m.Alloc; // Simplified
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
// TypeAssertionError represents a failed type assertion
|
|
116
|
+
export class TypeAssertionError {
|
|
117
|
+
interfaceType;
|
|
118
|
+
concrete;
|
|
119
|
+
assertedType;
|
|
120
|
+
missingMethod;
|
|
121
|
+
constructor(interfaceType, concrete, assertedType, missingMethod) {
|
|
122
|
+
this.interfaceType = interfaceType;
|
|
123
|
+
this.concrete = concrete;
|
|
124
|
+
this.assertedType = assertedType;
|
|
125
|
+
this.missingMethod = missingMethod;
|
|
126
|
+
}
|
|
127
|
+
Error() {
|
|
128
|
+
if (this.missingMethod) {
|
|
129
|
+
return `interface conversion: ${this.interfaceType} is ${this.concrete}, not ${this.assertedType} (missing ${this.missingMethod} method)`;
|
|
130
|
+
}
|
|
131
|
+
return `interface conversion: ${this.interfaceType} is ${this.concrete}, not ${this.assertedType}`;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
// PanicError represents a panic
|
|
135
|
+
export class PanicError {
|
|
136
|
+
value;
|
|
137
|
+
constructor(value) {
|
|
138
|
+
this.value = value;
|
|
139
|
+
}
|
|
140
|
+
Error() {
|
|
141
|
+
return `panic: ${this.value}`;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
// SetFinalizer sets the finalizer associated with obj to the provided finalizer function.
|
|
145
|
+
// In goscript/TypeScript environment, finalizers are not supported, so this throws an error.
|
|
146
|
+
export function SetFinalizer(obj, finalizer) {
|
|
147
|
+
throw new Error("runtime.SetFinalizer is not supported in goscript TypeScript environment");
|
|
148
|
+
}
|
|
149
|
+
// KeepAlive keeps obj reachable until the point where KeepAlive is called
|
|
150
|
+
export function KeepAlive(obj) {
|
|
151
|
+
// In JavaScript, just accessing the object keeps it alive for this call
|
|
152
|
+
// This is mostly a no-op but we touch the object to ensure it's not optimized away
|
|
153
|
+
if (obj !== null && obj !== undefined) {
|
|
154
|
+
// Touch the object to keep it alive
|
|
155
|
+
void obj;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../gs/runtime/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../gs/time/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
// Time represents a time instant with nanosecond precision
|
|
2
|
+
export class Time {
|
|
3
|
+
_date;
|
|
4
|
+
_nsec; // nanoseconds within the second
|
|
5
|
+
constructor(date, nsec = 0) {
|
|
6
|
+
this._date = new globalThis.Date(date.getTime());
|
|
7
|
+
this._nsec = nsec;
|
|
8
|
+
}
|
|
9
|
+
// clone returns a copy of this Time instance
|
|
10
|
+
clone() {
|
|
11
|
+
return new Time(this._date, this._nsec);
|
|
12
|
+
}
|
|
13
|
+
// Sub returns the duration t-u
|
|
14
|
+
Sub(u) {
|
|
15
|
+
const diffMs = this._date.getTime() - u._date.getTime();
|
|
16
|
+
const diffNs = (this._nsec - u._nsec);
|
|
17
|
+
return new Duration(diffMs * 1000000 + diffNs); // Convert ms to ns and add ns difference
|
|
18
|
+
}
|
|
19
|
+
// String returns the time formatted as a string
|
|
20
|
+
String() {
|
|
21
|
+
// Format as "YYYY-MM-DD HH:MM:SS +0000 UTC" to match Go's format
|
|
22
|
+
const year = this._date.getUTCFullYear();
|
|
23
|
+
const month = String(this._date.getUTCMonth() + 1).padStart(2, '0');
|
|
24
|
+
const day = String(this._date.getUTCDate()).padStart(2, '0');
|
|
25
|
+
const hour = String(this._date.getUTCHours()).padStart(2, '0');
|
|
26
|
+
const minute = String(this._date.getUTCMinutes()).padStart(2, '0');
|
|
27
|
+
const second = String(this._date.getUTCSeconds()).padStart(2, '0');
|
|
28
|
+
return `${year}-${month}-${day} ${hour}:${minute}:${second} +0000 UTC`;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
// Duration represents a span of time
|
|
32
|
+
export class Duration {
|
|
33
|
+
_nanoseconds;
|
|
34
|
+
constructor(nanoseconds) {
|
|
35
|
+
this._nanoseconds = nanoseconds;
|
|
36
|
+
}
|
|
37
|
+
// Compare this duration with another
|
|
38
|
+
lt(other) {
|
|
39
|
+
return this._nanoseconds < other._nanoseconds;
|
|
40
|
+
}
|
|
41
|
+
// Multiply duration by a number (for expressions like Hour * 24)
|
|
42
|
+
static multiply(duration, multiplier) {
|
|
43
|
+
return new Duration(duration._nanoseconds * multiplier);
|
|
44
|
+
}
|
|
45
|
+
// Add support for * operator
|
|
46
|
+
multiply(multiplier) {
|
|
47
|
+
return Duration.multiply(this, multiplier);
|
|
48
|
+
}
|
|
49
|
+
// valueOf returns the primitive number value, allowing direct comparison with < > etc
|
|
50
|
+
valueOf() {
|
|
51
|
+
return this._nanoseconds;
|
|
52
|
+
}
|
|
53
|
+
// toString for string representation
|
|
54
|
+
toString() {
|
|
55
|
+
return this._nanoseconds.toString() + "ns";
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
// Override multiplication operator for Duration * number
|
|
59
|
+
export function multiplyDuration(duration, multiplier) {
|
|
60
|
+
return Duration.multiply(duration, multiplier);
|
|
61
|
+
}
|
|
62
|
+
// Location represents a time zone
|
|
63
|
+
export class Location {
|
|
64
|
+
_name;
|
|
65
|
+
constructor(name) {
|
|
66
|
+
this._name = name;
|
|
67
|
+
}
|
|
68
|
+
get name() {
|
|
69
|
+
return this._name;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
export { Month };
|
|
73
|
+
// Month represents a month of the year
|
|
74
|
+
var Month;
|
|
75
|
+
(function (Month) {
|
|
76
|
+
Month[Month["January"] = 1] = "January";
|
|
77
|
+
Month[Month["February"] = 2] = "February";
|
|
78
|
+
Month[Month["March"] = 3] = "March";
|
|
79
|
+
Month[Month["April"] = 4] = "April";
|
|
80
|
+
Month[Month["May"] = 5] = "May";
|
|
81
|
+
Month[Month["June"] = 6] = "June";
|
|
82
|
+
Month[Month["July"] = 7] = "July";
|
|
83
|
+
Month[Month["August"] = 8] = "August";
|
|
84
|
+
Month[Month["September"] = 9] = "September";
|
|
85
|
+
Month[Month["October"] = 10] = "October";
|
|
86
|
+
Month[Month["November"] = 11] = "November";
|
|
87
|
+
Month[Month["December"] = 12] = "December";
|
|
88
|
+
})(Month || (Month = {}));
|
|
89
|
+
// Now returns the current local time
|
|
90
|
+
export function Now() {
|
|
91
|
+
return new Time(new globalThis.Date());
|
|
92
|
+
}
|
|
93
|
+
// Date returns the Time corresponding to
|
|
94
|
+
// yyyy-mm-dd hh:mm:ss + nsec nanoseconds
|
|
95
|
+
// in the appropriate zone for that time in the given location
|
|
96
|
+
export function Date(year, month, day, hour, min, sec, nsec, loc) {
|
|
97
|
+
let date;
|
|
98
|
+
if (loc.name === "UTC") {
|
|
99
|
+
// Use Date.UTC for proper UTC handling
|
|
100
|
+
const utcTime = globalThis.Date.UTC(year, month - 1, day, hour, min, sec, Math.floor(nsec / 1000000));
|
|
101
|
+
date = new globalThis.Date(utcTime);
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
// For local time or other timezones, use regular Date constructor
|
|
105
|
+
date = new globalThis.Date(year, month - 1, day, hour, min, sec, Math.floor(nsec / 1000000));
|
|
106
|
+
}
|
|
107
|
+
return new Time(date, nsec % 1000000);
|
|
108
|
+
}
|
|
109
|
+
// Common locations
|
|
110
|
+
export const UTC = new Location("UTC");
|
|
111
|
+
// Common durations
|
|
112
|
+
export const Hour = new Duration(3600000000000); // 1 hour in nanoseconds
|
|
113
|
+
// Export month constants
|
|
114
|
+
export const May = Month.May;
|
|
115
|
+
//# sourceMappingURL=time.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time.js","sourceRoot":"","sources":["../../../gs/time/time.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,MAAM,OAAO,IAAI;IACP,KAAK,CAAkB;IACvB,KAAK,CAAS,CAAC,gCAAgC;IAEvD,YAAY,IAAqB,EAAE,IAAI,GAAW,CAAC,EAAE;QACnD,IAAI,CAAC,KAAK,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IAAA,CACnB;IAED,6CAA6C;IACtC,KAAK,GAAS;QACnB,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAAA,CACzC;IAED,+BAA+B;IACxB,GAAG,CAAC,CAAO,EAAY;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACxD,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QACtC,OAAO,IAAI,QAAQ,CAAC,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,yCAAyC;IAA1C,CAChD;IAED,gDAAgD;IACzC,MAAM,GAAW;QACtB,iEAAiE;QACjE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACpE,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC7D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAEnE,OAAO,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,MAAM,IAAI,MAAM,YAAY,CAAC;IAAA,CACxE;CACF;AAED,qCAAqC;AACrC,MAAM,OAAO,QAAQ;IACX,YAAY,CAAS;IAE7B,YAAY,WAAmB,EAAE;QAC/B,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IAAA,CACjC;IAED,qCAAqC;IAC9B,EAAE,CAAC,KAAe,EAAW;QAClC,OAAO,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;IAAA,CAC/C;IAED,iEAAiE;IAC1D,MAAM,CAAC,QAAQ,CAAC,QAAkB,EAAE,UAAkB,EAAY;QACvE,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,YAAY,GAAG,UAAU,CAAC,CAAC;IAAA,CACzD;IAED,6BAA6B;IACtB,QAAQ,CAAC,UAAkB,EAAY;QAC5C,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAAA,CAC5C;IAED,sFAAsF;IAC/E,OAAO,GAAW;QACvB,OAAO,IAAI,CAAC,YAAY,CAAC;IAAA,CAC1B;IAED,qCAAqC;IAC9B,QAAQ,GAAW;QACxB,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC;IAAA,CAC5C;CACF;AAED,yDAAyD;AACzD,MAAM,UAAU,gBAAgB,CAAC,QAAkB,EAAE,UAAkB,EAAY;IACjF,OAAO,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AAAA,CAChD;AAED,kCAAkC;AAClC,MAAM,OAAO,QAAQ;IACX,KAAK,CAAS;IAEtB,YAAY,IAAY,EAAE;QACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IAAA,CACnB;IAED,IAAW,IAAI,GAAW;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC;IAAA,CACnB;CACF;SAGW,KAAK;AADjB,uCAAuC;AACvC,IAAY,KAaX;AAbD,WAAY,KAAK;IACf,uCAAW,CAAA;IACX,yCAAY,CAAA;IACZ,mCAAS,CAAA;IACT,mCAAS,CAAA;IACT,+BAAO,CAAA;IACP,iCAAQ,CAAA;IACR,iCAAQ,CAAA;IACR,qCAAU,CAAA;IACV,2CAAa,CAAA;IACb,wCAAY,CAAA;IACZ,0CAAa,CAAA;IACb,0CAAa,CAAA;AAAC,CAChB,EAbY,KAAK,KAAL,KAAK,QAahB;AAED,qCAAqC;AACrC,MAAM,UAAU,GAAG,GAAS;IAC1B,OAAO,IAAI,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;AAAA,CACxC;AAED,yCAAyC;AACzC,yCAAyC;AACzC,8DAA8D;AAC9D,MAAM,UAAU,IAAI,CAAC,IAAY,EAAE,KAAY,EAAE,GAAW,EAAE,IAAY,EAAE,GAAW,EAAE,GAAW,EAAE,IAAY,EAAE,GAAa,EAAQ;IACvI,IAAI,IAAqB,CAAC;IAC1B,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACvB,uCAAuC;QACvC,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC;QACtG,IAAI,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;SAAM,CAAC;QACN,kEAAkE;QAClE,IAAI,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC;IAC/F,CAAC;IACD,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,CAAC;AAAA,CACvC;AAED,mBAAmB;AACnB,MAAM,CAAC,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC;AAEvC,mBAAmB;AACnB,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,wBAAwB;AAEzE,0BAA0B;AAC1B,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC"}
|
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.24",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Aperture Robotics LLC.",
|
|
7
7
|
"email": "support@aperture.us",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"test": "npm run test:go && npm run test:js",
|
|
49
49
|
"test:go": "go test -v ./...",
|
|
50
50
|
"test:js": "npm run typecheck && vitest run",
|
|
51
|
-
"typecheck": "
|
|
51
|
+
"typecheck": "tsgo --noEmit",
|
|
52
52
|
"format": "npm run format:go && npm run format:js && npm run format:config",
|
|
53
53
|
"format:config": "prettier --write tsconfig.json package.json",
|
|
54
54
|
"format:go": "gofumpt -w .",
|
|
@@ -86,6 +86,7 @@
|
|
|
86
86
|
"@types/node": "^22.15.18",
|
|
87
87
|
"@typescript-eslint/eslint-plugin": "^8.31.0",
|
|
88
88
|
"@typescript-eslint/parser": "^8.31.0",
|
|
89
|
+
"@typescript/native-preview": "^7.0.0-dev.20250523.1",
|
|
89
90
|
"eslint": "^9.25.1",
|
|
90
91
|
"eslint-config-prettier": "^10.0.2",
|
|
91
92
|
"husky": "^9.1.7",
|