(parser)
| 138 | runtime.assignToNamespace(target, this.nameSpace, this.eventSourceName, this.stub); |
| 139 | } |
| 140 | static parse(parser) { |
| 141 | if (!parser.matchToken("eventsource")) return; |
| 142 | var urlElement; |
| 143 | var withCredentials = false; |
| 144 | var method = "GET"; |
| 145 | var headers = null; |
| 146 | var name = parser.requireElement("dotOrColonPath"); |
| 147 | var qualifiedName = name.evalStatically(); |
| 148 | var nameSpace = qualifiedName.split("."); |
| 149 | var eventSourceName = nameSpace.pop(); |
| 150 | if (parser.matchToken("from")) { |
| 151 | urlElement = parser.parseURLOrExpression(); |
| 152 | } |
| 153 | while (parser.matchToken("with")) { |
| 154 | if (parser.matchToken("credentials")) { |
| 155 | withCredentials = true; |
| 156 | } else if (parser.matchToken("method")) { |
| 157 | method = parser.requireElement("stringLike").evalStatically().toUpperCase(); |
| 158 | } else if (parser.matchToken("headers")) { |
| 159 | headers = parser.requireElement("objectLiteral"); |
| 160 | } else { |
| 161 | parser.raiseExpected("credentials", "method", "headers"); |
| 162 | } |
| 163 | } |
| 164 | var staticHeaders = null; |
| 165 | if (headers) { |
| 166 | staticHeaders = {}; |
| 167 | for (var i = 0; i < headers.keyExpressions.length; i++) { |
| 168 | var key = headers.keyExpressions[i].evalStatically(); |
| 169 | var val = headers.valueExpressions[i].evalStatically(); |
| 170 | staticHeaders[key] = val; |
| 171 | } |
| 172 | } |
| 173 | var stub = createStub(withCredentials, method, staticHeaders); |
| 174 | var feature = new _EventSourceFeature(eventSourceName, nameSpace, stub); |
| 175 | while (parser.matchToken("on")) { |
| 176 | var eventName = parser.requireElement("stringLike").evalStatically(); |
| 177 | var encoding = ""; |
| 178 | if (parser.matchToken("as")) { |
| 179 | encoding = parser.requireElement("stringLike").evalStatically(); |
| 180 | } |
| 181 | var commandList = parser.requireElement("commandList"); |
| 182 | parser.ensureTerminated(commandList); |
| 183 | parser.requireToken("end"); |
| 184 | stub.listeners.push({ |
| 185 | type: eventName, |
| 186 | handler: makeHandler(encoding, commandList, stub, feature) |
| 187 | }); |
| 188 | } |
| 189 | parser.requireToken("end"); |
| 190 | if (urlElement != void 0) { |
| 191 | stub.open(urlElement.evalStatically()); |
| 192 | } |
| 193 | return feature; |
| 194 | } |
| 195 | }; |
| 196 | function createStub(withCredentials, method, headers) { |
| 197 | var stub = { |
no test coverage detected