Skip to content

Commit 8705bdc

Browse files
authored
Update dependencies (#269)
* Update dependencies * Update dev dependencies * Update `@lumino` packages * Switch to ESLint * Prettier * Fix ESLint errors * Lint staged * Fix geojson build * Fix mathjax3 * Fix vega3 * Fix fasta and vega2 * More updates * More updates * Add lint workflow on CI * Fix prettier check
1 parent fc8337f commit 8705bdc

File tree

26 files changed

+3682
-2654
lines changed

26 files changed

+3682
-2654
lines changed

.eslintignore

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
node_modules
2+
dist
3+
coverage
4+
**/*.d.ts
5+
tests

.eslintrc.js

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
module.exports = {
2+
extends: [
3+
'eslint:recommended',
4+
'plugin:@typescript-eslint/eslint-recommended',
5+
'plugin:@typescript-eslint/recommended',
6+
'plugin:prettier/recommended',
7+
],
8+
parser: '@typescript-eslint/parser',
9+
parserOptions: {
10+
project: 'tsconfig.eslint.json',
11+
sourceType: 'module',
12+
},
13+
plugins: ['@typescript-eslint'],
14+
rules: {
15+
'@typescript-eslint/naming-convention': [
16+
'error',
17+
{
18+
selector: 'interface',
19+
format: ['PascalCase'],
20+
custom: {
21+
regex: '^I[A-Z]',
22+
match: true,
23+
},
24+
},
25+
],
26+
'@typescript-eslint/no-unused-vars': ['warn', { args: 'none' }],
27+
'@typescript-eslint/no-explicit-any': 'off',
28+
'@typescript-eslint/no-namespace': 'off',
29+
'@typescript-eslint/no-use-before-define': 'off',
30+
'@typescript-eslint/quotes': [
31+
'error',
32+
'single',
33+
{ avoidEscape: true, allowTemplateLiterals: false },
34+
],
35+
curly: ['error', 'all'],
36+
eqeqeq: 'error',
37+
'prefer-arrow-callback': 'error',
38+
},
39+
};

.github/workflows/lint.yaml

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
name: Lint
2+
3+
on:
4+
push:
5+
branches:
6+
- '*'
7+
pull_request:
8+
branches:
9+
- '*'
10+
11+
jobs:
12+
lint:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- name: Checkout
16+
uses: actions/checkout@v2
17+
18+
- name: Base Setup
19+
uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
20+
21+
- name: Install dependencies
22+
run: |
23+
python -m pip install -U jupyterlab~=3.2
24+
25+
- name: Lint
26+
run: |
27+
jlpm
28+
jlpm run eslint:check
29+
jlpm run prettier:check

.gitignore

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ node_modules/
55
.ipynb_checkpoints
66
*.tsbuildinfo
77
**/labextension
8-
_temp_extension
8+
**/_temp_extension/
99

1010
# Created by https://www.gitignore.io/api/python
1111
# Edit at https://www.gitignore.io/?templates=python

.prettierignore

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
node_modules
2+
**/node_modules
3+
**/lib
4+
**/package.json
5+
**/static
6+
**/labextension
7+
build
8+
ipynb_checkpoints
9+
notebooks/

lint-staged.config.js

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
const escape = require('shell-quote').quote;
2+
const fs = require('fs');
3+
const isWin = process.platform === 'win32';
4+
5+
const escapeFileNames = (filenames) =>
6+
filenames
7+
.filter((filename) => fs.existsSync(filename))
8+
.map((filename) => `"${isWin ? filename : escape([filename])}"`)
9+
.join(' ');
10+
11+
module.exports = {
12+
'**/*{.css,.json,.md}': (filenames) => {
13+
const escapedFileNames = escapeFileNames(filenames);
14+
return [
15+
`prettier --write ${escapedFileNames}`,
16+
`git add -f ${escapedFileNames}`,
17+
];
18+
},
19+
'**/*{.ts,.tsx}': (filenames) => {
20+
const escapedFileNames = escapeFileNames(filenames);
21+
return [
22+
`prettier --write ${escapedFileNames}`,
23+
`eslint --fix ${escapedFileNames}`,
24+
`git add -f ${escapedFileNames}`,
25+
];
26+
},
27+
};

package.json

+19-15
Original file line numberDiff line numberDiff line change
@@ -7,29 +7,33 @@
77
"build": "lerna run --parallel build",
88
"build-py": "rimraf dist && mkdir -p dist && lerna run --parallel clean:all && lerna exec --concurrency 4 -- python setup.py sdist bdist_wheel && lerna exec --concurrency 4 -- mv dist/* ../../dist/",
99
"build:prod": "lerna run --parallel build:prod",
10-
"install-py": "lerna exec --concurrency 4 -- python -m pip install -e .",
10+
"eslint": "eslint . --ext .ts,.tsx --fix",
11+
"eslint:check": "eslint . --ext .ts,.tsx",
1112
"install-ext": "lerna run install:extension",
13+
"install-py": "lerna exec --concurrency 4 -- python -m pip install -e .",
1214
"link": "lerna exec --parallel -- jupyter labextension link . --no-build",
1315
"precommit": "lint-staged",
14-
"prettier": "prettier --write '{!(package),packages/*/!(package),packages/*/!(lib)/**}{.js,.jsx,.ts,.tsx,.css,.json,.md}'",
16+
"prettier": "prettier --write \"**/*{.ts,.tsx,.js,.jsx,.css,.json,.md}\"",
17+
"prettier:check": "prettier --list-different \"**/*{.ts,.tsx,.js,.jsx,.css,.json,.md}\"",
1518
"update-dependency": "update-dependency --lerna",
1619
"watch": "lerna run --parallel watch"
1720
},
18-
"lint-staged": {
19-
"{!(package),packages/*/!(package),packages/*/!(lib)/**}{.js,.jsx,.ts,.tsx,.css,.json,.md}": [
20-
"prettier --write",
21-
"git add"
22-
]
21+
"husky": {
22+
"hooks": {
23+
"pre-commit": "lint-staged"
24+
}
2325
},
2426
"devDependencies": {
25-
"@jupyterlab/buildutils": "^3.0.0",
26-
"husky": "^0.14.3",
27+
"@jupyterlab/buildutils": "^3.2.8",
28+
"@typescript-eslint/eslint-plugin": "^5.9.1",
29+
"@typescript-eslint/parser": "^5.9.1",
30+
"eslint": "^8.7.0",
31+
"eslint-config-prettier": "^8.3.0",
32+
"eslint-plugin-prettier": "^4.0.0",
33+
"husky": "^7.0.4",
2734
"lerna": "^4.0.0",
28-
"lint-staged": "^7.1.0",
29-
"prettier": "^1.11.1",
30-
"rimraf": "^3.0.2",
31-
"tslint": "^5.9.1",
32-
"tslint-config-prettier": "^1.9.0",
33-
"tslint-plugin-prettier": "^1.3.0"
35+
"lint-staged": "^12.1.7",
36+
"prettier": "^2.5.1",
37+
"rimraf": "^3.0.2"
3438
}
3539
}

