runParser method

Future<Data?> runParser({
  1. required Parser parser,
  2. required Data parentData,
  3. required Uri? proxyUrl,
  4. required bool debug,
})

Run parser based on type

Implementation

Future<Data?> runParser({
  required Parser parser,
  required Data parentData,
  required Uri? proxyUrl,
  required bool debug,
}) async {
  switch (parser.type) {
    case ParserType.element:
      return elementParser(parser, parentData, extractedData, debug);
    case ParserType.text:
      return textParser(parser, parentData, extractedData, debug);
    case ParserType.image:
      return imageParser(parser, parentData, extractedData, debug);
    case ParserType.attribute:
      return attributeParser(parser, parentData, extractedData, debug);
    case ParserType.json:
      return jsonParser(parser, parentData, extractedData, debug);
    case ParserType.url:
      return urlParser(parser, parentData, extractedData, debug);
    case ParserType.http:
      return await httpParser(
        parser,
        parentData,
        extractedData,
        proxyUrl,
        debug,
      );
    case ParserType.strBetween:
      return stringBetweenParser(parser, parentData, debug);
    case ParserType.jsonld:
      return jsonLdParser(parser, parentData, debug);
    case ParserType.table:
      return tableParser(parser, parentData, extractedData, debug);
    case ParserType.sibling:
      return siblingParser(parser, parentData, extractedData, debug);
    case ParserType.urlParam:
      return urlParamParser(parser, parentData, extractedData, debug);
    case ParserType.jsonTable:
      return jsonTableParser(parser, parentData, extractedData, debug);
    case ParserType.staticVal:
      return staticValueParser(parser, parentData, debug);
    case ParserType.json5decode:
      return json5DecodeParser(parser, parentData, debug);
    case ParserType.returnUrlParser:
      return returnUrlParser(parser, parentData, debug);
    default:
      return null;
  }
}