(parser)
| 11660 | runtime2.assignToNamespace(target, this.nameSpace, this.eventSourceName, this.stub); |
| 11661 | } |
| 11662 | static parse(parser) { |
| 11663 | if (!parser.matchToken("eventsource")) return; |
| 11664 | var urlElement; |
| 11665 | var withCredentials = false; |
| 11666 | var method = "GET"; |
| 11667 | var headers = null; |
| 11668 | var name = parser.requireElement("dotOrColonPath"); |
| 11669 | var qualifiedName = name.evalStatically(); |
| 11670 | var nameSpace = qualifiedName.split("."); |
| 11671 | var eventSourceName = nameSpace.pop(); |
| 11672 | if (parser.matchToken("from")) { |
| 11673 | urlElement = parser.parseURLOrExpression(); |
| 11674 | } |
| 11675 | while (parser.matchToken("with")) { |
| 11676 | if (parser.matchToken("credentials")) { |
| 11677 | withCredentials = true; |
| 11678 | } else if (parser.matchToken("method")) { |
| 11679 | method = parser.requireElement("stringLike").evalStatically().toUpperCase(); |
| 11680 | } else if (parser.matchToken("headers")) { |
| 11681 | headers = parser.requireElement("objectLiteral"); |
| 11682 | } else { |
| 11683 | parser.raiseExpected("credentials", "method", "headers"); |
| 11684 | } |
| 11685 | } |
| 11686 | var staticHeaders = null; |
| 11687 | if (headers) { |
| 11688 | staticHeaders = {}; |
| 11689 | for (var i = 0; i < headers.keyExpressions.length; i++) { |
| 11690 | var key = headers.keyExpressions[i].evalStatically(); |
| 11691 | var val = headers.valueExpressions[i].evalStatically(); |
| 11692 | staticHeaders[key] = val; |
| 11693 | } |
| 11694 | } |
| 11695 | var stub = createStub(withCredentials, method, staticHeaders); |
| 11696 | var feature = new _EventSourceFeature(eventSourceName, nameSpace, stub); |
| 11697 | while (parser.matchToken("on")) { |
| 11698 | var eventName = parser.requireElement("stringLike").evalStatically(); |
| 11699 | var encoding = ""; |
| 11700 | if (parser.matchToken("as")) { |
| 11701 | encoding = parser.requireElement("stringLike").evalStatically(); |
| 11702 | } |
| 11703 | var commandList = parser.requireElement("commandList"); |
| 11704 | parser.ensureTerminated(commandList); |
| 11705 | parser.requireToken("end"); |
| 11706 | stub.listeners.push({ |
| 11707 | type: eventName, |
| 11708 | handler: makeHandler(encoding, commandList, stub, feature) |
| 11709 | }); |
| 11710 | } |
| 11711 | parser.requireToken("end"); |
| 11712 | if (urlElement != void 0) { |
| 11713 | stub.open(urlElement.evalStatically()); |
| 11714 | } |
| 11715 | return feature; |
| 11716 | } |
| 11717 | }; |
| 11718 | function createStub(withCredentials, method, headers) { |
| 11719 | var stub = { |
nothing calls this directly
no test coverage detected