Skip to content

Instantly share code, notes, and snippets.

@andresgutgon
Last active August 5, 2021 10:30
Show Gist options
  • Save andresgutgon/16e158e9a71668bc84f22c46e2bfed14 to your computer and use it in GitHub Desktop.
Save andresgutgon/16e158e9a71668bc84f22c46e2bfed14 to your computer and use it in GitHub Desktop.
import { MeasuringSystem, MeasuringUnit, MeasuringUnitKind } from "db"
const COMMON = { unitless: { count: MeasuringUnit.count } }
type UnitGroup = Record<MeasuringUnitKind, Record<string, MeasuringUnit>>
type SystemUnits = Record<MeasuringSystem, UnitGroup>
export const units: SystemUnits = {
[MeasuringSystem.METRIC]: {
...COMMON,
temperature: { tempC: MeasuringUnit.tempC },
mass: { kg: MeasuringUnit.kg, gram: MeasuringUnit.gram },
volume: { litre: MeasuringUnit.litre, millilitre: MeasuringUnit.millilitre },
},
[MeasuringSystem.US]: {
...COMMON,
temperature: { tempF: MeasuringUnit.tempF },
mass: { pound: MeasuringUnit.pound, oz: MeasuringUnit.oz },
volume: {
floz: MeasuringUnit.floz,
teaspoon: MeasuringUnit.teaspoon,
tablespoon: MeasuringUnit.tablespoon,
cup: MeasuringUnit.cup,
pint: MeasuringUnit.pint,
quart: MeasuringUnit.quart,
},
},
[MeasuringSystem.IMPERIAL]: {
...COMMON,
temperature: { tempF: MeasuringUnit.tempF },
mass: { pound: MeasuringUnit.pound, oz: MeasuringUnit.oz },
volume: {
flozimp: MeasuringUnit.flozimp,
teaspoon: MeasuringUnit.teaspoon,
tablespoon: MeasuringUnit.tablespoon,
cup: MeasuringUnit.cup,
ptimp: MeasuringUnit.ptimp,
quart: MeasuringUnit.quart,
},
},
}
export function getUnitsForSystem(system: MeasuringSystem): UnitGroup {
return units[system]
}
@andresgutgon
Copy link
Author

This page is awesome for learning about measurement units:
https://opentextbc.ca/basickitchenandfoodservicemanagement/chapter/units-of-measurement/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment