UNPKG

pm4js

Version:

Process Mining for Javascript

35 lines (32 loc) 943 B
class EventLogToStream { static shallowCopy(eve0) { let eve = new Event(); for (let attr in eve0.attributes) { eve.attributes[attr] = eve0.attributes[attr]; } return eve; } static apply(eventLog, sortingAttribute="time:timestamp", casePrefix="case:") { let stream = []; for (let trace of eventLog.traces) { for (let eve0 of trace.events) { let eve = EventLogToStream.shallowCopy(eve0); for (let traceAttr in trace.attributes) { let traceAttrValue = trace.attributes[traceAttr]; eve.attributes[casePrefix+traceAttr] = traceAttrValue; } stream.push(eve); } } stream.sort((a, b) => { return a.attributes[sortingAttribute].value - b.attributes[sortingAttribute].value }); return stream; } } try { module.exports = {EventLogToStream: EventLogToStream}; global.EventLogToStream = EventLogToStream; } catch (err) { // not in node //console.log(err); }