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

Method parse

www/js/ext/eventsource.esm.js:140–194  ·  view source on GitHub ↗
(parser)

Source from the content-addressed store, hash-verified

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};
196function createStub(withCredentials, method, headers) {
197 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