All files / src/parsers/abstract collection.js

100% Statements 2/2
100% Branches 0/0
100% Functions 2/2
100% Lines 2/2

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24                                    36x   454x      
// @flow
 
import P from 'parsimmon'
import CollectionCoreParser from '../collections/collectionCore'
import crap from '../crap'
import type { CollectionCoreNodeType, ParserType } from '../../types'
 
type ListLikeParserDefinitionType = {|
  name: string,
  open: string,
  close: string
|};
 
export default ({
  name,
  open,
  close
}: ListLikeParserDefinitionType): ParserType =>
  CollectionCoreParser.trim(crap)
    .wrap(P.string(open), P.string(close))
    .map((value: {value: CollectionCoreNodeType}): CollectionCoreNodeType => value.value)
    .node(name)
    .desc(name)