MCPcopy Create free account
hub / github.com/bigskysoftware/_hyperscript / parse

Method parse

www/js/ext/eventsource.js:141–195  ·  view source on GitHub ↗
(parser)

Source from the content-addressed store, hash-verified

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

Callers 1

decodeFunction · 0.45

Calls 9

createStubFunction · 0.70
makeHandlerFunction · 0.70
matchTokenMethod · 0.45
requireElementMethod · 0.45
evalStaticallyMethod · 0.45
parseURLOrExpressionMethod · 0.45
raiseExpectedMethod · 0.45
ensureTerminatedMethod · 0.45
requireTokenMethod · 0.45

Tested by

no test coverage detected