MCPcopy Index your code
hub / github.com/totaljs/framework / parseData

Function parseData

graphdb.js:2502–2550  ·  view source on GitHub ↗
(schema, lines, cache)

Source from the content-addressed store, hash-verified

2500}
2501
2502function parseData(schema, lines, cache) {
2503
2504 var obj = {};
2505 var esc = lines === '*';
2506 var val;
2507
2508 for (var i = 0; i < schema.keys.length; i++) {
2509 var key = schema.keys[i];
2510
2511 if (cache && cache !== EMPTYOBJECT && cache[key] != null) {
2512 obj[key] = cache[key];
2513 continue;
2514 }
2515
2516 var meta = schema.meta[key];
2517 if (meta == null)
2518 continue;
2519
2520 var pos = meta.pos + 1;
2521
2522 switch (meta.type) {
2523 case 1: // String
2524 obj[key] = lines[pos];
2525 if (esc && obj[key])
2526 obj[key] = obj[key].replace(REGTUNESCAPE, regtescapereverse);
2527 break;
2528 case 2: // Number
2529 val = +lines[pos];
2530 obj[key] = val < 0 || val > 0 ? val : 0;
2531 break;
2532 case 3: // Boolean
2533 val = lines[pos];
2534 obj[key] = BOOLEAN[val] == 1;
2535 break;
2536 case 4: // Date
2537 val = lines[pos];
2538 obj[key] = val ? new Date(val[10] === 'T' ? val : +val) : null;
2539 break;
2540 case 5: // Object
2541 val = lines[pos];
2542 if (esc && val)
2543 val = val.replace(REGTUNESCAPE, regtescapereverse);
2544 obj[key] = val ? val.parseJSON(true) : null;
2545 break;
2546 }
2547 }
2548
2549 return obj;
2550}
2551
2552function regtescapereverse(c) {
2553 switch (c) {

Callers 3

updDocumentFunction · 0.85
processFunction · 0.85
graphdb.jsFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected