Files
HolodoriCalc/pages/release-clock.ts
T

26 lines
628 B
TypeScript

export type ReleaseClockSource = 'system';
export type ReleaseClock = {
source: ReleaseClockSource;
now: () => number;
};
type ReleaseClockOptions = {
wallNow?: () => number;
};
function systemClock(wallNow: () => number): ReleaseClock {
return { source: 'system', now: wallNow };
}
export function createInitialReleaseClock(
_serverNow: unknown,
options: ReleaseClockOptions = {}
): ReleaseClock {
return systemClock(options.wallNow ?? Date.now);
}
export async function synchronizeReleaseClock(options: ReleaseClockOptions = {}): Promise<ReleaseClock> {
return systemClock(options.wallNow ?? Date.now);
}