packages/fasta-extension/package.json

+6-6
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,9 @@
3939
"build:prod": "jlpm run build:lib && jlpm run build:labextension",
4040
"clean": "jlpm run clean:lib",
4141
"clean:all": "jlpm run clean:lib && jlpm run clean:labextension && jlpm run clean:dist",
42+
"clean:dist": "rimraf dist",
4243
"clean:labextension": "rimraf ./jupyterlab-fasta/labextension",
4344
"clean:lib": "rimraf lib tsconfig.tsbuildinfo",
44-
"clean:dist": "rimraf dist",
4545
"eslint": "eslint . --ext .ts,.tsx --fix",
4646
"eslint:check": "eslint . --ext .ts,.tsx",
4747
"install:extension": "jupyter labextension develop --overwrite .",
@@ -52,13 +52,13 @@
5252
"watch:src": "tsc -w"
5353
},
5454
"dependencies": {
55-
"@jupyterlab/rendermime-interfaces": "^3.0.5",
56-
"@lumino/messaging": "^1.4.3",
57-
"@lumino/widgets": "^1.16.1",
58-
"@jlab-contrib/msa": "^1.1.2"
55+
"@jlab-contrib/msa": "^1.1.2",
56+
"@jupyterlab/rendermime-interfaces": "^3.2.8",
57+
"@lumino/messaging": "^1.10.1",
58+
"@lumino/widgets": "^1.31.1"
5959
},
6060
"devDependencies": {
61-
"@jupyterlab/builder": "^3.0.0",
61+
"@jupyterlab/builder": "^3.2.8",
6262
"npm-run-all": "^4.1.5",
6363
"rimraf": "^3.0.2",
6464
"typescript": "~4.1.3"

packages/fasta-extension/src/index.ts

+15-15
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,13 @@ const TYPES: {
2121
'application/vnd.fasta.fasta': {
2222
name: 'Fasta',
2323
extensions: ['.fasta', '.fa'],
24-
reader: msa.io.fasta
24+
reader: msa.io.fasta,
2525
},
2626
'application/vnd.clustal.clustal': {
2727
name: 'Clustal',
2828
extensions: ['.clustal', '.aln'],
29-
reader: msa.io.clustal
30-
}
29+
reader: msa.io.clustal,
30+
},
3131
};
3232

