MIRROR: javascript for 馃悳's, a tiny runtime with big ambitions
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at master 22 lines 964 B view raw
1function flightReviver(key, value) { 2 if (typeof value === 'string' && value[0] === '$' && value.length > 1) { 3 return { 4 ref: value, 5 holderIsArray: Array.isArray(this), 6 holderKeys: Object.keys(this).join(',') 7 }; 8 } 9 10 return value; 11} 12 13const topLevelArray = JSON.parse('["$5","$8"]', flightReviver); 14console.log(`top0:${topLevelArray[0].ref}:${topLevelArray[0].holderIsArray}:${topLevelArray[0].holderKeys}`); 15console.log(`top1:${topLevelArray[1].ref}:${topLevelArray[1].holderIsArray}:${topLevelArray[1].holderKeys}`); 16 17const nested = JSON.parse('{"root":["$5","$8"]}', flightReviver); 18console.log(`nested0:${nested.root[0].ref}:${nested.root[0].holderIsArray}:${nested.root[0].holderKeys}`); 19console.log(`nested1:${nested.root[1].ref}:${nested.root[1].holderIsArray}:${nested.root[1].holderKeys}`); 20 21const escaped = JSON.parse('{"literal":"$$escaped"}', flightReviver); 22console.log(`escaped:${escaped.literal.ref || escaped.literal}`);