Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions packages/go/src/builtins/index.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
import { fmt } from "./fmt/fmt.js";
import { io } from "./io/io.js";
import { net } from "./net/net.js";
import { time } from "./time/time.js";

export const std = {
io,
fmt,
net,
time,
};
199 changes: 199 additions & 0 deletions packages/go/src/builtins/time/time.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,199 @@
import { createModule, StrictDescriptor } from "../../create-module.js";

export const time = createModule(
"time",
{
kind: "package",
members: {
// Functions
After: { kind: "function" },
AfterFunc: { kind: "function" },
Date: { kind: "function" },
FixedZone: { kind: "function" },
LoadLocation: { kind: "function" },
LoadLocationFromTZData: { kind: "function" },
NewTicker: { kind: "function" },
NewTimer: { kind: "function" },
Now: { kind: "function" },
Parse: { kind: "function" },
ParseDuration: { kind: "function" },
ParseInLocation: { kind: "function" },
Since: { kind: "function" },
Sleep: { kind: "function" },
Tick: { kind: "function" },
Unix: { kind: "function" },
UnixMicro: { kind: "function" },
UnixMilli: { kind: "function" },
Until: { kind: "function" },

// Constants - Time format layouts
Layout: { kind: "var" },
ANSIC: { kind: "var" },
UnixDate: { kind: "var" },
RubyDate: { kind: "var" },
RFC822: { kind: "var" },
RFC822Z: { kind: "var" },
RFC850: { kind: "var" },
RFC1123: { kind: "var" },
RFC1123Z: { kind: "var" },
RFC3339: { kind: "var" },
RFC3339Nano: { kind: "var" },
Kitchen: { kind: "var" },
Stamp: { kind: "var" },
StampMilli: { kind: "var" },
StampMicro: { kind: "var" },
StampNano: { kind: "var" },
DateTime: { kind: "var" },
DateOnly: { kind: "var" },
TimeOnly: { kind: "var" },

// Constants - Duration values
Nanosecond: { kind: "var" },
Microsecond: { kind: "var" },
Millisecond: { kind: "var" },
Second: { kind: "var" },
Minute: { kind: "var" },
Hour: { kind: "var" },

// Constants - Month values
January: { kind: "var" },
February: { kind: "var" },
March: { kind: "var" },
April: { kind: "var" },
May: { kind: "var" },
June: { kind: "var" },
July: { kind: "var" },
August: { kind: "var" },
September: { kind: "var" },
October: { kind: "var" },
November: { kind: "var" },
December: { kind: "var" },

// Constants - Weekday values
Sunday: { kind: "var" },
Monday: { kind: "var" },
Tuesday: { kind: "var" },
Wednesday: { kind: "var" },
Thursday: { kind: "var" },
Friday: { kind: "var" },
Saturday: { kind: "var" },

// Variables
UTC: { kind: "var" },
Local: { kind: "var" },
Duration: {
kind: "type",
members: {
Abs: { kind: "field" },
Hours: { kind: "field" },
Microseconds: { kind: "field" },
Milliseconds: { kind: "field" },
Minutes: { kind: "field" },
Nanoseconds: { kind: "field" },
Round: { kind: "field" },
Seconds: { kind: "field" },
String: { kind: "field" },
Truncate: { kind: "field" },
},
},
Location: {
kind: "type",
members: {
String: { kind: "field" },
},
},
Month: {
kind: "type",
members: {
String: { kind: "field" },
},
},
ParseError: {
kind: "type",
members: {
Layout: { kind: "field" },
Value: { kind: "field" },
LayoutElem: { kind: "field" },
ValueElem: { kind: "field" },
Message: { kind: "field" },
Error: { kind: "field" },
},
},
Ticker: {
kind: "type",
members: {
C: { kind: "field" },
Reset: { kind: "field" },
Stop: { kind: "field" },
},
},
Time: {
kind: "type",
members: {
Add: { kind: "field" },
AddDate: { kind: "field" },
After: { kind: "field" },
AppendBinary: { kind: "field" },
AppendFormat: { kind: "field" },
AppendText: { kind: "field" },
Before: { kind: "field" },
Clock: { kind: "field" },
Compare: { kind: "field" },
Date: { kind: "field" },
Day: { kind: "field" },
Equal: { kind: "field" },
Format: { kind: "field" },
GoString: { kind: "field" },
GobDecode: { kind: "field" },
GobEncode: { kind: "field" },
Hour: { kind: "field" },
ISOWeek: { kind: "field" },
In: { kind: "field" },
IsDST: { kind: "field" },
IsZero: { kind: "field" },
Local: { kind: "field" },
Location: { kind: "field" },
MarshalBinary: { kind: "field" },
MarshalJSON: { kind: "field" },
MarshalText: { kind: "field" },
Minute: { kind: "field" },
Month: { kind: "field" },
Nanosecond: { kind: "field" },
Round: { kind: "field" },
Second: { kind: "field" },
String: { kind: "field" },
Sub: { kind: "field" },
Truncate: { kind: "field" },
UTC: { kind: "field" },
Unix: { kind: "field" },
UnixMicro: { kind: "field" },
UnixMilli: { kind: "field" },
UnixNano: { kind: "field" },
UnmarshalBinary: { kind: "field" },
UnmarshalJSON: { kind: "field" },
UnmarshalText: { kind: "field" },
Weekday: { kind: "field" },
Year: { kind: "field" },
YearDay: { kind: "field" },
Zone: { kind: "field" },
ZoneBounds: { kind: "field" },
},
},
Timer: {
kind: "type",
members: {
C: { kind: "field" },
Reset: { kind: "field" },
Stop: { kind: "field" },
},
},
Weekday: {
kind: "type",
members: {
String: { kind: "field" },
},
},
},
} satisfies StrictDescriptor,
true,
);
1 change: 1 addition & 0 deletions packages/go/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
export * from "./builtins/index.js";
export * from "./components/index.js";
export * from "./create-module.js";
export * from "./name-policy.js";
export * from "./scopes/index.js";
export * from "./symbols/index.js";