🔧 Add a linter
This commit is contained in:
parent
82fbf96137
commit
4836afc93c
1092
package-lock.json
generated
1092
package-lock.json
generated
File diff suppressed because it is too large
Load diff
11
package.json
11
package.json
|
@ -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"
|
||||
}
|
||||
}
|
||||
|
|
10
src/index.js
10
src/index.js
|
@ -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
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
@ -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 = {
|
||||
|
|
|
@ -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()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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 () => {
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue