MCPcopy Index your code
hub / github.com/bigskysoftware/_hyperscript / parse

Method parse

www/js/_hyperscript-max.js:11662–11716  ·  view source on GitHub ↗
(parser)

Source from the content-addressed store, hash-verified

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 = {

Callers

nothing calls this directly

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