function applyDeltaEncoding()

in middleware/utils/encoding.js [48:80]


function applyDeltaEncoding(data) {
    if (!data || !Array.isArray(data) || data.length === 0) {
        return { 
            startEpoch: 0, 
            startVolume: 0, 
            timeMultiplier: TIME_MULTIPLIER,
            epochs: [], 
            volumes: [] 
        };
    }
    
    // First element becomes the base reference
    const startEpoch = data[0].epoch;
    const startVolume = data[0].volume;
    
    // For each subsequent element, store deltas from previous
    const epochs = [];
    const volumes = [];
    
    for (let i = 1; i < data.length; i++) {
        // Store epoch deltas normalized to reduce zeros
        epochs.push((data[i].epoch - data[i-1].epoch) / TIME_MULTIPLIER);
        volumes.push(data[i].volume - data[i-1].volume);
    }
    
    return {
        startEpoch: startEpoch / TIME_MULTIPLIER,
        startVolume,
        timeMultiplier: TIME_MULTIPLIER,
        epochs,
        volumes
    };
}