prettier-plugin-multiline-arrays
Version:
Prettier plugin to force all arrays to be multiline.
34 lines (33 loc) • 1.03 kB
JavaScript
import { stringify } from '@augment-vir/common';
const childProperties = [
'breakContents',
'contents',
'flatContents',
'parts',
];
export function stringifyDoc(input, recursive = false) {
if (typeof input === 'string' || !input) {
return [stringify(input)];
}
else if (Array.isArray(input)) {
return input.map((entry) => stringifyDoc(entry, recursive));
}
else if (recursive) {
const children = childProperties.reduce((accum, currentProperty) => {
if (currentProperty in input) {
accum.push(`${currentProperty}:`, stringifyDoc(input[currentProperty], recursive));
}
return accum;
}, []);
if (children.length) {
return [
`${input.type}:`,
stringifyDoc(children, recursive),
];
}
}
return [input.type];
}
export function isDocCommand(inputDoc) {
return !!inputDoc && typeof inputDoc !== 'string' && !Array.isArray(inputDoc);
}