diff --git a/package.json b/package.json index 7cd210bc4..8227eb652 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,11 @@ "main": "dist/es5/index.js", "module": "dist/esm/index.js", "esnext": "dist/es6/index.js", + "browser": { + "dist/es5/utils/mapboxgl.js": "dist/es5/utils/mapboxgl.browser.js", + "dist/esm/utils/mapboxgl.js": "dist/esm/utils/mapboxgl.browser.js", + "dist/es6/utils/mapboxgl.js": "dist/es6/utils/mapboxgl.browser.js" + }, "files": [ "src", "dist" @@ -40,7 +45,7 @@ "bowser": "^1.2.0", "mapbox-gl": "0.47.0", "math.gl": "^2.0.0", - "mjolnir.js": "^1.2.1", + "mjolnir.js": "^2.0.0-alpha.1", "prop-types": "^15.5.7", "viewport-mercator-project": "^5.1.0" }, diff --git a/src/components/static-map.js b/src/components/static-map.js index 99f946ca0..6d7c69c95 100644 --- a/src/components/static-map.js +++ b/src/components/static-map.js @@ -25,11 +25,9 @@ import {normalizeStyle} from '../utils/style-utils'; import WebMercatorViewport from 'viewport-mercator-project'; import Mapbox from '../mapbox/mapbox'; -import isBrowser from '../utils/is-browser'; +import mapboxgl from '../utils/mapboxgl'; import {checkVisibilityConstraints} from '../utils/map-constraints'; -const mapboxgl = isBrowser ? require('mapbox-gl') : null; - /* eslint-disable max-len */ const TOKEN_DOC_URL = 'https://uber.github.io/react-map-gl/#/Documentation/getting-started/about-mapbox-tokens'; const NO_TOKEN_WARNING = 'A valid API access token is required to use Mapbox data'; diff --git a/src/utils/is-browser.js b/src/utils/is-browser.js deleted file mode 100644 index ba0454bd6..000000000 --- a/src/utils/is-browser.js +++ /dev/null @@ -1,18 +0,0 @@ -// based on https://github.com/uber/luma.gl/blob/master/src/utils/is-browser.js -// This function is needed in initialization stages, -// make sure it can be imported in isolation -/* global process */ - -import isElectron from './is-electron'; - -const isNode = - typeof process === 'object' && - String(process) === '[object process]' && - !process.browser; - -const isBrowser = !isNode || isElectron; - -// document does not exist on worker thread -export const isBrowserMainThread = isBrowser && typeof document !== 'undefined'; - -export default isBrowser; diff --git a/src/utils/is-electron.js b/src/utils/is-electron.js deleted file mode 100644 index e0182c3b6..000000000 --- a/src/utils/is-electron.js +++ /dev/null @@ -1,22 +0,0 @@ -// based on https://github.com/uber/luma.gl/blob/master/src/utils/is-electron.js -/* global window, process, navigator */ -function isElectron() { - // Renderer process - if (typeof window !== 'undefined' && typeof window.process === 'object' && - window.process.type === 'renderer') { - return true; - } - // Main process - if (typeof process !== 'undefined' && typeof process.versions === 'object' && - Boolean(process.versions.electron)) { - return true; - } - // Detect the user agent when the `nodeIntegration` option is set to true - if (typeof navigator === 'object' && typeof navigator.userAgent === 'string' && - navigator.userAgent.indexOf('Electron') >= 0) { - return true; - } - return false; -} - -export default isElectron(); diff --git a/src/utils/mapboxgl.browser.js b/src/utils/mapboxgl.browser.js new file mode 100644 index 000000000..3061ac0d4 --- /dev/null +++ b/src/utils/mapboxgl.browser.js @@ -0,0 +1 @@ +export {default} from 'mapbox-gl'; diff --git a/src/utils/mapboxgl.js b/src/utils/mapboxgl.js new file mode 100644 index 000000000..7646bbd17 --- /dev/null +++ b/src/utils/mapboxgl.js @@ -0,0 +1 @@ +export default null; diff --git a/yarn.lock b/yarn.lock index 3240ee056..b2e2ad940 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5339,10 +5339,11 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mjolnir.js@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/mjolnir.js/-/mjolnir.js-1.2.1.tgz#ab3237afc5fbbc8aa4bafc965b10735c4bf8328c" +mjolnir.js@^2.0.0-alpha.1: + version "2.0.0-alpha.1" + resolved "https://registry.yarnpkg.com/mjolnir.js/-/mjolnir.js-2.0.0-alpha.1.tgz#5721f7864cf33d3e2aa5828659a28fcd1b2f8197" dependencies: + "@babel/runtime" "^7.0.0" hammerjs "^2.0.8" mkdirp@0.5.1, mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0: