rsocket / rsocket-js

JavaScript implementation of RSocket
https://github.com/rsocket/rsocket-js
Apache License 2.0
594 stars 97 forks source link

Add WebWorker support for LiteBuffer #221

Open ygrill-astek opened 2 years ago

ygrill-astek commented 2 years ago

LiteBuffer isn't supported in WebWorker context as the code use window object which is undefined in WebWorker

Solution which seems to work for me Use following code in LiteBuffer.js

if (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) {
    Object.defineProperty(WorkerGlobalScope, 'Buffer', {
      configurable: true,
      enumerable: false,
      value: Buffer,
      writable: true,
    });
  } else {
    Object.defineProperty(window, 'Buffer', {
      configurable: true,
      enumerable: false,
      value: Buffer,
      writable: true,
    });

  }

instead of only

Object.defineProperty(window, 'Buffer', {
      configurable: true,
      enumerable: false,
      value: Buffer,
      writable: true,
    });