HookScript :: Munchkin Stack & Shift

by sanford

JavaScript

var munchkinTokenListJSON = 
    JSON.stringify([
        {
            token : "aaa-123",
            timestamp: 123
        },
        {
            token : "bbb-234",
            timestamp: 234
        },
        {
            token : "ccc-345",
            timestamp: 345
        }
        ]),
    munchkinTokenList = JSON.parse(munchkinTokenListJSON),
    munchkinTokenLastShiftJSON = 
    JSON.stringify(
        
        // {      token: "ccc-345",timestamp: 345        }
         {         token: "bbb-234",         timestamp: 234        }
        
        ),
    munchkinTokenLastShift = JSON.parse(munchkinTokenLastShiftJSON);

var	munchkinTokenNextShift = '',
    munchkinTokenNextShiftJSON,
    munchkinTokenWorkToDo = '';

// walk backward to find the last matched / pointer
for ( var imax = munchkinTokenList.length, i = imax; i-- ; ) {
    console.log(i);
 	if ( munchkinPropsMatch(munchkinTokenList[i],munchkinTokenLastShift ) ) {
    // found matching object, bump i by 1 to find next to work on
        i++;
        break;   
    }    
}

if ( i >= 0 && i < imax) {
    console.log(i,'setting next token');
    munchkinTokenNextShift = munchkinTokenList[i];    
} else {
    if ( i == imax ) {
    	console.log (i,'last item is also last shifted, ignoring this run');
	} else {
    	console.log (i,'last item not found');
    }
}

munchkinTokenNextShiftJSON = JSON.stringify(munchkinTokenNextShift);
munchkinTokenWorkToDo = munchkinPropsToQS(munchkinTokenNextShift);

console.log('final: ','munchkinTokenNextShift=',munchkinTokenNextShift, 'munchkinTokenNextShiftJSON=',munchkinTokenNextShiftJSON, 'munchkinTokenWorkToDo=',munchkinTokenWorkToDo);

// final return
var ret= JSON.stringify ({
    munchkinTokenNextShiftJSON : munchkinTokenNextShiftJSON,
    munchkinTokenWorkToDo : munchkinTokenWorkToDo
    
});
console.log(JSON.parse(JSON.parse(ret).munchkinTokenNextShiftJSON).token);

function munchkinPropsMatch(sourceMunchkinToken,targetMunchkinToken){
    return (...