60 lines
2.2 KiB
JavaScript
60 lines
2.2 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.env = void 0;
|
|
const tslib_1 = require("tslib");
|
|
const createBrowserEnv_1 = require("./createBrowserEnv");
|
|
const createFileSystem_1 = require("./createFileSystem");
|
|
const createNodejsEnv_1 = require("./createNodejsEnv");
|
|
const isBrowser_1 = require("./isBrowser");
|
|
const isNodejs_1 = require("./isNodejs");
|
|
let environment;
|
|
function getEnv() {
|
|
if (!environment) {
|
|
throw new Error('getEnv - environment is not defined, check isNodejs() and isBrowser()');
|
|
}
|
|
return environment;
|
|
}
|
|
function setEnv(env) {
|
|
environment = env;
|
|
}
|
|
function initialize() {
|
|
// check for isBrowser() first to prevent electron renderer process
|
|
// to be initialized with wrong environment due to isNodejs() returning true
|
|
if (isBrowser_1.isBrowser()) {
|
|
return setEnv(createBrowserEnv_1.createBrowserEnv());
|
|
}
|
|
if (isNodejs_1.isNodejs()) {
|
|
return setEnv(createNodejsEnv_1.createNodejsEnv());
|
|
}
|
|
}
|
|
function monkeyPatch(env) {
|
|
if (!environment) {
|
|
initialize();
|
|
}
|
|
if (!environment) {
|
|
throw new Error('monkeyPatch - environment is not defined, check isNodejs() and isBrowser()');
|
|
}
|
|
const { Canvas = environment.Canvas, Image = environment.Image } = env;
|
|
environment.Canvas = Canvas;
|
|
environment.Image = Image;
|
|
environment.createCanvasElement = env.createCanvasElement || (() => new Canvas());
|
|
environment.createImageElement = env.createImageElement || (() => new Image());
|
|
environment.ImageData = env.ImageData || environment.ImageData;
|
|
environment.Video = env.Video || environment.Video;
|
|
environment.fetch = env.fetch || environment.fetch;
|
|
environment.readFile = env.readFile || environment.readFile;
|
|
}
|
|
exports.env = {
|
|
getEnv,
|
|
setEnv,
|
|
initialize,
|
|
createBrowserEnv: createBrowserEnv_1.createBrowserEnv,
|
|
createFileSystem: createFileSystem_1.createFileSystem,
|
|
createNodejsEnv: createNodejsEnv_1.createNodejsEnv,
|
|
monkeyPatch,
|
|
isBrowser: isBrowser_1.isBrowser,
|
|
isNodejs: isNodejs_1.isNodejs
|
|
};
|
|
initialize();
|
|
tslib_1.__exportStar(require("./types"), exports);
|
|
//# sourceMappingURL=index.js.map
|