UNPKG

prettier-plugin-multiline-arrays

Version:
44 lines (43 loc) 1.67 kB
import { getObjectTypedKeys, mapObjectValues } from '@augment-vir/common'; import { parsers as babelParsers } from 'prettier/plugins/babel'; import { parsers as tsParsers } from 'prettier/plugins/typescript'; import { defaultMultilineArrayOptions, optionHelp } from './options.js'; import { wrapParser } from './preprocessing.js'; import { multilineArrayPrinter } from './printer/multiline-array-printer.js'; // exports in case others want to utilize these export * from './options.js'; export { pluginMarker } from './plugin-marker.js'; export const parsers = mapObjectValues({ typescript: tsParsers.typescript, babel: babelParsers.babel, 'babel-ts': babelParsers['babel-ts'], json: babelParsers.json, json5: babelParsers.json5, }, (languageName, parserEntry) => { return wrapParser(parserEntry, languageName); }); const printers = { estree: multilineArrayPrinter, 'estree-json': multilineArrayPrinter, }; export const options = getObjectTypedKeys(defaultMultilineArrayOptions).reduce((accum, key) => { const defaultValue = defaultMultilineArrayOptions[key]; const supportOption = { name: key, type: (typeof defaultValue === 'number' ? 'int' : typeof defaultValue), category: 'multilineArray', default: defaultValue, description: optionHelp[key], }; accum[key] = supportOption; return accum; }, {}); export const defaultOptions = defaultMultilineArrayOptions; /** Not actually exported: this is just for type checking purposes. */ // eslint-disable-next-line @typescript-eslint/no-unused-vars const plugin = { options, printers, defaultOptions, parsers, };