🔧 Add a linter

This commit is contained in:
Felix Rieseberg 2018-08-22 22:25:17 -07:00
parent 82fbf96137
commit 4836afc93c
7 changed files with 1131 additions and 31 deletions

1092
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -9,7 +9,7 @@
"package": "electron-forge package",
"make": "electron-forge make",
"publish": "electron-forge publish",
"lint": "echo \"No linting configured\""
"lint": "standard \"src/**/*.js\""
},
"keywords": [],
"author": "Felix Rieseberg, felix@felixrieseberg.com",
@ -17,6 +17,12 @@
"config": {
"forge": "./forge.config.js"
},
"standard": {
"globals": [ "V86Starter", "windows95" ],
"ignore": [
"/src/renderer/lib/*.js"
]
},
"dependencies": {
"electron-default-menu": "^1.0.1",
"electron-squirrel-startup": "^1.0.0",
@ -28,6 +34,7 @@
"@electron-forge/maker-rpm": "^6.0.0-beta.22",
"@electron-forge/maker-squirrel": "^6.0.0-beta.22",
"@electron-forge/maker-zip": "^6.0.0-beta.22",
"electron": "3.0.0-beta.6"
"electron": "3.0.0-beta.6",
"standard": "^11.0.1"
}
}

View file

@ -1,4 +1,4 @@
const { app, BrowserWindow, session } = require('electron')
const { app, BrowserWindow } = require('electron')
const path = require('path')
const { clearCaches } = require('./cache')
@ -8,7 +8,7 @@ if (require('electron-squirrel-startup')) { // eslint-disable-line global-requir
app.quit()
}
let mainWindow;
let mainWindow
const createWindow = () => {
// Create the browser window.
@ -20,12 +20,12 @@ const createWindow = () => {
webPreferences: {
preload: path.join(__dirname, 'preload.js')
}
});
})
mainWindow.loadURL(`file://${__dirname}/renderer/index.html?system=win98`);
mainWindow.loadURL(`file://${__dirname}/renderer/index.html?system=win98`)
mainWindow.on('closed', () => {
mainWindow = null;
mainWindow = null
})
}

View file

@ -1,10 +1,10 @@
const { app, shell, Menu } = require('electron')
const defaultMenu = require('electron-default-menu')
async function createMenu() {
const menu = defaultMenu(app, shell);
async function createMenu () {
const menu = defaultMenu(app, shell)
Menu.setApplicationMenu(Menu.buildFromTemplate(menu));
Menu.setApplicationMenu(Menu.buildFromTemplate(menu))
}
module.exports = {

View file

@ -1,34 +1,33 @@
const { remote } = require('electron')
const fs = require('fs-extra')
const path = require('path')
const { STATE_PATH, getState } = require('./state')
window.windows95 = {
STATE_PATH,
async saveState(state) {
async saveState () {
return new Promise((resolve) => {
if (!window.emulator || !window.emulator.save_state) {
return resolve()
}
window.emulator.save_state(async (error, new_state) => {
window.emulator.save_state(async (error, newState) => {
if (error) {
console.log(error)
return
}
await fs.outputFile(STATE_PATH, Buffer.from(new_state))
await fs.outputFile(STATE_PATH, Buffer.from(newState))
console.log(`Saved state to ${STATE_PATH}`)
resolve()
});
})
})
},
async restoreState() {
async restoreState () {
try {
window.emulator.restore_state(getState())
} catch (error) {
@ -36,7 +35,7 @@ window.windows95 = {
}
},
quit() {
quit () {
remote.app.quit()
}
}

View file

@ -1,26 +1,26 @@
const BUTTONS = document.querySelector('#buttons')
let cursorCaptured = false;
let cursorCaptured = false
const OPTIONS = {
win95: {
hda: {
url: './images/windows95.img',
async: true,
size: 242049024,
size: 242049024
}
}
}
async function main(id) {
async function main (id) {
const opts = Object.assign({
memory_size: 64 * 1024 * 1024,
screen_container: document.getElementById('emulator'),
bios: {
url: './bios/seabios.bin',
url: './bios/seabios.bin'
},
vga_bios: {
url: './bios/vgabios.bin',
url: './bios/vgabios.bin'
}
}, OPTIONS[id])
@ -37,11 +37,11 @@ async function main(id) {
}, 500)
}
function setupButtons() {
function setupButtons () {
document.querySelectorAll('.btn-start').forEach((btn) => {
btn.addEventListener('click', () => {
BUTTONS.remove()
document.body.className = '';
document.body.className = ''
main(btn.id)
})
})
@ -56,13 +56,15 @@ function setupButtons() {
if (window.emulator.run) {
window.emulator.run()
}
document.querySelector('#reset').disabled = true
})
}
function setupEscListener() {
document.onkeydown = function(evt) {
evt = evt || window.event;
if (evt.keyCode == 27) {
function setupEscListener () {
document.onkeydown = function (evt) {
evt = evt || window.event
if (evt.keyCode === 27) {
if (cursorCaptured) {
cursorCaptured = false
document.exitPointerLock()
@ -74,7 +76,7 @@ function setupEscListener() {
}
}
function setupCloseListener() {
function setupCloseListener () {
let isQuitting = false
const handleClose = async () => {

View file

@ -5,7 +5,7 @@ const { remote } = require('electron')
const DEFAULT_PATH = path.join(__dirname, 'renderer/images/default-state.bin')
const STATE_PATH = path.join(remote.app.getPath('userData'), 'state.bin')
function getState() {
function getState () {
const statePath = fs.existsSync(STATE_PATH)
? STATE_PATH
: DEFAULT_PATH
@ -13,7 +13,7 @@ function getState() {
return fs.readFileSync(statePath).buffer
}
function resetState() {
function resetState () {
fs.removeSync(STATE_PATH)
}