import { Spec, parse, Problem } from "comment-parser" export const getTags = (source?: string): Spec[] => { if (!source) return [] const blocks = parse(source) const tags = blocks.reduce( (acc, block) => acc.concat(block.tags), [] as Spec[] ); return tags } export const getErrors = (source?: string): Error | undefined => { if (!source) return undefined const blocks = parse(source) const probs = blocks.reduce( (acc, block) => acc.concat(block.problems), [] as Problem[] ); if (!probs.length) return undefined const errors = probs.map(prob => `[${prob.code}] on line ${prob.line}: ${prob.message}`) const error = new Error(`The following error(s) occurred while parsing JSDOC: \n${errors.join('\n')}`) return error }