mirror of
https://github.com/multipleof4/lynchmark.git
synced 2026-02-04 01:47:54 +00:00
4 lines
728 B
JavaScript
4 lines
728 B
JavaScript
const createStreamVisualizer=async(asyncIterable,options)=>{const{maxPoints,alpha,width,height,yDomain}=options;const d3=await import('https://cdn.jsdelivr.net/npm/d3@7/+esm');const data=[];let ema;for await(const{timestamp,value}of asyncIterable){ema=data.length?alpha*value+(1-alpha)*ema:value;data.push({timestamp,value,ema});if(data.length>maxPoints)data.shift()}if(!data.length)return{data,path:''};const x=d3.scaleLinear().domain([data[0].timestamp,data[data.length-1].timestamp]).range([0,width]);const y=d3.scaleLinear().domain(yDomain).range([height,0]);const path=d3.line().x(d=>x(d.timestamp)).y(d=>y(d.ema))(data);return{data,path}};
|
|
export default createStreamVisualizer;
|
|
// Generation time: 35.163s
|
|
// Result: PASS
|