UNPKG

jsdoc-type-pratt-parser

Version:

[![Npm Package](https://badgen.net/npm/v/jsdoc-type-pratt-parser)](https://www.npmjs.com/package/jsdoc-type-pratt-parser) [![Test Status](https://github.com/jsdoc-type-pratt-parser/jsdoc-type-pratt-parser/actions/workflows/test.yml/badge.svg?branch=main)]

22 lines (20 loc) 682 B
import { composeParslet } from './Parslet.js' import { Precedence } from '../Precedence.js' import { assertPlainKeyValueOrNameResult } from '../assertTypes.js' import { getParameters } from './FunctionParslet.js' export const arrowFunctionParslet = composeParslet({ name: 'arrowFunctionParslet', precedence: Precedence.ARROW, accept: type => type === '=>', parseInfix: (parser, left) => { parser.consume('=>') return { type: 'JsdocTypeFunction', parameters: getParameters(left).map(assertPlainKeyValueOrNameResult), arrow: true, constructor: false, parenthesis: true, returnType: parser.parseType(Precedence.OBJECT) } } })