@smartput/kinds
v0.3.0
Published
Every built-in kind, its vocabulary, and the two barrels over them.
Downloads
17
Maintainers
Readme
@smartput/kinds
Every built-in kind, its vocabulary, and the two barrels over them.
BUILTIN_KINDS is the list createEngine() is normally handed;
the individual descriptors are exported by name beside it. measure is
exported but not in BUILTIN_KINDS — its mm and cm collide with
length, so registering it is a decision, not a default.
The /validate and /class barrels re-export every kind's subpath. They are
a convenience, not the byte-safe door: they shake to one kind under esbuild,
Rollup and modern webpack, and to all seventeen under a bundler that does not
follow re-exports. Two rows in check-size.ts exist to catch the day that
stops being true.
Setup
npm add @smartput/kindsExample
import { BUILTIN_KINDS, mass, length } from "@smartput/kinds";
import { parseMass, parseLength } from "@smartput/kinds/validate";
import { Mass } from "@smartput/kinds/class";
BUILTIN_KINDS.length // 17
BUILTIN_KINDS.map((k) => k.id).join(", ") // "boolean, number, percent, length, mass, duration, temperature, tempdelta, angle, datasize, speed, area, volume, datarate, power, energy, tempo"
parseMass("2 kg") // {"ok":true,"value":2,"unit":"kg","raw":"2"}
String(Mass.parse("2 kg")) // "2kg"measure is exported but deliberately not in BUILTIN_KINDS:
its mm and cm collide with length, so registering it is a decision
rather than a default.
Entry points
| Import | Contents |
| --- | --- |
| @smartput/kinds | The package root. |
| @smartput/kinds/validate | Every kind's free functions in one import — see the shake note above. |
| @smartput/kinds/class | Every kind's value class in one import. |
| @smartput/kinds/locale/<id> | One language's words for this kind. 17 ship: en, de, fr, es, pt, it, nl, zh, ja, ar, ru, pl, tr, hi, ko, id, uk. |
Runtime exports
Type-only exports are erased and do not appear here.
BUILTIN_KINDS · angle · area · boolean · datarate · datasize · duration · energy · length · mass · measure · number · percent · power · speed · tempdelta · temperature · tempo · volume
Dependencies
@smartput/angle@smartput/area@smartput/boolean@smartput/datarate@smartput/datasize@smartput/duration@smartput/energy@smartput/kind@smartput/length@smartput/mass@smartput/measure@smartput/number@smartput/percent@smartput/power@smartput/speed@smartput/temperature@smartput/tempo@smartput/volume
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 | | --- | --- | --- | | kinds/validate barrel, one kind (shake check) | ≤ 1.4 kB | ≤ 800 B | | kinds/class barrel, one kind (shake check) | ≤ 4.8 kB | ≤ 1.9 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/kinds.md.
