21 lines
745 B
TypeScript
21 lines
745 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
|
|
}
|