Skip to content

Commit

Permalink
Tuned eslint and pretifier. Updated navigation
Browse files Browse the repository at this point in the history
  • Loading branch information
akopachov committed Aug 17, 2023
1 parent 0dccb2e commit b1beac5
Show file tree
Hide file tree
Showing 26 changed files with 631 additions and 163 deletions.
57 changes: 57 additions & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
{
"parserOptions": {
"ecmaVersion": "latest"
},
"plugins": ["prettier"],
"env": {
"browser": true,
"node": true,
"es6": true
},
"extends": [
"eslint:recommended",
"plugin:prettier/recommended"
],
"overrides": [
{
"files": ["**/*.ts"],
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended"
],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"extraFileExtensions": [".svelte"]
},
"plugins": ["@typescript-eslint"],
"rules": {
"@typescript-eslint/no-explicit-any": "off"
}
},
{
"files": ["**/*.svelte"],
"parser": "svelte-eslint-parser",
"extends":[
"eslint:recommended",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended",
"plugin:svelte/recommended",
"plugin:svelte/prettier"
],
"parserOptions": {
"parser": {
"ts": "@typescript-eslint/parser",
"js": "espree",
"typescript": "@typescript-eslint/parser"
}
},
"rules": {
"@typescript-eslint/no-explicit-any": "off"
}
}
],
"rules": {
"prettier/prettier": "warn"
}
}
9 changes: 6 additions & 3 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
{
"svelteSortOrder": "scripts-markup-styles",
"plugins": ["prettier-plugin-svelte"],
"svelteSortOrder": "scripts-markup-styles-options",
"htmlWhitespaceSensitivity": "ignore",
"trailingComma": "all",
"requirePragma": false,
"bracketSpacing": true,
"bracketSameLine": true,
"singleQuote": true,
"printWidth": 100,
"printWidth": 120,
"useTabs": false,
"tabWidth": 2,
"semi": true
"semi": true,
"arrowParens": "avoid"
}
15 changes: 9 additions & 6 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
{
"[svelte]": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "svelte.svelte-vscode"
}
}
{
"[svelte]": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "svelte.svelte-vscode"
},
"eslint.validate": [
"javascript", "javascriptreact", "svelte"
]
}
13 changes: 9 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,10 @@
"build:svelte": "vite build",
"build:electron": "electron-builder -mwl --config build.config.json",
"prepare": "npm run smui-theme-light && npm run smui-theme-dark",
"smui-theme-light": "smui-theme compile static/smui.css -i src/theme",
"smui-theme-dark": "smui-theme compile static/smui-dark.css -i src/theme/dark"
"smui-theme-light": "smui-theme compile static/smui.css -i src/theme -i node_modules",
"smui-theme-dark": "smui-theme compile static/smui-dark.css -i src/theme/dark -i node_modules",
"lint": "eslint src/",
"lint:fix": "eslint src/ --fix"
},
"browserslist": [
"Chrome 89"
Expand All @@ -32,6 +34,7 @@
"@smui-extra/accordion": "^7.0.0-beta.14",
"@smui/button": "^7.0.0-beta.14",
"@smui/circular-progress": "^7.0.0-beta.14",
"@smui/drawer": "^7.0.0-beta.14",
"@smui/icon-button": "^7.0.0-beta.14",
"@smui/list": "^7.0.0-beta.14",
"@smui/menu": "^7.0.0-beta.14",
Expand All @@ -55,11 +58,13 @@
"escape-string-regexp": "^5.0.0",
"eslint": "^8.36.0",
"eslint-config-prettier": "^9.0.0",
"eslint-plugin-svelte3": "^4.0.0",
"eslint-plugin-prettier": "^5.0.0",
"eslint-plugin-svelte": "^2.32.4",
"node-screenshots": "^0.1.6",
"normalize.css": "^8.0.1",
"npm-run-all": "^4.1.5",
"papaparse": "^5.4.1",
"prettier": "^3.0.1",
"prettier": "^3.0.2",
"prettier-plugin-svelte": "^3.0.3",
"qr-scanner": "^1.4.2",
"rollup-plugin-node-externals": "^6.1.1",
Expand Down
8 changes: 1 addition & 7 deletions src/electron.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ const windowStateManager = require('electron-window-state');
const { app, BrowserWindow } = require('electron');
const serve = require('electron-serve');
const path = require('path');
const { rpcHandle } = require('./lib/electron-rpc/electron-rpc_main.cjs');

try {
require('electron-reloader')(module);
Expand All @@ -14,7 +13,6 @@ const serveURL = serve({ directory: '.' });
const port = process.env.PORT || 5173;
const dev = !app.isPackaged;
let mainWindow;
let screenSize;

function createWindow() {
let windowState = windowStateManager({
Expand All @@ -39,6 +37,7 @@ function createWindow() {
y: windowState.y,
width: windowState.width,
height: windowState.height,
icon: path.join(__dirname, '../static/favicon.png'),
});

windowState.manage(mainWindow);
Expand All @@ -65,11 +64,6 @@ function loadVite(port) {
}

function createMainWindow() {
const { screen } = require('electron');

const primaryDisplay = screen.getPrimaryDisplay();
screenSize = primaryDisplay.workAreaSize;

mainWindow = createWindow();
mainWindow.once('close', () => {
mainWindow = null;
Expand Down
12 changes: 6 additions & 6 deletions src/global.d.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/// <reference types="@sveltejs/kit" />
/// <reference types="svelte" />
/// <reference types="vite/client" />
declare interface Window {
electron: any;
}
/// <reference types="@sveltejs/kit" />
/// <reference types="svelte" />
/// <reference types="vite/client" />
declare interface Window {
electron: any;
}
2 changes: 1 addition & 1 deletion src/lib/electron-rpc/electron-rpc_renderer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { v1 as uuidv4 } from 'uuid';

export async function rpcToMain<T>(name: string, arg?: any): Promise<T> {
const requestId = uuidv4();
return new Promise<any>((resolve, _) => {
return new Promise<any>(resolve => {
function resultHandler(_: IpcRendererEvent, result: { result: any; requestId: string }) {
if (result.requestId == requestId) {
resolve(result.result);
Expand Down
14 changes: 6 additions & 8 deletions src/lib/totp-client/ascii-table-parse.ts
Original file line number Diff line number Diff line change
@@ -1,17 +1,15 @@
import { parse } from 'papaparse';

export function parseFromString(input: string) {
const csvLike = input
.replace(/^\+[\-\+]+\+\r?\n?$/gm, '')
.replace(/(^\|\s*)|(\s*\|$)/gm, '');
return parse(csvLike, {
delimiter: '|',
dynamicTyping: true,
const csvLike = input.replace(/^\+[-+]+\+\r?\n?$/gm, '').replace(/(^\|\s*)|(\s*\|$)/gm, '');
return parse(csvLike, {
delimiter: '|',
dynamicTyping: true,
header: true,
skipEmptyLines: true,
quoteChar: '',
escapeChar: '',
transformHeader: (header, _) => header.trim(),
transform: (value, _) => value.trim()
transformHeader: header => header.trim(),
transform: value => value.trim(),
}).data;
}
2 changes: 1 addition & 1 deletion src/lib/totp-client/index.ts
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export * from './totp-client'
export * from './totp-client';
48 changes: 25 additions & 23 deletions src/lib/totp-client/serial-port-async.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
import { SerialPort } from "serialport";
import { SerialPort } from 'serialport';
import delay from 'delay';
import { SmartBuffer } from 'smart-buffer';
import { tryDelay } from './try-delay';

export interface ReadUntilOptions {
timeout: number,
signal: AbortSignal
timeout: number;
signal: AbortSignal;
}

export class SerialPortAsync extends SerialPort {

flushAsync() {
return new Promise<void>((resolve, reject) => {
this.flush(error => {
Expand All @@ -21,7 +20,7 @@ export class SerialPortAsync extends SerialPort {
});
});
}

openAsync() {
return new Promise<void>((resolve, reject) => {
this.open(error => {
Expand All @@ -33,7 +32,7 @@ export class SerialPortAsync extends SerialPort {
});
});
}

closeAsync() {
return new Promise<void>((resolve, reject) => {
this.close(error => {
Expand All @@ -45,7 +44,7 @@ export class SerialPortAsync extends SerialPort {
});
});
}

writeAsync(data: string | Buffer, encoding: BufferEncoding) {
return new Promise<void>((resolve, reject) => {
this.write(data, encoding, error => {
Expand All @@ -57,7 +56,7 @@ export class SerialPortAsync extends SerialPort {
});
});
}

drainAsync() {
return new Promise<void>((resolve, reject) => {
this.drain(error => {
Expand All @@ -71,30 +70,33 @@ export class SerialPortAsync extends SerialPort {
}

async readUntil(end: string | RegExp, options?: Partial<ReadUntilOptions>) {
let timeoutAbortController = null;
let timeoutAbortController: AbortController | null = null;
let timeoutExpired = false;
options = options || {};
if (options.timeout && options.timeout > 0) {
timeoutAbortController = new AbortController();
delay(options.timeout, { signal: timeoutAbortController.signal }).then(() => {
timeoutExpired = true;
}, () => {});
delay(options.timeout, { signal: timeoutAbortController.signal }).then(
() => {
timeoutExpired = true;
},
() => {},
);
}

const buffer = new SmartBuffer();
let matchFound = false;
let result = null;
let result: string | null = null;
do {
if (options.signal?.aborted) {
break;
}

const readResult = this.read(1);
if (!readResult) {
await tryDelay(100, { signal: timeoutAbortController ? timeoutAbortController.signal : undefined });
continue;
}

buffer.writeBuffer(readResult);
result = buffer.toString('ascii');
if (end instanceof RegExp) {
Expand All @@ -103,23 +105,23 @@ export class SerialPortAsync extends SerialPort {
matchFound = result.includes(end);
}
} while (!matchFound && !timeoutExpired);

if (timeoutAbortController) {
timeoutAbortController.abort();
}

buffer.destroy();

options.signal?.throwIfAborted();

if (timeoutExpired) {
throw 'Timeout expired';
}

return result;
}
async writeAndDrain (data: string | Buffer, encoding: BufferEncoding = 'ascii') {

async writeAndDrain(data: string | Buffer, encoding: BufferEncoding = 'ascii') {
await this.writeAsync(data, encoding);
await this.drainAsync();
}
Expand Down
Loading

0 comments on commit b1beac5

Please sign in to comment.