- Add GETTING_STARTED.md with quick start guide and development modes - Add INSTALL.sh automated installation script - Add INSTALLATION_CHECKLIST.md, INSTALLATION_SUCCESS.md, and INSTALLATION_SUMMARY.md - Add QUICK_REFERENCE.md for common commands - Add SETUP_GUIDE.md with detailed setup instructions - Update README.md with improved project overview - Add did-wallet app dependencies and node_modules
65 lines
2.4 KiB
TypeScript
65 lines
2.4 KiB
TypeScript
import * as ES from './ecmascript';
|
|
import { GetIntrinsic } from './intrinsicclass';
|
|
import type { Temporal } from '..';
|
|
|
|
const instant: typeof Temporal.Now['instant'] = () => {
|
|
const Instant = GetIntrinsic('%Temporal.Instant%');
|
|
return new Instant(ES.SystemUTCEpochNanoSeconds());
|
|
};
|
|
const plainDateTime: typeof Temporal.Now['plainDateTime'] = (
|
|
calendarLike,
|
|
temporalTimeZoneLike = ES.DefaultTimeZone()
|
|
) => {
|
|
const tZ = ES.ToTemporalTimeZoneSlotValue(temporalTimeZoneLike);
|
|
const calendar = ES.ToTemporalCalendarSlotValue(calendarLike);
|
|
const inst = instant();
|
|
return ES.GetPlainDateTimeFor(tZ, inst, calendar);
|
|
};
|
|
const plainDateTimeISO: typeof Temporal.Now['plainDateTimeISO'] = (temporalTimeZoneLike = ES.DefaultTimeZone()) => {
|
|
const tZ = ES.ToTemporalTimeZoneSlotValue(temporalTimeZoneLike);
|
|
const inst = instant();
|
|
return ES.GetPlainDateTimeFor(tZ, inst, 'iso8601');
|
|
};
|
|
const zonedDateTime: typeof Temporal.Now['zonedDateTime'] = (
|
|
calendarLike,
|
|
temporalTimeZoneLike = ES.DefaultTimeZone()
|
|
) => {
|
|
const tZ = ES.ToTemporalTimeZoneSlotValue(temporalTimeZoneLike);
|
|
const calendar = ES.ToTemporalCalendarSlotValue(calendarLike);
|
|
return ES.CreateTemporalZonedDateTime(ES.SystemUTCEpochNanoSeconds(), tZ, calendar);
|
|
};
|
|
const zonedDateTimeISO: typeof Temporal.Now['zonedDateTimeISO'] = (temporalTimeZoneLike = ES.DefaultTimeZone()) => {
|
|
return zonedDateTime('iso8601', temporalTimeZoneLike);
|
|
};
|
|
const plainDate: typeof Temporal.Now['plainDate'] = (calendarLike, temporalTimeZoneLike = ES.DefaultTimeZone()) => {
|
|
return ES.TemporalDateTimeToDate(plainDateTime(calendarLike, temporalTimeZoneLike));
|
|
};
|
|
const plainDateISO: typeof Temporal.Now['plainDateISO'] = (temporalTimeZoneLike = ES.DefaultTimeZone()) => {
|
|
return ES.TemporalDateTimeToDate(plainDateTimeISO(temporalTimeZoneLike));
|
|
};
|
|
const plainTimeISO: typeof Temporal.Now['plainTimeISO'] = (temporalTimeZoneLike = ES.DefaultTimeZone()) => {
|
|
return ES.TemporalDateTimeToTime(plainDateTimeISO(temporalTimeZoneLike));
|
|
};
|
|
const timeZoneId: typeof Temporal.Now['timeZoneId'] = () => {
|
|
return ES.DefaultTimeZone();
|
|
};
|
|
|
|
export const Now: typeof Temporal.Now = {
|
|
instant,
|
|
plainDateTime,
|
|
plainDateTimeISO,
|
|
plainDate,
|
|
plainDateISO,
|
|
plainTimeISO,
|
|
timeZoneId,
|
|
zonedDateTime,
|
|
zonedDateTimeISO,
|
|
[Symbol.toStringTag]: 'Temporal.Now'
|
|
};
|
|
Object.defineProperty(Now, Symbol.toStringTag, {
|
|
value: 'Temporal.Now',
|
|
writable: false,
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|