Hand-madedomain

timekit

src/features/timekit

Brick

  • __tests__/

  • domain/

domain/index.ts
1/**
2 * timekit — pure time zone, recurrence and slot math.
3 *
4 * Zero runtime dependencies and zero I/O. Nothing here reads the environment,
5 * touches a database, or imports a framework, which is what makes it safe to
6 * copy into any project and what makes its tests fully deterministic.
7 */
8
9export type {
10 Instant,
11 Interval,
12 LocalDate,
13 LocalDateTime,
14 LocalTime,
15 RecurrenceRule,
16 Slot,
17 SlotOptions,
18 TimeZoneId,
19 WallClockRule,
20 Weekday,
21 ZonedResolution,
22 ZonedResolutionKind,
23} from './types';
24
25export {
26 addLocalDays,
27 assertValidTimeZone,
28 compareLocalDates,
29 formatLocalDate,
30 fromZoned,
31 instantFromLocal,
32 localDateOf,
33 offsetAt,
34 parseLocalDate,
35 parseLocalTime,
36 toZoned,
37 weekdayOf,
38} from './zone';
39
40export {
41 clampIntervals,
42 intervalsOverlap,
43 mergeIntervals,
44 padIntervals,
45 subtractIntervals,
46 totalDurationMs,
47} from './intervals';
48
49export { expandRecurrence, expandRules } from './recurrence';
50
51export type { AvailabilityInput } from './slots';
52export { availableSlots, freeIntervals, gridify, gridifyAll } from './slots';
53

Requirements

This brick was written by hand, so it has no spec on file. Its own tests are its requirements — run the gates to check them.