mirror of
https://github.com/quine-global/hyper.git
synced 2026-01-13 04:28:41 -09:00
Upgrade eslint to v6 and add TypeScript linting (#3843)
* Upgrade eslint to v6 and add TypeScript linting * Fix pr checks Co-authored-by: Benjamin Staneck <Stanzilla@users.noreply.github.com>
This commit is contained in:
parent
25fc964ae8
commit
b52d8152bf
18 changed files with 616 additions and 271 deletions
|
|
@ -1,12 +1,12 @@
|
||||||
sudo: required
|
sudo: required
|
||||||
dist: trusty
|
dist: xenial
|
||||||
|
|
||||||
language: node_js
|
language: node_js
|
||||||
|
|
||||||
matrix:
|
matrix:
|
||||||
include:
|
include:
|
||||||
- os: linux
|
- os: linux
|
||||||
node_js: 10.2.0
|
node_js: 12.10.0
|
||||||
env: CC=clang CXX=clang++ npm_config_clang=1
|
env: CC=clang CXX=clang++ npm_config_clang=1
|
||||||
compiler: clang
|
compiler: clang
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,9 @@ const homeDirectory = homedir();
|
||||||
const applicationDirectory =
|
const applicationDirectory =
|
||||||
process.env.XDG_CONFIG_HOME !== undefined
|
process.env.XDG_CONFIG_HOME !== undefined
|
||||||
? join(process.env.XDG_CONFIG_HOME, 'hyper')
|
? join(process.env.XDG_CONFIG_HOME, 'hyper')
|
||||||
: process.platform == 'win32' ? app.getPath('userData') : homedir();
|
: process.platform == 'win32'
|
||||||
|
? app.getPath('userData')
|
||||||
|
: homedir();
|
||||||
|
|
||||||
let cfgDir = applicationDirectory;
|
let cfgDir = applicationDirectory;
|
||||||
let cfgPath = join(applicationDirectory, cfgFile);
|
let cfgPath = join(applicationDirectory, cfgFile);
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,6 @@ if (['--help', '-v', '--version'].includes(process.argv[1])) {
|
||||||
console.log('Hyper does not accept any command line arguments. Please modify the config file instead.');
|
console.log('Hyper does not accept any command line arguments. Please modify the config file instead.');
|
||||||
//eslint-disable-next-line no-console
|
//eslint-disable-next-line no-console
|
||||||
console.log(`Hyper configuration file located at: ${configLocation}`);
|
console.log(`Hyper configuration file located at: ${configLocation}`);
|
||||||
// eslint-disable-next-line unicorn/no-process-exit
|
|
||||||
process.exit();
|
process.exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -20,14 +19,12 @@ const checkSquirrel = () => {
|
||||||
//eslint-disable-next-line no-empty
|
//eslint-disable-next-line no-empty
|
||||||
} catch (err) {}
|
} catch (err) {}
|
||||||
if (squirrel) {
|
if (squirrel) {
|
||||||
// eslint-disable-next-line unicorn/no-process-exit
|
|
||||||
process.exit();
|
process.exit();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// handle startup squirrel events
|
// handle startup squirrel events
|
||||||
if (process.platform === 'win32') {
|
if (process.platform === 'win32') {
|
||||||
// eslint-disable-next-line import/order
|
|
||||||
const systemContextMenu = require('./system-context-menu');
|
const systemContextMenu = require('./system-context-menu');
|
||||||
|
|
||||||
switch (process.argv[1]) {
|
switch (process.argv[1]) {
|
||||||
|
|
@ -263,7 +260,6 @@ function installDevExtensions(isDev_) {
|
||||||
if (!isDev_) {
|
if (!isDev_) {
|
||||||
return Promise.resolve();
|
return Promise.resolve();
|
||||||
}
|
}
|
||||||
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
||||||
const installer = require('electron-devtools-installer');
|
const installer = require('electron-devtools-installer');
|
||||||
|
|
||||||
const extensions = ['REACT_DEVELOPER_TOOLS', 'REDUX_DEVTOOLS'];
|
const extensions = ['REACT_DEVELOPER_TOOLS', 'REDUX_DEVTOOLS'];
|
||||||
|
|
|
||||||
|
|
@ -142,7 +142,6 @@ function getPluginVersions() {
|
||||||
return paths_.map(path_ => {
|
return paths_.map(path_ => {
|
||||||
let version = null;
|
let version = null;
|
||||||
try {
|
try {
|
||||||
//eslint-disable-next-line import/no-dynamic-require
|
|
||||||
version = require(resolve(path_, 'package.json')).version;
|
version = require(resolve(path_, 'package.json')).version;
|
||||||
//eslint-disable-next-line no-empty
|
//eslint-disable-next-line no-empty
|
||||||
} catch (err) {}
|
} catch (err) {}
|
||||||
|
|
@ -267,7 +266,6 @@ function requirePlugins() {
|
||||||
const load = path_ => {
|
const load = path_ => {
|
||||||
let mod;
|
let mod;
|
||||||
try {
|
try {
|
||||||
// eslint-disable-next-line import/no-dynamic-require
|
|
||||||
mod = require(path_);
|
mod = require(path_);
|
||||||
const exposed = mod && Object.keys(mod).some(key => availableExtensions.has(key));
|
const exposed = mod && Object.keys(mod).some(key => availableExtensions.has(key));
|
||||||
if (!exposed) {
|
if (!exposed) {
|
||||||
|
|
@ -278,7 +276,6 @@ function requirePlugins() {
|
||||||
// populate the name for internal errors here
|
// populate the name for internal errors here
|
||||||
mod._name = basename(path_);
|
mod._name = basename(path_);
|
||||||
try {
|
try {
|
||||||
// eslint-disable-next-line import/no-dynamic-require
|
|
||||||
mod._version = require(resolve(path_, 'package.json')).version;
|
mod._version = require(resolve(path_, 'package.json')).version;
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
//eslint-disable-next-line no-console
|
//eslint-disable-next-line no-console
|
||||||
|
|
|
||||||
|
|
@ -23,5 +23,7 @@ module.exports = (createWindow, selection) => {
|
||||||
const commandKeys = getCommandKeys(getDecoratedKeymaps());
|
const commandKeys = getCommandKeys(getDecoratedKeymaps());
|
||||||
const _shell = shellMenu(commandKeys, execCommand).submenu;
|
const _shell = shellMenu(commandKeys, execCommand).submenu;
|
||||||
const _edit = editMenu(commandKeys, execCommand).submenu.filter(filterCutCopy.bind(null, selection));
|
const _edit = editMenu(commandKeys, execCommand).submenu.filter(filterCutCopy.bind(null, selection));
|
||||||
return _edit.concat(separator, _shell).filter(menuItem => !menuItem.hasOwnProperty('enabled') || menuItem.enabled);
|
return _edit
|
||||||
|
.concat(separator, _shell)
|
||||||
|
.filter(menuItem => !Object.prototype.hasOwnProperty.call(menuItem, 'enabled') || menuItem.enabled);
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -4,13 +4,13 @@ environment:
|
||||||
matrix:
|
matrix:
|
||||||
- platform: x64
|
- platform: x64
|
||||||
|
|
||||||
image: Visual Studio 2015
|
image: Visual Studio 2017
|
||||||
|
|
||||||
init:
|
init:
|
||||||
- yarn config set msvs_version 2015 # we need this to build `pty.js`
|
- yarn config set msvs_version 2015 # we need this to build `pty.js`
|
||||||
|
|
||||||
install:
|
install:
|
||||||
- ps: Install-Product node 10.2.0 x64
|
- ps: Install-Product node 12 x64
|
||||||
- set CI=true
|
- set CI=true
|
||||||
- yarn
|
- yarn
|
||||||
|
|
||||||
|
|
|
||||||
12
cli/api.js
12
cli/api.js
|
|
@ -11,7 +11,9 @@ const path = require('path');
|
||||||
const applicationDirectory =
|
const applicationDirectory =
|
||||||
process.env.XDG_CONFIG_HOME !== undefined
|
process.env.XDG_CONFIG_HOME !== undefined
|
||||||
? path.join(process.env.XDG_CONFIG_HOME, 'hyper')
|
? path.join(process.env.XDG_CONFIG_HOME, 'hyper')
|
||||||
: process.platform == 'win32' ? path.join(process.env.APPDATA, 'Hyper') : os.homedir();
|
: process.platform == 'win32'
|
||||||
|
? path.join(process.env.APPDATA, 'Hyper')
|
||||||
|
: os.homedir();
|
||||||
|
|
||||||
const devConfigFileName = path.join(__dirname, `../.hyper.js`);
|
const devConfigFileName = path.join(__dirname, `../.hyper.js`);
|
||||||
|
|
||||||
|
|
@ -56,8 +58,8 @@ const getProperties = memoize(() => getParsedFile().program.body.map(obj => obj)
|
||||||
const getPlugins = memoize(() => {
|
const getPlugins = memoize(() => {
|
||||||
let plugins;
|
let plugins;
|
||||||
getProperties().find(property => {
|
getProperties().find(property => {
|
||||||
return Object.values(property.expression.right.properties).filter(
|
return Object.values(property.expression.right.properties).filter(plugin =>
|
||||||
plugin => (plugin.key.name === 'plugins' ? (plugins = plugin.value.elements) : null)
|
plugin.key.name === 'plugins' ? (plugins = plugin.value.elements) : null
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
return plugins;
|
return plugins;
|
||||||
|
|
@ -66,8 +68,8 @@ const getPlugins = memoize(() => {
|
||||||
const getLocalPlugins = memoize(() => {
|
const getLocalPlugins = memoize(() => {
|
||||||
let localPlugins;
|
let localPlugins;
|
||||||
getProperties().find(property => {
|
getProperties().find(property => {
|
||||||
return Object.values(property.expression.right.properties).filter(
|
return Object.values(property.expression.right.properties).filter(plugin =>
|
||||||
plugin => (plugin.key.name === 'localPlugins' ? (localPlugins = plugin.value.elements) : null)
|
plugin.key.name === 'localPlugins' ? (localPlugins = plugin.value.elements) : null
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
return localPlugins;
|
return localPlugins;
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,8 @@ export default class Notifications extends React.PureComponent {
|
||||||
userDismissable
|
userDismissable
|
||||||
>
|
>
|
||||||
Version <b>{this.props.updateVersion}</b> ready.
|
Version <b>{this.props.updateVersion}</b> ready.
|
||||||
{this.props.updateNote && ` ${this.props.updateNote.trim().replace(/\.$/, '')}`} (<a
|
{this.props.updateNote && ` ${this.props.updateNote.trim().replace(/\.$/, '')}`} (
|
||||||
|
<a
|
||||||
style={{color: '#000'}}
|
style={{color: '#000'}}
|
||||||
onClick={ev => {
|
onClick={ev => {
|
||||||
window.require('electron').shell.openExternal(ev.target.href);
|
window.require('electron').shell.openExternal(ev.target.href);
|
||||||
|
|
@ -82,7 +83,8 @@ export default class Notifications extends React.PureComponent {
|
||||||
href={`https://github.com/zeit/hyper/releases/tag/${this.props.updateVersion}`}
|
href={`https://github.com/zeit/hyper/releases/tag/${this.props.updateVersion}`}
|
||||||
>
|
>
|
||||||
notes
|
notes
|
||||||
</a>).{' '}
|
</a>
|
||||||
|
).{' '}
|
||||||
{this.props.updateCanInstall ? (
|
{this.props.updateCanInstall ? (
|
||||||
<a
|
<a
|
||||||
style={{
|
style={{
|
||||||
|
|
@ -110,7 +112,8 @@ export default class Notifications extends React.PureComponent {
|
||||||
>
|
>
|
||||||
Download
|
Download
|
||||||
</a>
|
</a>
|
||||||
)}.{' '}
|
)}
|
||||||
|
.{' '}
|
||||||
</Notification>
|
</Notification>
|
||||||
)}
|
)}
|
||||||
{this.props.customChildren}
|
{this.props.customChildren}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
/* global Blob,URL,requestAnimationFrame,ResizeObserver */
|
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import {Terminal} from 'xterm';
|
import {Terminal} from 'xterm';
|
||||||
import * as fit from 'xterm/lib/addons/fit/fit';
|
import * as fit from 'xterm/lib/addons/fit/fit';
|
||||||
|
|
|
||||||
|
|
@ -64,7 +64,9 @@ export default class Terms extends React.Component {
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
window.addEventListener('contextmenu', () => {
|
window.addEventListener('contextmenu', () => {
|
||||||
const selection = window.getSelection().toString();
|
const selection = window.getSelection().toString();
|
||||||
const {props: {uid}} = this.getActiveTerm();
|
const {
|
||||||
|
props: {uid}
|
||||||
|
} = this.getActiveTerm();
|
||||||
this.props.onContextMenu(uid, selection);
|
this.props.onContextMenu(uid, selection);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -114,7 +114,7 @@ const reducer = (state = initial, action) => {
|
||||||
switch (action.type) {
|
switch (action.type) {
|
||||||
case CONFIG_LOAD:
|
case CONFIG_LOAD:
|
||||||
// eslint-disable-next-line no-case-declarations, no-fallthrough
|
// eslint-disable-next-line no-case-declarations, no-fallthrough
|
||||||
case CONFIG_RELOAD:
|
case CONFIG_RELOAD: {
|
||||||
const {config, now} = action;
|
const {config, now} = action;
|
||||||
state_ = state
|
state_ = state
|
||||||
// unset the user font size override if the
|
// unset the user font size override if the
|
||||||
|
|
@ -261,7 +261,7 @@ const reducer = (state = initial, action) => {
|
||||||
})()
|
})()
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
case SESSION_ADD:
|
case SESSION_ADD:
|
||||||
state_ = state.merge(
|
state_ = state.merge(
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,12 @@
|
||||||
import {createSelector} from 'reselect';
|
import {createSelector} from 'reselect';
|
||||||
|
|
||||||
const getTermGroups = ({termGroups}) => termGroups.termGroups;
|
const getTermGroups = ({termGroups}) => termGroups.termGroups;
|
||||||
const getRootGroups = createSelector(getTermGroups, termGroups =>
|
const getRootGroups = createSelector(
|
||||||
Object.keys(termGroups)
|
getTermGroups,
|
||||||
.map(uid => termGroups[uid])
|
termGroups =>
|
||||||
.filter(({parentUid}) => !parentUid)
|
Object.keys(termGroups)
|
||||||
|
.map(uid => termGroups[uid])
|
||||||
|
.filter(({parentUid}) => !parentUid)
|
||||||
);
|
);
|
||||||
|
|
||||||
export default getRootGroups;
|
export default getRootGroups;
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
* PR: https://github.com/kevva/executable/pull/10
|
* PR: https://github.com/kevva/executable/pull/10
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import fs, { Stats } from "fs";
|
import fs, {Stats} from "fs";
|
||||||
|
|
||||||
export function isExecutable(fileStat: Stats): boolean {
|
export function isExecutable(fileStat: Stats): boolean {
|
||||||
if (process.platform === 'win32') {
|
if (process.platform === 'win32') {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
/* global Notification */
|
|
||||||
/* eslint no-new:0 */
|
/* eslint no-new:0 */
|
||||||
export default function notify(title, body, details = {}) {
|
export default function notify(title, body, details = {}) {
|
||||||
//eslint-disable-next-line no-console
|
//eslint-disable-next-line no-console
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,6 @@ import ReactDOM from 'react-dom';
|
||||||
import Notification from '../components/notification';
|
import Notification from '../components/notification';
|
||||||
import notify from './notify';
|
import notify from './notify';
|
||||||
|
|
||||||
//eslint-disable-next-line import/newline-after-import
|
|
||||||
const Module = require('module');
|
const Module = require('module');
|
||||||
const originalLoad = Module._load;
|
const originalLoad = Module._load;
|
||||||
Module._load = function _load(path) {
|
Module._load = function _load(path) {
|
||||||
|
|
@ -480,9 +479,7 @@ function getDecorated(parent, name) {
|
||||||
if (!class__ || typeof class__.prototype.render !== 'function') {
|
if (!class__ || typeof class__.prototype.render !== 'function') {
|
||||||
notify(
|
notify(
|
||||||
'Plugin error',
|
'Plugin error',
|
||||||
`${
|
`${fn._pluginName}: Invalid return value of \`${method}\`. No \`render\` method found. Please return a \`React.Component\`.`
|
||||||
fn._pluginName
|
|
||||||
}: Invalid return value of \`${method}\`. No \`render\` method found. Please return a \`React.Component\`.`
|
|
||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
98
package.json
98
package.json
|
|
@ -1,26 +1,32 @@
|
||||||
{
|
{
|
||||||
"repository": "zeit/hyper",
|
"repository": "zeit/hyper",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start":
|
"start": "echo 'please run `yarn run dev` in one tab and then `yarn run app` in another one'",
|
||||||
"echo 'please run `yarn run dev` in one tab and then `yarn run app` in another one'",
|
|
||||||
"app": "electron app",
|
"app": "electron app",
|
||||||
"dev": "webpack -w",
|
"dev": "webpack -w",
|
||||||
"build": "cross-env NODE_ENV=production webpack",
|
"build": "cross-env NODE_ENV=production webpack",
|
||||||
"lint": "eslint .",
|
"lint": "eslint . --ext .js,.jsx,.ts,.tsx",
|
||||||
"test": "yarn run lint && yarn run test:unit",
|
"test": "yarn run lint && yarn run test:unit",
|
||||||
"test:unit": "ava test/unit",
|
"test:unit": "ava test/unit",
|
||||||
"test:unit:watch": "yarn run test:unit -- --watch",
|
"test:unit:watch": "yarn run test:unit -- --watch",
|
||||||
"prepush": "yarn test",
|
"prepush": "yarn test",
|
||||||
"postinstall": "electron-builder install-app-deps && yarn run rebuild-node-pty",
|
"postinstall": "electron-builder install-app-deps && yarn run rebuild-node-pty",
|
||||||
"rebuild-node-pty": "electron-rebuild -f -w app/node_modules/node-pty -m app",
|
"rebuild-node-pty": "electron-rebuild -f -w app/node_modules/node-pty -m app",
|
||||||
"dist":
|
"dist": "yarn run build && cross-env BABEL_ENV=production babel --out-file app/renderer/bundle.js --no-comments --minified app/renderer/bundle.js && build",
|
||||||
"yarn run build && cross-env BABEL_ENV=production babel --out-file app/renderer/bundle.js --no-comments --minified app/renderer/bundle.js && build",
|
"clean": "node ./bin/rimraf-standalone.js node_modules && node ./bin/rimraf-standalone.js ./app/node_modules && node ./bin/rimraf-standalone.js ./app/renderer"
|
||||||
"clean":
|
|
||||||
"node ./bin/rimraf-standalone.js node_modules && node ./bin/rimraf-standalone.js ./app/node_modules && node ./bin/rimraf-standalone.js ./app/renderer"
|
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
"eslintConfig": {
|
||||||
"plugins": ["react", "prettier"],
|
"plugins": [
|
||||||
"extends": ["eslint:recommended", "plugin:react/recommended", "prettier"],
|
"react",
|
||||||
|
"prettier",
|
||||||
|
"@typescript-eslint"
|
||||||
|
],
|
||||||
|
"extends": [
|
||||||
|
"eslint:recommended",
|
||||||
|
"plugin:react/recommended",
|
||||||
|
"plugin:prettier/recommended"
|
||||||
|
],
|
||||||
|
"parser": "@typescript-eslint/parser",
|
||||||
"parserOptions": {
|
"parserOptions": {
|
||||||
"ecmaVersion": 8,
|
"ecmaVersion": 8,
|
||||||
"sourceType": "module",
|
"sourceType": "module",
|
||||||
|
|
@ -36,8 +42,16 @@
|
||||||
"browser": true,
|
"browser": true,
|
||||||
"node": true
|
"node": true
|
||||||
},
|
},
|
||||||
|
"settings": {
|
||||||
|
"react": {
|
||||||
|
"version": "detect"
|
||||||
|
}
|
||||||
|
},
|
||||||
"rules": {
|
"rules": {
|
||||||
"func-names": ["error", "as-needed"],
|
"func-names": [
|
||||||
|
"error",
|
||||||
|
"as-needed"
|
||||||
|
],
|
||||||
"no-shadow": "error",
|
"no-shadow": "error",
|
||||||
"no-extra-semi": 0,
|
"no-extra-semi": 0,
|
||||||
"react/prop-types": 0,
|
"react/prop-types": 0,
|
||||||
|
|
@ -55,14 +69,17 @@
|
||||||
"bracketSpacing": false,
|
"bracketSpacing": false,
|
||||||
"semi": true,
|
"semi": true,
|
||||||
"useTabs": false,
|
"useTabs": false,
|
||||||
"parser": "babylon",
|
"parser": "babel",
|
||||||
"jsxBracketSameLine": false
|
"jsxBracketSameLine": false
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"overrides": [
|
"overrides": [
|
||||||
{
|
{
|
||||||
"files": ["app/config/config-default.js", ".hyper.js"],
|
"files": [
|
||||||
|
"app/config/config-default.js",
|
||||||
|
".hyper.js"
|
||||||
|
],
|
||||||
"rules": {
|
"rules": {
|
||||||
"prettier/prettier": [
|
"prettier/prettier": [
|
||||||
"error",
|
"error",
|
||||||
|
|
@ -74,16 +91,29 @@
|
||||||
"bracketSpacing": false,
|
"bracketSpacing": false,
|
||||||
"semi": true,
|
"semi": true,
|
||||||
"useTabs": false,
|
"useTabs": false,
|
||||||
"parser": "babylon",
|
"parser": "babel",
|
||||||
"jsxBracketSameLine": false
|
"jsxBracketSameLine": false
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"files": [
|
||||||
|
"**.ts",
|
||||||
|
"**.tsx"
|
||||||
|
],
|
||||||
|
"extends": [
|
||||||
|
"plugin:@typescript-eslint/recommended",
|
||||||
|
"prettier/@typescript-eslint"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"babel": {
|
"babel": {
|
||||||
"presets": ["@babel/react", "@babel/typescript"],
|
"presets": [
|
||||||
|
"@babel/react",
|
||||||
|
"@babel/typescript"
|
||||||
|
],
|
||||||
"plugins": [
|
"plugins": [
|
||||||
[
|
[
|
||||||
"styled-jsx/babel",
|
"styled-jsx/babel",
|
||||||
|
|
@ -131,7 +161,9 @@
|
||||||
{
|
{
|
||||||
"from": "./build/${os}/",
|
"from": "./build/${os}/",
|
||||||
"to": "./bin/",
|
"to": "./bin/",
|
||||||
"filter": ["hyper*"]
|
"filter": [
|
||||||
|
"hyper*"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"linux": {
|
"linux": {
|
||||||
|
|
@ -139,24 +171,34 @@
|
||||||
"target": [
|
"target": [
|
||||||
{
|
{
|
||||||
"target": "deb",
|
"target": "deb",
|
||||||
"arch": ["x64"]
|
"arch": [
|
||||||
|
"x64"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"target": "AppImage",
|
"target": "AppImage",
|
||||||
"arch": ["x64"]
|
"arch": [
|
||||||
|
"x64"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"target": "rpm",
|
"target": "rpm",
|
||||||
"arch": ["x64"]
|
"arch": [
|
||||||
|
"x64"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"target": "snap",
|
"target": "snap",
|
||||||
"arch": ["x64"]
|
"arch": [
|
||||||
|
"x64"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"win": {
|
"win": {
|
||||||
"target": ["squirrel"],
|
"target": [
|
||||||
|
"squirrel"
|
||||||
|
],
|
||||||
"rfc3161TimeStampServer": "http://timestamp.comodoca.com"
|
"rfc3161TimeStampServer": "http://timestamp.comodoca.com"
|
||||||
},
|
},
|
||||||
"mac": {
|
"mac": {
|
||||||
|
|
@ -175,7 +217,9 @@
|
||||||
},
|
},
|
||||||
"protocols": {
|
"protocols": {
|
||||||
"name": "ssh URL",
|
"name": "ssh URL",
|
||||||
"schemes": ["ssh"]
|
"schemes": [
|
||||||
|
"ssh"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
|
@ -227,6 +271,8 @@
|
||||||
"@types/react": "16.9.2",
|
"@types/react": "16.9.2",
|
||||||
"@types/react-dom": "16.9.0",
|
"@types/react-dom": "16.9.0",
|
||||||
"@types/react-redux": "7.1.2",
|
"@types/react-redux": "7.1.2",
|
||||||
|
"@typescript-eslint/eslint-plugin": "2.3.2",
|
||||||
|
"@typescript-eslint/parser": "2.3.2",
|
||||||
"ava": "0.25.0",
|
"ava": "0.25.0",
|
||||||
"babel-loader": "8.0.6",
|
"babel-loader": "8.0.6",
|
||||||
"babel-preset-minify": "0.5.1",
|
"babel-preset-minify": "0.5.1",
|
||||||
|
|
@ -237,15 +283,15 @@
|
||||||
"electron-builder-squirrel-windows": "20.38.2",
|
"electron-builder-squirrel-windows": "20.38.2",
|
||||||
"electron-devtools-installer": "2.2.4",
|
"electron-devtools-installer": "2.2.4",
|
||||||
"electron-rebuild": "1.8.2",
|
"electron-rebuild": "1.8.2",
|
||||||
"eslint": "4.18.2",
|
"eslint": "6.5.1",
|
||||||
"eslint-config-prettier": "2.6.0",
|
"eslint-config-prettier": "6.3.0",
|
||||||
"eslint-plugin-prettier": "2.3.1",
|
"eslint-plugin-prettier": "3.1.1",
|
||||||
"eslint-plugin-react": "7.3.0",
|
"eslint-plugin-react": "7.15.0",
|
||||||
"fork-ts-checker-webpack-plugin": "1.5.0",
|
"fork-ts-checker-webpack-plugin": "1.5.0",
|
||||||
"husky": "0.14.3",
|
"husky": "0.14.3",
|
||||||
"inquirer": "5.1.0",
|
"inquirer": "5.1.0",
|
||||||
"node-gyp": "3.6.2",
|
"node-gyp": "3.6.2",
|
||||||
"prettier": "1.11.1",
|
"prettier": "1.18.2",
|
||||||
"proxyquire": "1.8.0",
|
"proxyquire": "1.8.0",
|
||||||
"spectron": "3.8.0",
|
"spectron": "3.8.0",
|
||||||
"style-loader": "0.19.1",
|
"style-loader": "0.19.1",
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,6 @@ module.exports = async markdown => {
|
||||||
//eslint-disable-next-line no-console
|
//eslint-disable-next-line no-console
|
||||||
console.error('Please specify a release summary!');
|
console.error('Please specify a release summary!');
|
||||||
|
|
||||||
// eslint-disable-next-line unicorn/no-process-exit
|
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue