index.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import { createBrowserEnv } from './createBrowserEnv';
  2. import { createFileSystem } from './createFileSystem';
  3. import { createNodejsEnv } from './createNodejsEnv';
  4. import { isBrowser } from './isBrowser';
  5. import { isNodejs } from './isNodejs';
  6. var environment;
  7. function getEnv() {
  8. if (!environment) {
  9. throw new Error('getEnv - environment is not defined, check isNodejs() and isBrowser()');
  10. }
  11. return environment;
  12. }
  13. function setEnv(env) {
  14. environment = env;
  15. }
  16. function initialize() {
  17. // check for isBrowser() first to prevent electron renderer process
  18. // to be initialized with wrong environment due to isNodejs() returning true
  19. if (isBrowser()) {
  20. setEnv(createBrowserEnv());
  21. }
  22. if (isNodejs()) {
  23. setEnv(createNodejsEnv());
  24. }
  25. }
  26. function monkeyPatch(env) {
  27. if (!environment) {
  28. initialize();
  29. }
  30. if (!environment) {
  31. throw new Error('monkeyPatch - environment is not defined, check isNodejs() and isBrowser()');
  32. }
  33. var _a = env.Canvas, Canvas = _a === void 0 ? environment.Canvas : _a, _b = env.Image, Image = _b === void 0 ? environment.Image : _b;
  34. environment.Canvas = Canvas;
  35. environment.Image = Image;
  36. environment.createCanvasElement = env.createCanvasElement || (function () { return new Canvas(); });
  37. environment.createImageElement = env.createImageElement || (function () { return new Image(); });
  38. environment.ImageData = env.ImageData || environment.ImageData;
  39. environment.Video = env.Video || environment.Video;
  40. environment.fetch = env.fetch || environment.fetch;
  41. environment.readFile = env.readFile || environment.readFile;
  42. }
  43. export var env = {
  44. getEnv: getEnv,
  45. setEnv: setEnv,
  46. initialize: initialize,
  47. createBrowserEnv: createBrowserEnv,
  48. createFileSystem: createFileSystem,
  49. createNodejsEnv: createNodejsEnv,
  50. monkeyPatch: monkeyPatch,
  51. isBrowser: isBrowser,
  52. isNodejs: isNodejs
  53. };
  54. initialize();
  55. //# sourceMappingURL=index.js.map