diff --git a/src/utils/__mocks__/worker-factory.js b/src/utils/__mocks__/worker-factory.js index 63934de0b7a..27089e1e29e 100644 --- a/src/utils/__mocks__/worker-factory.js +++ b/src/utils/__mocks__/worker-factory.js @@ -23,7 +23,19 @@ class NodeWorker { message: mixed, transfer?: Array ) { - this._instance.postMessage({ data: message }, transfer); + let payload = message; + + // Starting with node v11.12, postMessage sends the payload using the same + // semantics than Web Workers. This code adds the support for older node + // versions. We can remove this thin compatibility layers when we stop + // supporting these node versions. + const nodeVersion = process.versions.node; + const [major, minor] = nodeVersion.split('.'); + + if (+major < 11 || (+major === 11 && +minor < 12)) { + payload = { data: message }; + } + this._instance.postMessage(payload, transfer); } onMessage = (message: Object) => {