28 lines
680 B
JavaScript
28 lines
680 B
JavaScript
/**
|
|
* @typedef {import('../types.js').State} State
|
|
* @typedef {import('../types.js').Options} Options
|
|
*/
|
|
|
|
/**
|
|
* @param {State} state
|
|
* @returns {Exclude<Options['listItemIndent'], null | undefined>}
|
|
*/
|
|
export function checkListItemIndent(state) {
|
|
const style = state.options.listItemIndent || 'tab'
|
|
|
|
// To do: remove in a major.
|
|
// @ts-expect-error: deprecated.
|
|
if (style === 1 || style === '1') {
|
|
return 'one'
|
|
}
|
|
|
|
if (style !== 'tab' && style !== 'one' && style !== 'mixed') {
|
|
throw new Error(
|
|
'Cannot serialize items with `' +
|
|
style +
|
|
'` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`'
|
|
)
|
|
}
|
|
|
|
return style
|
|
}
|