Skip to content

Commit

Permalink
Merge pull request #38 from northword:eslint
Browse files Browse the repository at this point in the history
Add ESlint and Prettier
  • Loading branch information
windingwind authored May 4, 2023
2 parents fb98d85 + fe224ba commit 7f73341
Show file tree
Hide file tree
Showing 12 changed files with 133 additions and 81 deletions.
39 changes: 39 additions & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
{
"env": {
"browser": true,
"es2021": true
},
"root": true,
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"prettier"
],
"overrides": [],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaVersion": "latest",
"sourceType": "module"
},
"plugins": ["@typescript-eslint"],
"rules": {
"@typescript-eslint/ban-ts-comment": ["warn", "allow-with-description"],
"@typescript-eslint/no-unused-vars": "off",
"@typescript-eslint/no-explicit-any": ["off", { "ignoreRestArgs": true }],
"@typescript-eslint/no-non-null-assertion": "off"
},
"ignorePatterns": [
"**/dist/**",
"**/node_modules/**",
"**/abbrevIso*",
"**/example*",
"**/*.bak",
"coverage/**",
"docs-shared/lib/**",
"packages/*/assets/**",
"packages/*/lib/**",
"!.vuepress/**",
"**/.vuepress/.cache/**",
"**/.vuepress/.temp/**"
]
}
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* text=auto eol=lf
3 changes: 3 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"recommendations": ["dbaeumer.vscode-eslint", "esbenp.prettier-vscode"]
}
48 changes: 21 additions & 27 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -1,28 +1,22 @@
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Restart",
"runtimeExecutable": "npm",
"runtimeArgs": [
"run",
"restart"
],
},
{
"type": "node",
"request": "launch",
"name": "Restart in Prod Mode",
"runtimeExecutable": "npm",
"runtimeArgs": [
"run",
"restart-prod"
],
}
]
}
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Restart",
"runtimeExecutable": "npm",
"runtimeArgs": ["run", "restart"]
},
{
"type": "node",
"request": "launch",
"name": "Restart in Prod Mode",
"runtimeExecutable": "npm",
"runtimeArgs": ["run", "restart-prod"]
}
]
}
7 changes: 7 additions & 0 deletions .vscode/setting.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"editor.formatOnType": false,
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
}
}
86 changes: 43 additions & 43 deletions .vscode/toolkit.code-snippets
Original file line number Diff line number Diff line change
@@ -1,45 +1,45 @@
{
"appendElement - full": {
"scope": "javascript,typescript",
"prefix": "appendElement",
"body": [
"appendElement({",
"\ttag: '${1:div}',",
"\tid: '${2:id}',",
"\tnamespace: '${3:html}',",
"\tclassList: ['${4:class}'],",
"\tstyles: {${5:style}: '$6'},",
"\tproperties: {},",
"\tattributes: {},",
"\t[{ '${7:onload}', (e: Event) => $8, ${9:false} }],",
"\tcheckExistanceParent: ${10:HTMLElement},",
"\tignoreIfExists: ${11:true},",
"\tskipIfExists: ${12:true},",
"\tremoveIfExists: ${13:true},",
"\tcustomCheck: (doc: Document, options: ElementOptions) => ${14:true},",
"\tchildren: [$15]",
"}, ${16:container});"
]
},
"appendElement - minimum": {
"scope": "javascript,typescript",
"prefix": "appendElement",
"body": "appendElement({ tag: '$1' }, $2);"
},
"register Notifier": {
"scope": "javascript,typescript",
"prefix": "registerObserver",
"body": [
"registerObserver({",
"\t notify: (",
"\t\tevent: _ZoteroTypes.Notifier.Event,",
"\t\ttype: _ZoteroTypes.Notifier.Type,",
"\t\tids: string[],",
"\t\textraData: _ZoteroTypes.anyObj",
"\t) => {",
"\t\t$0",
"\t}",
"});"
]
}
"appendElement - full": {
"scope": "javascript,typescript",
"prefix": "appendElement",
"body": [
"appendElement({",
"\ttag: '${1:div}',",
"\tid: '${2:id}',",
"\tnamespace: '${3:html}',",
"\tclassList: ['${4:class}'],",
"\tstyles: {${5:style}: '$6'},",
"\tproperties: {},",
"\tattributes: {},",
"\t[{ '${7:onload}', (e: Event) => $8, ${9:false} }],",
"\tcheckExistanceParent: ${10:HTMLElement},",
"\tignoreIfExists: ${11:true},",
"\tskipIfExists: ${12:true},",
"\tremoveIfExists: ${13:true},",
"\tcustomCheck: (doc: Document, options: ElementOptions) => ${14:true},",
"\tchildren: [$15]",
"}, ${16:container});"
]
},
"appendElement - minimum": {
"scope": "javascript,typescript",
"prefix": "appendElement",
"body": "appendElement({ tag: '$1' }, $2);"
},
"register Notifier": {
"scope": "javascript,typescript",
"prefix": "registerObserver",
"body": [
"registerObserver({",
"\t notify: (",
"\t\tevent: _ZoteroTypes.Notifier.Event,",
"\t\ttype: _ZoteroTypes.Notifier.Type,",
"\t\tids: string[],",
"\t\textraData: _ZoteroTypes.anyObj",
"\t) => {",
"\t\t$0",
"\t}",
"});"
]
}
}
4 changes: 2 additions & 2 deletions addon/chrome/content/zoteroPane.css
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
.makeItRed {
background-color: tomato;
}
background-color: tomato;
}
12 changes: 11 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,9 @@
"restart-prod": "npm run build-prod && npm run stop && npm run start",
"restart": "npm run restart-dev",
"release": "release-it",
"test": "echo \"Error: no test specified\" && exit 1"
"lint": "prettier --write . && eslint . --ext .ts --fix",
"test": "echo \"Error: no test specified\" && exit 1",
"update-deps": "npm update --save"
},
"repository": {
"type": "git",
Expand All @@ -41,14 +43,22 @@
},
"devDependencies": {
"@types/node": "^18.11.17",
"@typescript-eslint/eslint-plugin": "^5.59.1",
"@typescript-eslint/parser": "^5.59.1",
"compressing": "^1.6.3",
"concurrently": "^7.6.0",
"cross-env": "^7.0.3",
"esbuild": "^0.17.4",
"eslint": "^8.39.0",
"eslint-config-prettier": "^8.8.0",
"minimist": "^1.2.7",
"prettier": "2.8.8",
"release-it": "^15.6.0",
"replace-in-file": "^6.3.5",
"typescript": "^4.9.4",
"zotero-types": "^1.0.12"
},
"prettier": {
"tabWidth": 2
}
}
2 changes: 1 addition & 1 deletion scripts/zotero-cmd-default.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@
"6": "/path/to/zotero6.exe",
"7": "/path/to/zotero7.exe"
}
}
}
2 changes: 1 addition & 1 deletion src/addon.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ class Addon {
// Lifecycle hooks
public hooks: typeof hooks;
// APIs
public api: {};
public api: object;

constructor() {
this.data = {
Expand Down
5 changes: 1 addition & 4 deletions src/modules/locale.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,7 @@ export function initLocale() {
};
}

export function getString(
localString: string,
noReload: boolean = false
): string {
export function getString(localString: string, noReload = false): string {
try {
return addon.data.locale?.stringBundle.GetStringFromName(localString);
} catch (e) {
Expand Down
5 changes: 3 additions & 2 deletions src/modules/preferenceScript.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,8 @@ async function updatePrefsUI() {
// with addon.data.prefs.window.document
// Or bind some events to the elements
const renderLock = ztoolkit.getGlobal("Zotero").Promise.defer();
const tableHelper = new ztoolkit.VirtualizedTable(addon.data.prefs?.window!)
if (addon.data.prefs?.window == undefined) return;
const tableHelper = new ztoolkit.VirtualizedTable(addon.data.prefs?.window)
.setContainerId(`${config.addonRef}-table-container`)
.setProp({
id: `${config.addonRef}-prefs-table`,
Expand Down Expand Up @@ -122,7 +123,7 @@ function bindPrefEvents() {
});

addon.data
.prefs!!.window.document.querySelector(
.prefs!.window.document.querySelector(
`#zotero-prefpane-${config.addonRef}-input`
)
?.addEventListener("change", (e) => {
Expand Down

0 comments on commit 7f73341

Please sign in to comment.