Skip to content

Commit 2702d6d

Browse files
committed
Update DateTime/CalendarDate to be compatible with EdgeDB's LocalDate & Temporal.PlainDate
1 parent 3e5f235 commit 2702d6d

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

src/common/temporal/date-time.ts

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,13 @@ declare module 'luxon/src/datetime' {
99
toNeo4JDateTime(this: DateTime): Neo.DateTime<number>;
1010
toPostgres(this: DateTime): string;
1111
[inspect.custom](): string;
12+
13+
// Compatibility with EdgeDB's LocalDate which is a subset of Temporal.PlainDate
14+
get dayOfWeek(): number;
15+
get dayOfYear(): number;
16+
get daysInWeek(): number;
17+
get monthsInYear(): number;
18+
get inLeapYear(): boolean;
1219
}
1320
}
1421
/* eslint-enable @typescript-eslint/method-signature-style */
@@ -39,3 +46,31 @@ DateTime.prototype[inspect.custom] = function (this: DateTime) {
3946
const str = this.toLocaleString(DateTime.DATETIME_SHORT_WITH_SECONDS);
4047
return `[DateTime] ${str}`;
4148
};
49+
50+
Object.defineProperties(DateTime.prototype, {
51+
dayOfWeek: {
52+
get(this: DateTime) {
53+
return this.weekday;
54+
},
55+
},
56+
dayOfYear: {
57+
get(this: DateTime) {
58+
return this.ordinal;
59+
},
60+
},
61+
daysInWeek: {
62+
get(this: DateTime) {
63+
return 7;
64+
},
65+
},
66+
monthsInYear: {
67+
get(this: DateTime) {
68+
return 12;
69+
},
70+
},
71+
inLeapYear: {
72+
get(this: DateTime) {
73+
return this.isInLeapYear;
74+
},
75+
},
76+
});

0 commit comments

Comments
 (0)