2021-07-11 13:45:53 +02:00
|
|
|
const a = require('./assert')
|
|
|
|
|
const prep = require('./prepare')
|
|
|
|
|
|
|
|
|
|
const default_units = {
|
2021-12-15 22:45:35 +01:00
|
|
|
U: 19.05,
|
2021-07-11 13:45:53 +02:00
|
|
|
u: 19,
|
|
|
|
|
cx: 18,
|
2021-12-18 18:37:26 +01:00
|
|
|
cy: 17,
|
|
|
|
|
$default_stagger: 0,
|
|
|
|
|
$default_spread: 'u',
|
|
|
|
|
$default_splay: 0,
|
|
|
|
|
$default_height: 'u-1',
|
|
|
|
|
$default_width: 'u-1',
|
2022-02-27 18:18:16 +01:00
|
|
|
$default_padding: 'u',
|
|
|
|
|
$default_autobind: 10
|
2021-07-11 13:45:53 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
exports.parse = (config = {}) => {
|
|
|
|
|
const raw_units = prep.extend(
|
|
|
|
|
default_units,
|
|
|
|
|
a.sane(config.units || {}, 'units', 'object')(),
|
|
|
|
|
a.sane(config.variables || {}, 'variables', 'object')()
|
|
|
|
|
)
|
|
|
|
|
const units = {}
|
|
|
|
|
for (const [key, val] of Object.entries(raw_units)) {
|
|
|
|
|
units[key] = a.mathnum(val)(units)
|
|
|
|
|
}
|
|
|
|
|
return units
|
|
|
|
|
}
|