Я не пробовал ответить всем, но несколько решений, с которыми я работал, не соответствовали всем моим требованиям.
Я смог придумать что-то, что сделало ...
export const jsObjToCSSString = (o={}) =>
Object.keys(o)
.map(key => ({ key, value: o[key] }))
.map(({key, value}) =>
({
key: key.replace( /([A-Z])/g, "-$1").toLowerCase(),
value
})
)
.reduce(
(css, {key, value}) =>
`${css} ${key}: ${value}; `.trim(),
'')