3333
/**
@@ -42,7 +42,7 @@ export class RenderedData extends Widget implements IRenderMime.IRenderer {
4242
this._mimeType = options.mimeType;
4343
this._parser = TYPES[this._mimeType].reader;
4444
this.addClass('jp-RenderedMSA');
45-
let msaDiv = document.createElement('div');
45+
const msaDiv = document.createElement('div');
4646
this.msa = new msa.msa({
4747
el: msaDiv,
4848
vis: {
@@ -53,8 +53,8 @@ export class RenderedData extends Widget implements IRenderMime.IRenderer {
5353
overviewbox: true,
5454
seqlogo: false,
5555
gapHeader: false,
56-
leftHeader: true
57-
}
56+
leftHeader: true,
57+
},
5858
});
5959

6060
// The menu doesn't work correctly in the absolutely positioned panel, so
@@ -75,8 +75,8 @@ export class RenderedData extends Widget implements IRenderMime.IRenderer {
7575
*/
7676
renderModel(model: IRenderMime.IMimeModel): Promise<void> {
7777
return new Promise<void>((resolve, reject) => {
78-
let data = model.data[this._mimeType];
79-
let seqs = this._parser.parse(data);
78+
const data = model.data[this._mimeType];
79+
const seqs = this._parser.parse(data);
8080
this.msa.seqs.reset(seqs);
8181
this.msa.render();
8282
this.update();
@@ -104,7 +104,7 @@ export class RenderedData extends Widget implements IRenderMime.IRenderer {
104104
protected onUpdateRequest(msg: Message): void {
105105
// Update size after update
106106
if (this.isVisible) {
107-
let newWidth =
107+
const newWidth =
108108
this.node.getBoundingClientRect().width -
109109
this.msa.g.zoomer.getLeftBlockWidth();
110110
this.msa.g.zoomer.set('alignmentWidth', newWidth);
@@ -123,10 +123,10 @@ export class RenderedData extends Widget implements IRenderMime.IRenderer {
123123
export const rendererFactory: IRenderMime.IRendererFactory = {
124124
safe: false,
125125
mimeTypes: Object.keys(TYPES),
126-
createRenderer: options => new RenderedData(options)
126+
createRenderer: (options) => new RenderedData(options),
127127
};
128128

129-
const extensions = Object.keys(TYPES).map(k => {
129+
const extensions = Object.keys(TYPES).map((k) => {
130130
const { name } = TYPES[k];
131131
return {
132132
id: `jupyterlab-fasta:${name}`,
@@ -138,15 +138,15 @@ const extensions = Object.keys(TYPES).map(k => {
138138
name,
139139
extensions: TYPES[k].extensions,
140140
mimeTypes: [k],
141-
iconClass: 'jp-MaterialIcon jp-MSAIcon'
142-
}
141+
iconClass: 'jp-MaterialIcon jp-MSAIcon',
142+
},
143143
],
144144
documentWidgetFactoryOptions: {
145145
name,
146146
primaryFileType: name,
147147
fileTypes: [name],
148-
defaultFor: [name]
149-
}
148+
defaultFor: [name],
149+
},
150150
} as IRenderMime.IExtension;
151151
});
152152

packages/geojson-extension/package.json

+6-6
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,9 @@
3939
"build:prod": "jlpm run build:lib && jlpm run build:labextension",
4040
"clean": "jlpm run clean:lib",
4141
"clean:all": "jlpm run clean:lib && jlpm run clean:labextension && jlpm run clean:dist",
42+
"clean:dist": "rimraf dist",
4243
"clean:labextension": "rimraf ./jupyterlab-geojson/labextension",
4344
"clean:lib": "rimraf lib tsconfig.tsbuildinfo",
44-
"clean:dist": "rimraf dist",
4545
"eslint": "eslint . --ext .ts,.tsx --fix",
4646
"eslint:check": "eslint . --ext .ts,.tsx",
4747
"install:extension": "jupyter labextension develop --overwrite .",
@@ -52,14 +52,14 @@
5252
"watch:src": "tsc -w"
5353
},
5454
"dependencies": {
55-
"@jupyterlab/apputils": "^3.0.5",
56-
"@jupyterlab/rendermime-interfaces": "^3.0.5",
57-
"@lumino/messaging": "^1.4.3",
58-
"@lumino/widgets": "^1.16.1",
55+
"@jupyterlab/apputils": "^3.2.8",
56+
"@jupyterlab/rendermime-interfaces": "^3.2.8",
57+
"@lumino/messaging": "^1.10.1",
58+
"@lumino/widgets": "^1.31.1",
5959
"leaflet": "^1.5.0"
6060
},
6161
"devDependencies": {
62-
"@jupyterlab/builder": "^3.0.0",
62+
"@jupyterlab/builder": "^3.2.8",
6363
"@types/leaflet": "^1.4.0",
6464
"npm-run-all": "^4.1.5",
6565
"rimraf": "^3.0.2",

0 commit comments

Comments
 (0)