@smartput/datetime-range
v0.2.0
Published
Full instants at both ends, holidays optional.
Maintainers
Readme
@smartput/datetime-range
Full instants at both ends, holidays optional.
The widest of the four. Its ./holiday subpath carries the same
opt-in cost as datetime's, for the same reason and behind the same size
row.
It reads every calendar interval @smartput/date-range does — next week,
second week Aug 2027 — and deliberately loses to it when both kinds are
registered, because a span of whole days reads better without two midnights in
it.
Setup
npm add @smartput/datetime-rangeExample
import { composeLocale, createEngine } from "@smartput/core";
import { english } from "@smartput/core/locale/en";
import { BUILTIN_KINDS } from "@smartput/kinds";
import BUILTIN_EN from "@smartput/kinds/locale/en";
import { datetime } from "@smartput/datetime";
import datetimeEn from "@smartput/datetime/locale/en";
import { date } from "@smartput/date";
import { time } from "@smartput/time";
import { datetimeRange } from "@smartput/datetime-range";
const engine = createEngine({
locales: [composeLocale(english, [...BUILTIN_EN, datetimeEn])],
kinds: [...BUILTIN_KINDS, datetime, date, time, datetimeRange],
timeZone: "Europe/Kyiv",
});
engine.evaluate("yesterday morning").formatted // "2026-01-14 06:00 → 2026-01-14 12:00 UTC"
engine.evaluate("tomorrow night").formatted // "2026-01-16 22:00 → 2026-01-17 06:00 UTC"
engine.evaluate("from today until friday").formatted // "2026-01-15 00:00 → 2026-01-16 00:00 UTC"Entry points
| Import | Contents |
| --- | --- |
| @smartput/datetime-range | The package root. |
| @smartput/datetime-range/holiday | See the source for what this subpath carries. |
Runtime exports
Type-only exports are erased and do not appear here.
DATETIME_RANGE_KIND · DATETIME_RANGE_UNIT · DEFAULT_CALENDAR_SPAN_WEIGHT · DEFAULT_DATETIME_RANGE_WEIGHT · calendarSpanAt · createDatetimeRange · datetimeEndpoint · datetimeRange · dayWindowAt · fromToAt
Dependencies
What it costs
Ceilings, not measurements. bun run check-size bundles each entry with
bun build --minify and fails if a row crosses its ceiling or drops more
than 30 % below it — a budget that is only an upper bound reports a vanished
graph as a triumph.
| Import | Minified | Gzipped | | --- | --- | --- | | datetime-range root (no holiday data) | ≤ 153 kB | ≤ 53.1 kB | | datetime-range holiday | ≤ 1596 kB | ≤ 294 kB |
Generated by scripts/gen-readmes.ts — run bun run docs:readmes. Every
output above was produced by running the line beside it. The full page, with
live demos, is docs/packages/datetime-range.md.
