2020-03-06 18:17:12 +01:00
|
|
|
// This file is a basic example of using a chart inside a web worker.
|
|
|
|
// All it creates a new chart from a transferred OffscreenCanvas and then assert that the correct platform type was
|
|
|
|
// used.
|
|
|
|
|
|
|
|
// Receives messages with data of type: { type: 'initialize', canvas: OffscreenCanvas }
|
|
|
|
// Sends messages with data of types: { type: 'success' } | { type: 'error', errorMessage: string }
|
|
|
|
|
2020-08-14 15:15:18 +02:00
|
|
|
// eslint-disable-next-line no-undef
|
|
|
|
importScripts('../src/chart.js');
|
2020-03-06 18:17:12 +01:00
|
|
|
|
|
|
|
onmessage = function(event) {
|
|
|
|
try {
|
|
|
|
const {type, canvas} = event.data;
|
|
|
|
if (type !== 'initialize') {
|
|
|
|
throw new Error('invalid message type received by worker: ' + type);
|
|
|
|
}
|
|
|
|
|
|
|
|
const chart = new Chart(canvas);
|
|
|
|
if (!(chart.platform instanceof Chart.platforms.BasicPlatform)) {
|
|
|
|
throw new Error('did not use basic platform for chart in web worker');
|
|
|
|
}
|
|
|
|
|
|
|
|
postMessage({type: 'success'});
|
|
|
|
} catch (error) {
|
|
|
|
postMessage({type: 'error', errorMessage: error.stack});
|
|
|
|
}
|
|
|
|
};
|