UNPKG

prettier-plugin-multiline-arrays

Version:
34 lines (33 loc) 1.03 kB
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); }