(parser)
| 569 | } |
| 570 | |
| 571 | static parse(parser) { |
| 572 | if (!parser.matchToken("fetch")) return; |
| 573 | |
| 574 | parser.pushFollow("as"); |
| 575 | try { |
| 576 | var url = parser.parseURLOrExpression(); |
| 577 | } finally { |
| 578 | parser.popFollow(); |
| 579 | } |
| 580 | |
| 581 | if (parser.matchToken("as")) { |
| 582 | var conversionInfo = FetchCommand.parseConversionInfo(parser); |
| 583 | } |
| 584 | |
| 585 | if (parser.matchToken("with") && parser.currentToken().value !== "{") { |
| 586 | var argExprs = parser.parseElement("nakedNamedArgumentList"); |
| 587 | } else { |
| 588 | var argExprs = parser.parseElement("objectLiteral"); |
| 589 | } |
| 590 | |
| 591 | if (conversionInfo == null && parser.matchToken("as")) { |
| 592 | conversionInfo = FetchCommand.parseConversionInfo(parser); |
| 593 | } |
| 594 | |
| 595 | var dontThrow = false; |
| 596 | if (parser.matchToken("do")) { |
| 597 | parser.requireToken("not"); |
| 598 | parser.requireToken("throw"); |
| 599 | dontThrow = true; |
| 600 | } else if (parser.currentToken().value === "don" && |
| 601 | parser.token(1).value === "'" && |
| 602 | parser.token(2).value === "t" && |
| 603 | parser.token(1).start === parser.currentToken().end && |
| 604 | parser.token(2).start === parser.token(1).end) { |
| 605 | parser.consumeToken(); // don |
| 606 | parser.consumeToken(); // ' |
| 607 | parser.consumeToken(); // t |
| 608 | parser.requireToken("throw"); |
| 609 | dontThrow = true; |
| 610 | } |
| 611 | |
| 612 | var type = conversionInfo ? conversionInfo.type : "text"; |
| 613 | var conversion = conversionInfo ? conversionInfo.conversion : null; |
| 614 | |
| 615 | return new FetchCommand(url, argExprs, type, conversion, dontThrow); |
| 616 | } |
| 617 | |
| 618 | resolve(context, { url, options }) { |
| 619 | var detail = options || {}; |
nothing calls this directly
no test coverage detected