MCPcopy
hub / github.com/witheve/Eve / findValue

Function findValue

src/runtime/analyzer.ts:520–581  ·  view source on GitHub ↗
(evaluation: Evaluation, info: any, spans: any[], extraInfo: any)

Source from the content-addressed store, hash-verified

518}
519
520export function findValue(evaluation: Evaluation, info: any, spans: any[], extraInfo: any) {
521 let queryId = `query|${info.requestId}`;
522 let query = {tag: ["query", "findValue"], token: info.variable};
523 let eve = doQuery(queryId, query, spans, extraInfo);
524
525 let sessionIndex = eve.getDatabase("session").index;
526 let evSession = evaluation.getDatabase("session");
527 let lookup = {};
528 let blockId, found;
529 let rows = [];
530 let varToRegister = {};
531 let names = {};
532
533 let queryInfo = sessionIndex.alookup("tag", "query");
534 if(queryInfo) {
535 let [entity] = queryInfo.toValues();
536 let obj = sessionIndex.asObject(entity);
537 if(obj.register) {
538 for(let variable of obj.register) {
539 let varObj = sessionIndex.asObject(variable);
540 if(varObj) {
541 if(!blockId) {
542 blockId = varObj.block[0];
543 for(let block of evSession.blocks) {
544 if(block.id === blockId) {
545 found = block;
546 break;
547 }
548 }
549 }
550 if(varObj.attribute) {
551 for(let attribute of varObj.attribute) {
552 varToRegister[attribute] = varObj.register[0];
553 }
554 }
555 lookup[varObj.token[0]] = varObj.register[0];
556 names[varObj.token[0]] = varObj.name[0];
557 }
558 }
559 }
560 }
561 if(info.given) {
562 let keys = Object.keys(info.given);
563 let registers = [];
564 let registerValues = [];
565 for(let key of keys) {
566 let reg = varToRegister[key];
567 if(reg !== undefined && registers.indexOf(reg) === -1) {
568 registers.push(reg);
569 registerValues.push(info.given[key][0]);
570 }
571 }
572 rows = findResultRows(found.results, registers, registerValues);
573 } else {
574 rows = found.results;
575 }
576 info.rows = rows.slice(0,100);
577 info.totalRows = rows.length;

Callers

nothing calls this directly

Calls 6

doQueryFunction · 0.85
findResultRowsFunction · 0.85
getDatabaseMethod · 0.80
alookupMethod · 0.80
toValuesMethod · 0.80
asObjectMethod · 0.45

Tested by

no test coverage detected