diff --git a/package.json b/package.json index 17485cd..5f1860c 100644 --- a/package.json +++ b/package.json @@ -7,12 +7,15 @@ "dotenv": "5.0.1", "dotenv-expand": "4.2.0", "electron-log": "^2.2.14", + "esm": "^3.0.20", "exiftool-vendored": "^4.20.0", "inferno": "^5.0.1", "inferno-bootstrap": "^5.0.0", "inferno-dev-utils": "^5.3.0", + "inferno-redux": "^5.0.4", "inferno-router": "^5.0.1", "lodash": "^4.17.5", + "redux": "^4.0.0", "ws": "^5.1.1" }, "devDependencies": { @@ -75,7 +78,7 @@ "test": "node scripts/test.js --env=jsdom" }, "homepage": "./", - "main": "src/electron/starter.js", + "main": "src/electron/index.js", "jest": { "collectCoverageFrom": [ "src/**/*.{js,jsx,mjs}" diff --git a/src/electron/app.js b/src/electron/app.js index cab751d..36b0ea6 100644 --- a/src/electron/app.js +++ b/src/electron/app.js @@ -1,7 +1,7 @@ -const {app, BrowserWindow} = require('electron'); -const log = require('electron-log'); -const path = require('path'); -const url = require('url'); +import {app, BrowserWindow} from 'electron'; +import log from 'electron-log'; +import path from 'path'; +import url from 'url'; log.transports.file.level = false; log.transports.console.level = 'info'; diff --git a/src/electron/exif-helpers.js b/src/electron/exif-helpers.js index 5132c9c..8877b3a 100644 --- a/src/electron/exif-helpers.js +++ b/src/electron/exif-helpers.js @@ -1,4 +1,4 @@ -const {ExifTool} = require('exiftool-vendored'); +import {ExifTool} from 'exiftool-vendored'; const exiftool = new ExifTool(); /** @@ -11,6 +11,6 @@ function getExifTags (imgPath) { return exiftool.read(imgPath); } -module.exports = { +export { getExifTags, }; diff --git a/src/electron/index.js b/src/electron/index.js new file mode 100644 index 0000000..72267a4 --- /dev/null +++ b/src/electron/index.js @@ -0,0 +1,3 @@ +// eslint-disable-next-line +require = require('esm')(module/*, options */); +module.exports = require('./starter.js'); diff --git a/src/electron/starter.js b/src/electron/starter.js index db67dbc..42e9075 100644 --- a/src/electron/starter.js +++ b/src/electron/starter.js @@ -1,8 +1,8 @@ -// eslint-disable-next-line -global.eval = () => {}; - // Do app initialization and event handling -require('./app'); +import './app'; // Initialize websockets -require('./websocket-events'); +import './websocket-events'; + +// eslint-disable-next-line +global.eval = () => {}; diff --git a/src/electron/websocket-events.js b/src/electron/websocket-events.js index bf70c4e..e9f5d96 100644 --- a/src/electron/websocket-events.js +++ b/src/electron/websocket-events.js @@ -1,12 +1,12 @@ /** * Websocket event handlers */ -const {dialog, BrowserWindow} = require('electron'); +import {dialog, BrowserWindow} from 'electron'; // eslint-disable-next-line -const WebSocket = require('ws'); +import WebSocket from 'ws'; -const {getExifTags} = require('./exif-helpers'); -const {JSONMessage} = require('../helpers/web-socket'); +import {getExifTags} from './exif-helpers'; +import {JSONMessage} from '../helpers/web-socket'; const wss = new WebSocket.Server({ perMessageDeflate: false, diff --git a/yarn.lock b/yarn.lock index c6d7878..9ef03e0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3041,6 +3041,10 @@ eslint@^4.19.0, eslint@^4.19.1: table "4.0.2" text-table "~0.2.0" +esm@^3.0.20: + version "3.0.20" + resolved "https://registry.npmjs.org/esm/-/esm-3.0.20.tgz#6659d3c3ed0342354e7f1eaf6204a01083781426" + espree@^3.5.4: version "3.5.4" resolved "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" @@ -4216,6 +4220,13 @@ inferno-popper@^5.0.0: is-equal-shallow "^0.1.3" popper.js "^1.10.8" +inferno-redux@^5.0.4: + version "5.0.4" + resolved "https://registry.npmjs.org/inferno-redux/-/inferno-redux-5.0.4.tgz#9fa821478bce101a3316b60c452809c1dbdb96cc" + dependencies: + hoist-non-inferno-statics "^1.1.3" + inferno-shared "5.0.4" + inferno-router@^5.0.1: version "5.0.3" resolved "https://registry.npmjs.org/inferno-router/-/inferno-router-5.0.3.tgz#3ac47e22e4cbec08129d13cc83200b9128b930d8" @@ -4231,6 +4242,10 @@ inferno-shared@5.0.3, inferno-shared@^5.0.1: version "5.0.3" resolved "https://registry.npmjs.org/inferno-shared/-/inferno-shared-5.0.3.tgz#dc9d437e1fb783c7669135d81027d5cc972a5d9b" +inferno-shared@5.0.4: + version "5.0.4" + resolved "https://registry.npmjs.org/inferno-shared/-/inferno-shared-5.0.4.tgz#a8167271096b4a5be8c327ee4861a3eb010ed6bd" + inferno-vnode-flags@5.0.3, inferno-vnode-flags@^5.0.1: version "5.0.3" resolved "https://registry.npmjs.org/inferno-vnode-flags/-/inferno-vnode-flags-5.0.3.tgz#87145797e54b32bb4e18461de1cb0eb34117a765" @@ -5322,7 +5337,7 @@ longest@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" -loose-envify@^1.0.0, loose-envify@^1.2.0, loose-envify@^1.3.1: +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1: version "1.3.1" resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" dependencies: @@ -6855,6 +6870,13 @@ reduce-function-call@^1.0.1: dependencies: balanced-match "^0.4.2" +redux@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/redux/-/redux-4.0.0.tgz#aa698a92b729315d22b34a0553d7e6533555cc03" + dependencies: + loose-envify "^1.1.0" + symbol-observable "^1.2.0" + regenerate@^1.2.1: version "1.3.3" resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f" @@ -7780,6 +7802,10 @@ symbol-observable@1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4" +symbol-observable@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" + symbol-tree@^3.2.2: version "3.2.2" resolved "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6"