24 lines
804 B
TypeScript
24 lines
804 B
TypeScript
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
|
|
} |