aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortoasted-nutbread <toasted-nutbread@users.noreply.github.com>2020-02-22 15:22:42 -0500
committerGitHub <noreply@github.com>2020-02-22 15:22:42 -0500
commit897f2360be13db70ff2f533089ba8d38b0b744ed (patch)
treefdfdc9ed13fb38117e922d27c60616f159a2c63e
parentf8f03f3af0ab031cc58bf5ad3f782c8d45137430 (diff)
parent6513a15b3b5fd8586226c8823e2680478b97e132 (diff)
Merge pull request #363 from toasted-nutbread/eslint-stylistic-rules
Eslint stylistic rules
-rw-r--r--.eslintrc.json34
-rw-r--r--ext/bg/js/backend.js51
-rw-r--r--ext/bg/js/database.js4
-rw-r--r--ext/bg/js/japanese.js12
-rw-r--r--ext/bg/js/json-schema.js2
-rw-r--r--ext/bg/js/page-exit-prevention.js74
-rw-r--r--ext/bg/js/search-query-parser.js2
-rw-r--r--ext/bg/js/search.js4
-rw-r--r--ext/bg/js/settings/backup.js1
-rw-r--r--ext/bg/js/settings/dictionaries.js2
-rw-r--r--ext/bg/js/settings/popup-preview-frame.js4
-rw-r--r--ext/bg/js/util.js2
-rw-r--r--ext/fg/js/document.js3
-rw-r--r--ext/mixed/js/audio.js2
-rw-r--r--ext/mixed/js/core.js6
-rw-r--r--ext/mixed/js/text-scanner.js22
-rw-r--r--test/test-database.js10
-rw-r--r--test/test-schema.js8
18 files changed, 141 insertions, 102 deletions
diff --git a/.eslintrc.json b/.eslintrc.json
index 9b0754fc..fcc6995b 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -21,11 +21,16 @@
"curly": ["error", "all"],
"dot-notation": "error",
"eqeqeq": "error",
+ "func-names": ["error", "always"],
"no-case-declarations": "error",
"no-const-assign": "error",
"no-constant-condition": "off",
"no-global-assign": "error",
+ "no-param-reassign": "off",
+ "no-prototype-builtins": "error",
+ "no-shadow": ["error", {"builtinGlobals": false}],
"no-undef": "error",
+ "no-unneeded-ternary": "error",
"no-unused-vars": ["error", {"vars": "local", "args": "after-used", "argsIgnorePattern": "^_", "caughtErrors": "none"}],
"no-unused-expressions": "error",
"no-var": "error",
@@ -34,6 +39,35 @@
"quotes": ["error", "single", "avoid-escape"],
"require-atomic-updates": "off",
"semi": "error",
+
+ // Whitespace rules
+ "brace-style": ["error", "1tbs", {"allowSingleLine": true}],
+ "indent": ["error", 4, {"SwitchCase": 1, "MemberExpression": 1, "flatTernaryExpressions": true, "ignoredNodes": ["ConditionalExpression"]}],
+ "object-curly-newline": "error",
+ "padded-blocks": ["error", "never"],
+
+ "array-bracket-spacing": ["error", "never"],
+ "arrow-spacing": ["error", {"before": true, "after": true}],
+ "block-spacing": ["error", "always"],
+ "comma-spacing": ["error", { "before": false, "after": true }],
+ "computed-property-spacing": ["error", "never"],
+ "func-call-spacing": ["error", "never"],
+ "generator-star-spacing": ["error", "before"],
+ "key-spacing": ["error", {"beforeColon": false, "afterColon": true, "mode": "strict"}],
+ "keyword-spacing": ["error", {"before": true, "after": true}],
+ "no-trailing-spaces": "error",
+ "no-whitespace-before-property": "error",
+ "object-curly-spacing": ["error", "never"],
+ "rest-spread-spacing": ["error", "never"],
+ "semi-spacing": ["error", {"before": false, "after": true}],
+ "space-in-parens": ["error", "never"],
+ "space-unary-ops": "error",
+ "spaced-comment": ["error", "always", {"markers": ["global"]}],
+ "switch-colon-spacing": ["error", {"after": true, "before": false}],
+ "template-curly-spacing": ["error", "never"],
+ "template-tag-spacing": ["error", "never"],
+
+ // Extensions
"no-unsanitized/method": "error",
"no-unsanitized/property": "error"
},
diff --git a/ext/bg/js/backend.js b/ext/bg/js/backend.js
index 16dffc85..2691b7d9 100644
--- a/ext/bg/js/backend.js
+++ b/ext/bg/js/backend.js
@@ -274,18 +274,18 @@ class Backend {
const node = nodes.pop();
for (const key of Object.keys(node.obj)) {
const path = node.path.concat(key);
- const obj = node.obj[key];
- if (obj !== null && typeof obj === 'object') {
- nodes.unshift({obj, path});
+ const obj2 = node.obj[key];
+ if (obj2 !== null && typeof obj2 === 'object') {
+ nodes.unshift({obj: obj2, path});
} else {
- valuePaths.push([obj, path]);
+ valuePaths.push([obj2, path]);
}
}
}
return valuePaths;
}
- function modifyOption(path, value, options) {
+ function modifyOption(path, value) {
let pivot = options;
for (const key of path.slice(0, -1)) {
if (!hasOwn(pivot, key)) {
@@ -298,7 +298,7 @@ class Backend {
}
for (const [value, path] of getValuePaths(changedOptions)) {
- modifyOption(path, value, options);
+ modifyOption(path, value);
}
await this._onApiOptionsSave({source});
@@ -340,9 +340,9 @@ class Backend {
dictTermsSort(definitions);
const {expression, reading} = definitions[0];
const source = text.substring(0, sourceLength);
- for (const {text, furigana} of jpDistributeFuriganaInflected(expression, reading, source)) {
- const reading = jpConvertReading(text, furigana, options.parsing.readingMode);
- term.push({text, reading});
+ for (const {text: text2, furigana} of jpDistributeFuriganaInflected(expression, reading, source)) {
+ const reading2 = jpConvertReading(text2, furigana, options.parsing.readingMode);
+ term.push({text: text2, reading: reading2});
}
text = text.substring(source.length);
} else {
@@ -365,17 +365,17 @@ class Backend {
for (const {expression, reading, source} of parsedLine) {
const term = [];
if (expression !== null && reading !== null) {
- for (const {text, furigana} of jpDistributeFuriganaInflected(
+ for (const {text: text2, furigana} of jpDistributeFuriganaInflected(
expression,
jpKatakanaToHiragana(reading),
source
)) {
- const reading = jpConvertReading(text, furigana, options.parsing.readingMode);
- term.push({text, reading});
+ const reading2 = jpConvertReading(text2, furigana, options.parsing.readingMode);
+ term.push({text: text2, reading: reading2});
}
} else {
- const reading = jpConvertReading(source, null, options.parsing.readingMode);
- term.push({text: source, reading});
+ const reading2 = jpConvertReading(source, null, options.parsing.readingMode);
+ term.push({text: source, reading: reading2});
}
result.push(term);
}
@@ -801,8 +801,11 @@ class Backend {
await new Promise((resolve, reject) => {
chrome.tabs.update(tab.id, {active: true}, () => {
const e = chrome.runtime.lastError;
- if (e) { reject(e); }
- else { resolve(); }
+ if (e) {
+ reject(e);
+ } else {
+ resolve();
+ }
});
});
@@ -813,18 +816,24 @@ class Backend {
try {
const tabWindow = await new Promise((resolve, reject) => {
- chrome.windows.get(tab.windowId, {}, (tabWindow) => {
+ chrome.windows.get(tab.windowId, {}, (value) => {
const e = chrome.runtime.lastError;
- if (e) { reject(e); }
- else { resolve(tabWindow); }
+ if (e) {
+ reject(e);
+ } else {
+ resolve(value);
+ }
});
});
if (!tabWindow.focused) {
await new Promise((resolve, reject) => {
chrome.windows.update(tab.windowId, {focused: true}, () => {
const e = chrome.runtime.lastError;
- if (e) { reject(e); }
- else { resolve(); }
+ if (e) {
+ reject(e);
+ } else {
+ resolve();
+ }
});
});
}
diff --git a/ext/bg/js/database.js b/ext/bg/js/database.js
index 1f6810cf..558f3ceb 100644
--- a/ext/bg/js/database.js
+++ b/ext/bg/js/database.js
@@ -809,9 +809,9 @@ class Database {
for (const objectStoreName of objectStoreNames) {
const {primaryKey, indices} = stores[objectStoreName];
- const objectStoreNames = transaction.objectStoreNames || db.objectStoreNames;
+ const objectStoreNames2 = transaction.objectStoreNames || db.objectStoreNames;
const objectStore = (
- Database._listContains(objectStoreNames, objectStoreName) ?
+ Database._listContains(objectStoreNames2, objectStoreName) ?
transaction.objectStore(objectStoreName) :
db.createObjectStore(objectStoreName, primaryKey)
);
diff --git a/ext/bg/js/japanese.js b/ext/bg/js/japanese.js
index e8a6fa08..abb32da4 100644
--- a/ext/bg/js/japanese.js
+++ b/ext/bg/js/japanese.js
@@ -224,15 +224,15 @@ function jpDistributeFurigana(expression, reading) {
}
let isAmbiguous = false;
- const segmentize = (reading, groups) => {
+ const segmentize = (reading2, groups) => {
if (groups.length === 0 || isAmbiguous) {
return [];
}
const group = groups[0];
if (group.mode === 'kana') {
- if (jpKatakanaToHiragana(reading).startsWith(jpKatakanaToHiragana(group.text))) {
- const readingLeft = reading.substring(group.text.length);
+ if (jpKatakanaToHiragana(reading2).startsWith(jpKatakanaToHiragana(group.text))) {
+ const readingLeft = reading2.substring(group.text.length);
const segs = segmentize(readingLeft, groups.splice(1));
if (segs) {
return [{text: group.text}].concat(segs);
@@ -240,9 +240,9 @@ function jpDistributeFurigana(expression, reading) {
}
} else {
let foundSegments = null;
- for (let i = reading.length; i >= group.text.length; --i) {
- const readingUsed = reading.substring(0, i);
- const readingLeft = reading.substring(i);
+ for (let i = reading2.length; i >= group.text.length; --i) {
+ const readingUsed = reading2.substring(0, i);
+ const readingLeft = reading2.substring(i);
const segs = segmentize(readingLeft, groups.slice(1));
if (segs) {
if (foundSegments !== null) {
diff --git a/ext/bg/js/json-schema.js b/ext/bg/js/json-schema.js
index 3cf24c35..58f804fd 100644
--- a/ext/bg/js/json-schema.js
+++ b/ext/bg/js/json-schema.js
@@ -401,7 +401,7 @@ class JsonSchemaProxyHandler {
info.valuePush(i, propertyValue);
JsonSchemaProxyHandler.validate(propertyValue, propertySchema, info);
info.valuePop();
- for (let i = 0; i < schemaPath.length; ++i) { info.schemaPop(); }
+ for (let j = 0, jj = schemaPath.length; j < jj; ++j) { info.schemaPop(); }
}
}
diff --git a/ext/bg/js/page-exit-prevention.js b/ext/bg/js/page-exit-prevention.js
index 3a320db3..be06c495 100644
--- a/ext/bg/js/page-exit-prevention.js
+++ b/ext/bg/js/page-exit-prevention.js
@@ -18,43 +18,43 @@
class PageExitPrevention {
- constructor() {
- }
-
- start() {
- PageExitPrevention._addInstance(this);
- }
-
- end() {
- PageExitPrevention._removeInstance(this);
- }
-
- static _addInstance(instance) {
- const size = PageExitPrevention._instances.size;
- PageExitPrevention._instances.set(instance, true);
- if (size === 0) {
- window.addEventListener('beforeunload', PageExitPrevention._onBeforeUnload);
- }
- }
-
- static _removeInstance(instance) {
- if (
- PageExitPrevention._instances.delete(instance) &&
- PageExitPrevention._instances.size === 0
- ) {
- window.removeEventListener('beforeunload', PageExitPrevention._onBeforeUnload);
- }
- }
-
- static _onBeforeUnload(e) {
- if (PageExitPrevention._instances.size === 0) {
- return;
- }
-
- e.preventDefault();
- e.returnValue = '';
- return '';
- }
+ constructor() {
+ }
+
+ start() {
+ PageExitPrevention._addInstance(this);
+ }
+
+ end() {
+ PageExitPrevention._removeInstance(this);
+ }
+
+ static _addInstance(instance) {
+ const size = PageExitPrevention._instances.size;
+ PageExitPrevention._instances.set(instance, true);
+ if (size === 0) {
+ window.addEventListener('beforeunload', PageExitPrevention._onBeforeUnload);
+ }
+ }
+
+ static _removeInstance(instance) {
+ if (
+ PageExitPrevention._instances.delete(instance) &&
+ PageExitPrevention._instances.size === 0
+ ) {
+ window.removeEventListener('beforeunload', PageExitPrevention._onBeforeUnload);
+ }
+ }
+
+ static _onBeforeUnload(e) {
+ if (PageExitPrevention._instances.size === 0) {
+ return;
+ }
+
+ e.preventDefault();
+ e.returnValue = '';
+ return '';
+ }
}
PageExitPrevention._instances = new Map();
diff --git a/ext/bg/js/search-query-parser.js b/ext/bg/js/search-query-parser.js
index 3d38e6e8..8c434990 100644
--- a/ext/bg/js/search-query-parser.js
+++ b/ext/bg/js/search-query-parser.js
@@ -59,7 +59,7 @@ class QueryParser extends TextScanner {
this.search.setContent('terms', {definitions, context: {
focus: false,
- disableHistory: cause === 'mouse' ? true : false,
+ disableHistory: cause === 'mouse',
sentence: {text: searchText, offset: 0},
url: window.location.href
}});
diff --git a/ext/bg/js/search.js b/ext/bg/js/search.js
index 76a62b97..98e167ad 100644
--- a/ext/bg/js/search.js
+++ b/ext/bg/js/search.js
@@ -70,7 +70,7 @@ class DisplaySearch extends Display {
this.wanakanaEnable.checked = false;
}
this.wanakanaEnable.addEventListener('change', (e) => {
- const {queryParams: {query=''}} = parseUrl(window.location.href);
+ const {queryParams: {query: query2=''}} = parseUrl(window.location.href);
if (e.target.checked) {
window.wanakana.bind(this.query);
apiOptionsSet({general: {enableWanakana: true}}, this.getOptionsContext());
@@ -78,7 +78,7 @@ class DisplaySearch extends Display {
window.wanakana.unbind(this.query);
apiOptionsSet({general: {enableWanakana: false}}, this.getOptionsContext());
}
- this.setQuery(query);
+ this.setQuery(query2);
this.onSearchQueryUpdated(this.query.value, false);
});
}
diff --git a/ext/bg/js/settings/backup.js b/ext/bg/js/settings/backup.js
index 6d1f28e9..f4d622a4 100644
--- a/ext/bg/js/settings/backup.js
+++ b/ext/bg/js/settings/backup.js
@@ -163,7 +163,6 @@ async function _showSettingsImportWarnings(warnings) {
sanitize: e.currentTarget.dataset.importSanitize === 'true'
});
modalNode.modal('hide');
-
};
const onModalHide = () => {
complete({result: false});
diff --git a/ext/bg/js/settings/dictionaries.js b/ext/bg/js/settings/dictionaries.js
index 427f47f0..70a22a16 100644
--- a/ext/bg/js/settings/dictionaries.js
+++ b/ext/bg/js/settings/dictionaries.js
@@ -166,7 +166,7 @@ class SettingsDictionaryListUI {
delete n.dataset.dict;
$(n).modal('hide');
- const index = this.dictionaryEntries.findIndex((e) => e.dictionaryInfo.title === title);
+ const index = this.dictionaryEntries.findIndex((entry) => entry.dictionaryInfo.title === title);
if (index >= 0) {
this.dictionaryEntries[index].deleteDictionary();
}
diff --git a/ext/bg/js/settings/popup-preview-frame.js b/ext/bg/js/settings/popup-preview-frame.js
index 890b8c96..aa2b6100 100644
--- a/ext/bg/js/settings/popup-preview-frame.js
+++ b/ext/bg/js/settings/popup-preview-frame.js
@@ -60,8 +60,8 @@ class SettingsPopupPreview {
this.frontend = new Frontend(this.popup);
- this.frontend.setEnabled = function () {};
- this.frontend.searchClear = function () {};
+ this.frontend.setEnabled = () => {};
+ this.frontend.searchClear = () => {};
await this.frontend.prepare();
diff --git a/ext/bg/js/util.js b/ext/bg/js/util.js
index 9ebd2ac4..5ce4b08c 100644
--- a/ext/bg/js/util.js
+++ b/ext/bg/js/util.js
@@ -33,7 +33,7 @@ function utilIsolate(value) {
}
function utilFunctionIsolate(func) {
- return function (...args) {
+ return function isolatedFunction(...args) {
try {
args = args.map((v) => utilIsolate(v));
return func.call(this, ...args);
diff --git a/ext/fg/js/document.js b/ext/fg/js/document.js
index 7284cdd1..ea9ac965 100644
--- a/ext/fg/js/document.js
+++ b/ext/fg/js/document.js
@@ -192,8 +192,7 @@ function docSentenceExtract(source, extent) {
if (terminators.includes(c)) {
endPos = i + 1;
break;
- }
- else if (c in quotesBwd) {
+ } else if (c in quotesBwd) {
endPos = i;
break;
}
diff --git a/ext/mixed/js/audio.js b/ext/mixed/js/audio.js
index fe5982dd..b5a025be 100644
--- a/ext/mixed/js/audio.js
+++ b/ext/mixed/js/audio.js
@@ -54,7 +54,6 @@ class TextToSpeechAudio {
speechSynthesis.cancel();
speechSynthesis.speak(this._utterance);
-
} catch (e) {
// NOP
}
@@ -82,7 +81,6 @@ class TextToSpeechAudio {
return new TextToSpeechAudio(text, voice);
}
-
}
function audioGetFromUrl(url, willDownload) {
diff --git a/ext/mixed/js/core.js b/ext/mixed/js/core.js
index 330a30fb..83813796 100644
--- a/ext/mixed/js/core.js
+++ b/ext/mixed/js/core.js
@@ -160,9 +160,9 @@ function promiseTimeout(delay, resolveValue) {
const resolve = (value) => complete(promiseResolve, value);
const reject = (value) => complete(promiseReject, value);
- const promise = new Promise((resolve, reject) => {
- promiseResolve = resolve;
- promiseReject = reject;
+ const promise = new Promise((resolve2, reject2) => {
+ promiseResolve = resolve2;
+ promiseReject = reject2;
});
timer = window.setTimeout(() => {
timer = null;
diff --git a/ext/mixed/js/text-scanner.js b/ext/mixed/js/text-scanner.js
index db3835cf..ff0eac8b 100644
--- a/ext/mixed/js/text-scanner.js
+++ b/ext/mixed/js/text-scanner.js
@@ -141,18 +141,18 @@ class TextScanner {
const textSourceCurrentPrevious = this.textSourceCurrent !== null ? this.textSourceCurrent.clone() : null;
this.searchAt(primaryTouch.clientX, primaryTouch.clientY, 'touchStart')
- .then(() => {
- if (
- this.textSourceCurrent === null ||
- this.textSourceCurrent.equals(textSourceCurrentPrevious)
- ) {
- return;
- }
+ .then(() => {
+ if (
+ this.textSourceCurrent === null ||
+ this.textSourceCurrent.equals(textSourceCurrentPrevious)
+ ) {
+ return;
+ }
- this.preventScroll = true;
- this.preventNextContextMenu = true;
- this.preventNextMouseDown = true;
- });
+ this.preventScroll = true;
+ this.preventNextContextMenu = true;
+ this.preventNextMouseDown = true;
+ });
}
onTouchEnd(e) {
diff --git a/test/test-database.js b/test/test-database.js
index 04ed8100..44f409dd 100644
--- a/test/test-database.js
+++ b/test/test-database.js
@@ -36,8 +36,8 @@ class XMLHttpRequest {
callbacks.push(callback);
}
- open(action, url) {
- this._url = url;
+ open(action, url2) {
+ this._url = url2;
}
send() {
@@ -116,10 +116,10 @@ function clearDatabase(timeout) {
(async () => {
const indexedDB = global.indexedDB;
for (const {name} of await indexedDB.databases()) {
- await new Promise((resolve, reject) => {
+ await new Promise((resolve2, reject2) => {
const request = indexedDB.deleteDatabase(name);
- request.onerror = (e) => reject(e);
- request.onsuccess = () => resolve();
+ request.onerror = (e) => reject2(e);
+ request.onsuccess = () => resolve2();
});
}
clearTimeout(timer);
diff --git a/test/test-schema.js b/test/test-schema.js
index ca4f56dd..8ca63167 100644
--- a/test/test-schema.js
+++ b/test/test-schema.js
@@ -30,7 +30,7 @@ function testValidate1() {
]
};
- const schemaValidate = (value, schema) => {
+ const schemaValidate = (value) => {
try {
JsonSchema.validate(value, schema);
return true;
@@ -48,7 +48,7 @@ function testValidate1() {
) &&
(
(
- (value % 3 )=== 0 ||
+ (value % 3) === 0 ||
(value % 5) === 0
) &&
(value % 15) !== 0
@@ -81,7 +81,7 @@ function testGetValidValueOrDefault1() {
const testData = [
[
- void(0),
+ void 0,
{test: 'default'}
],
[
@@ -210,7 +210,7 @@ function testGetValidValueOrDefault3() {
{test: 'value', test2: 2, test3: 10}
],
[
- {test: 'value', test2: 2, test3: void(0)},
+ {test: 'value', test2: 2, test3: void 0},
{test: 'value', test2: 2, test3: 10}
]
];