From 853792a9e0f8c99060fd30bf30b8ed90b474f0c2 Mon Sep 17 00:00:00 2001 From: Byron Buckley Date: Thu, 15 Dec 2016 13:18:03 -0500 Subject: [PATCH] linting + documentation --- .eslintignore | 3 - .eslintrc.js | 4 +- app/.app.eslintrc.js | 30 +++++++++ app/electron.js | 96 +++++++++++++--------------- app/package.json | 4 +- app/src/App.vue | 12 ++-- app/src/components/Login.vue | 28 ++++---- app/src/components/Note.vue | 51 +++++++-------- app/src/components/Settings.vue | 23 ++++--- app/src/main.js | 6 ++ app/src/main/auth.js | 109 +++++++++++++++++--------------- app/src/main/is.js | 8 ++- app/src/main/onenote.js | 73 +++++++++++---------- app/src/main/persist.js | 1 + app/src/main/store.js | 7 ++ builds/.gitkeep | 0 16 files changed, 256 insertions(+), 199 deletions(-) create mode 100644 app/.app.eslintrc.js delete mode 100644 builds/.gitkeep diff --git a/.eslintignore b/.eslintignore index a1582d7..3127706 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,9 +1,6 @@ app/node_modules/** app/src/static/** -app/src/main/** -app/src/components/** app/dist/** -app/electron.js test/unit/coverage/** test/unit/*.js test/e2e/*.js diff --git a/.eslintrc.js b/.eslintrc.js index 10745d6..009c03c 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -23,6 +23,8 @@ module.exports = { 'no-unused-vars': 1, 'spaced-comment': 1, 'no-mixed-spaces-and-tabs': 1, - 'indent': 1 + 'indent': 1, + 'brace-style': 1, + 'no-trailing-spaces': 1 } } diff --git a/app/.app.eslintrc.js b/app/.app.eslintrc.js new file mode 100644 index 0000000..ec38ebb --- /dev/null +++ b/app/.app.eslintrc.js @@ -0,0 +1,30 @@ +module.exports = { + root: true, + parser: 'babel-eslint', + parserOptions: { + sourceType: 'module' + }, + env: { + browser: true, + node: true + }, + extends: 'standard', + plugins: [ + 'html' + ], + 'rules': { + // allow paren-less arrow functions + 'arrow-parens': 0, + // allow async-await + 'generator-star-spacing': 0, + // allow debugger during development + 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, + 'camelcase': 0, + 'no-unused-vars': 1, + 'spaced-comment': 1, + 'no-mixed-spaces-and-tabs': 1, + 'indent': 1, + 'brace-style': 0, + 'curly': 0 + } +} diff --git a/app/electron.js b/app/electron.js index ed7a371..ed7df3d 100644 --- a/app/electron.js +++ b/app/electron.js @@ -6,7 +6,6 @@ const path = require('path') const schedule = require('node-schedule') const is = require('./src/main/is') const {URLS, WINDOW, DEFAULT_SETTINGS} = require('./app.config') -const {ONENOTE} = require('./onenote.config') const storeSettings = require('node-persist') storeSettings.initSync({ @@ -16,7 +15,7 @@ storeSettings.initSync({ let mainWindow let config = {} -let scheduleInstance; +let scheduleInstance if (is.dev()) { config = require('../config') @@ -27,10 +26,8 @@ if (is.dev()) { } function createWindow () { - /** - * Initial window options - */ - const demo = { + // window config for pre build demos + const demoWindow = { height: WINDOW.height, width: WINDOW.width, resizable: true, @@ -44,6 +41,7 @@ function createWindow () { maximizable: false } + // default window config const defaultWindow = { height: WINDOW.height, width: WINDOW.width, @@ -58,8 +56,7 @@ function createWindow () { maximizable: false } - mainWindow = new BrowserWindow(defaultWindow) - + mainWindow = new BrowserWindow(defaultWindow) // put demoWindow here mainWindow.loadURL(config.url) if (is.dev()) { @@ -73,8 +70,7 @@ function createWindow () { installExtension.default(installExtension.VUEJS_DEVTOOLS) .then((name) => mainWindow.webContents.openDevTools()) .catch((err) => console.log('An error occurred: ', err)) - } - else { + } else { // allow dev tools in prod mainWindow.webContents.on('devtools-opened', (event, deviceList, callback) => { mainWindow.setSize(1200, 600) @@ -82,7 +78,7 @@ function createWindow () { }) mainWindow.webContents.on('devtools-closed', (event, deviceList, callback) => { - mainWindow.setSize(WINDOW.width,WINDOW.height) + mainWindow.setSize(WINDOW.width, WINDOW.height) mainWindow.setResizable(false) }) @@ -98,11 +94,10 @@ function createWindow () { } app.on('ready', () => { - settings() - scheduleInstance = scheduleRandomNote(); + loadSettings() createWindow() - setGlobalShortcuts(); - // console.log('path', app.getPath('userData')) + scheduleInstance = scheduleRandomNote() + setGlobalShortcuts() }) app.on('window-all-closed', () => { @@ -125,35 +120,35 @@ ipc.on('set-global-shortcuts', () => { setGlobalShortcuts() }) -function setGlobalShortcuts() { - globalShortcut.unregisterAll(); +function setGlobalShortcuts () { + globalShortcut.unregisterAll() globalShortcut.register(storeSettings.getItemSync('shortcutKey'), () => { - mainWindow.webContents.send('trigger-random-note'); + mainWindow.webContents.send('trigger-random-note') }) } function initMenu () { - var template = [{ - label: 'Edit', - submenu: [ - { - label: 'Copy', - accelerator: 'Command+C', - selector: 'copy:' - }, - { - label: 'Paste', - accelerator: 'Command+V', - selector: 'paste:' - }, - { - label: 'Select All', - accelerator: 'Command+A', - selector: 'selectAll:' - } - ] - }, + var template = [{ + label: 'Edit', + submenu: [ + { + label: 'Copy', + accelerator: 'Command+C', + selector: 'copy:' + }, + { + label: 'Paste', + accelerator: 'Command+V', + selector: 'paste:' + }, + { + label: 'Select All', + accelerator: 'Command+A', + selector: 'selectAll:' + } + ] + }, { label: 'Developer', submenu: [ @@ -169,18 +164,16 @@ function initMenu () { ] }] - var menu = Menu.buildFromTemplate(template); - Menu.setApplicationMenu(menu); - } + var menu = Menu.buildFromTemplate(template) + Menu.setApplicationMenu(menu) +} /** - * settings - Description - * - * @returns {type} Description + * loadSettings - persist default settings */ -function settings() { +function loadSettings () { for (const [key, value] of DEFAULT_SETTINGS) { - if(storeSettings.getItemSync(key) === undefined || null || '') { + if (storeSettings.getItemSync(key) === undefined || null || '') { storeSettings.setItemSync(key, value) } } @@ -189,22 +182,21 @@ function settings() { /** * If we did not explicitly set minute to 0, * the message would have instead been logged at 5:00pm, 5:01pm, ..., 5:59pm. - * - * @returns {type} Description */ function scheduleRandomNote () { - let rule; + let rule - if(storeSettings.getItemSync('schedule') === '*/5 * * * *') { + if (storeSettings.getItemSync('schedule') === '*/5 * * * *') { rule = '*/5 * * * *' // every 5 minutes - } - else { + } else { rule = new schedule.RecurrenceRule() rule.dayOfWeek = [0, new schedule.Range(0, 7)] rule.hour = storeSettings.getItemSync('schedule') rule.minute = 0 } + // return job instance so we can cancel it when schedule is updated + // via settings return schedule.scheduleJob(rule, function () { mainWindow.webContents.send('trigger-random-note') }) diff --git a/app/package.json b/app/package.json index 0e55920..4ac9d0b 100644 --- a/app/package.json +++ b/app/package.json @@ -14,6 +14,8 @@ "vue-electron": "^1.0.0", "vue-resource": "^1.0.3" }, - "devDependencies": {}, + "devDependencies": { + "standard": "^8.6.0" + }, "author": "Byron Buckley " } diff --git a/app/src/App.vue b/app/src/App.vue index dcf4d82..2af3440 100644 --- a/app/src/App.vue +++ b/app/src/App.vue @@ -45,12 +45,13 @@ import Login from './components/Login.vue' import Note from './components/Note.vue' import Settings from './components/Settings.vue' import is from './main/is' -const { shell } = require('electron') -const auth = require('./main/auth') -const {setNoteSection} = require('./main/onenote') +const {shell} = require('electron') const {app} = require('electron').remote const path = require('path') + +const auth = require('./main/auth') +const {setNoteSection} = require('./main/onenote') const {URLS, WINDOW} = require('../app.config') const storeSettings = require('node-persist') storeSettings.initSync({dir: path.join(app.getPath('userData'), URLS.SETTINGS)}) @@ -59,7 +60,6 @@ window.onload = function () { console.log('loaded') } -// export default $rootVm export default { data: function () { return { @@ -90,10 +90,6 @@ export default { } }, - watch: { - - }, - components: { Login, Note, diff --git a/app/src/components/Login.vue b/app/src/components/Login.vue index 99ea6b2..f3e6d5e 100644 --- a/app/src/components/Login.vue +++ b/app/src/components/Login.vue @@ -24,12 +24,13 @@