Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

react-app #13

Draft
wants to merge 127 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
127 commits
Select commit Hold shift + click to select a range
3d90449
chore: remove old app
ivan-aksamentov Aug 26, 2022
47d7f29
feat: scaffold react app
ivan-aksamentov Aug 30, 2022
4c0b15d
Merge remote-tracking branch 'origin/static-app' into react-app
ivan-aksamentov Aug 30, 2022
6653ab1
chore: remove unused files
ivan-aksamentov Aug 30, 2022
de66274
chore: setup vercel
ivan-aksamentov Aug 30, 2022
a2ed5c2
chore: fix env var name
ivan-aksamentov Aug 31, 2022
1b369cc
feat: fetch data index, setup routing
ivan-aksamentov Aug 31, 2022
0bbe24a
fix: client-side routing in prod
ivan-aksamentov Aug 31, 2022
8d9f333
chore(infra): ensure correct encoding is set for gz files
ivan-aksamentov Sep 2, 2022
24da428
chore: format, lint
ivan-aksamentov Sep 2, 2022
f9a864b
chore(infra): add script to find Lambda@Edge logs
ivan-aksamentov Sep 2, 2022
e7d248d
feat: fetch multiple data files efficiently
ivan-aksamentov Sep 3, 2022
26954ba
feat: batch gene cluster data into tar archives
ivan-aksamentov Sep 5, 2022
23d8a4e
Merge branch 'static-app' into react-app
ivan-aksamentov Sep 6, 2022
a17cacc
chore: convert remaining tars into zips
ivan-aksamentov Sep 6, 2022
86495b2
chore: generate index file in new format
ivan-aksamentov Sep 6, 2022
acd5674
feat: add species list table
ivan-aksamentov Sep 6, 2022
8b02d6f
fix: remove index column
ivan-aksamentov Sep 7, 2022
7b66b69
fix: disable sorting of downloads column
ivan-aksamentov Sep 7, 2022
32b3e1c
feat: add fuzzy search of species
ivan-aksamentov Sep 7, 2022
da29834
feat: add gene cluster table
ivan-aksamentov Sep 7, 2022
d16a2a3
chore: cleanup gene cluster json
ivan-aksamentov Sep 7, 2022
d86d577
feat: adjust gene table to the new data format
ivan-aksamentov Sep 7, 2022
96c9913
chore: add custom dev server for local data
ivan-aksamentov Sep 7, 2022
6975e9f
feat: switch genes on table row click
ivan-aksamentov Sep 7, 2022
c02a4a0
feat: add metadata table
ivan-aksamentov Sep 8, 2022
3d9296d
refactor: reduce duplication in fetching hook code
ivan-aksamentov Sep 8, 2022
3721f17
feat: allow column reordering using drag-and-drop
ivan-aksamentov Sep 30, 2022
3d9d139
feat: toggle and reorder columns
ivan-aksamentov Sep 30, 2022
fa1e611
feat: hide column controls under dropdown
ivan-aksamentov Sep 30, 2022
e260528
feat: add better popover implementation for table settings
ivan-aksamentov Sep 30, 2022
9474a7d
feat: animate dnd list
ivan-aksamentov Sep 30, 2022
cfc2d8a
refactor: extract row component
ivan-aksamentov Oct 1, 2022
f4f8052
feat: add row drag and drop
ivan-aksamentov Oct 3, 2022
b3499b8
feat: add table column resizing
ivan-aksamentov Oct 3, 2022
a61484f
refactor: lint
ivan-aksamentov Oct 3, 2022
fa75bed
fix: set entire column header as a drag source
ivan-aksamentov Oct 3, 2022
566ca4f
fix: avoid table header scrolling away
ivan-aksamentov Oct 3, 2022
4efe8a5
chore: allow webworker blob in script-src CSP
ivan-aksamentov Oct 3, 2022
8fc1b67
refactor: extract generic table component
ivan-aksamentov Oct 4, 2022
c27712f
refactor: deduplicate table code for all tables
ivan-aksamentov Oct 4, 2022
0717b75
fix: center loading indicator
ivan-aksamentov Oct 4, 2022
9f39254
feat: add pulse animation for loader
ivan-aksamentov Oct 4, 2022
02c3744
fix: prevent loader blink
ivan-aksamentov Oct 4, 2022
e9f2406
feat: reimplement table filtering
ivan-aksamentov Oct 4, 2022
2f8d4a3
feat: extract and prettify search box component
ivan-aksamentov Oct 4, 2022
b3a4d13
refactor: lint
ivan-aksamentov Oct 4, 2022
1a09b1e
refactor: extract table spacer component
ivan-aksamentov Oct 4, 2022
2ec973c
refactor: rename component to clarify purpose
ivan-aksamentov Oct 4, 2022
977635f
refactor: extract table heading
ivan-aksamentov Oct 5, 2022
8f89cb8
feat: prettify table heading
ivan-aksamentov Oct 5, 2022
b00f047
feat: prettify table rows
ivan-aksamentov Oct 5, 2022
55f4bea
fix: align heading text
ivan-aksamentov Oct 5, 2022
57ee5cd
feat: prettify species page
ivan-aksamentov Oct 5, 2022
9a53f9b
fix: make header and footer sticky and opaque
ivan-aksamentov Oct 5, 2022
d61e593
fix: remove sorting buttons for columns which cannot be sorted
ivan-aksamentov Oct 5, 2022
0825667
feat: reduce table config boilerplate
ivan-aksamentov Oct 5, 2022
4425b84
fix: ensure row colors (stripes) of the table are correct after sorting
ivan-aksamentov Nov 18, 2022
288cd66
chore: add code of phyloTree
ivan-aksamentov Nov 18, 2022
617f845
feat: add phylo tree
ivan-aksamentov Nov 18, 2022
2a29a3d
feat: wrap trees into cards
ivan-aksamentov Nov 18, 2022
907943c
feat: add reduced alignment files
ivan-aksamentov Nov 18, 2022
3fef40a
chore: add code for msa
ivan-aksamentov Nov 18, 2022
49d006d
feat: add msa viewer
ivan-aksamentov Nov 19, 2022
32e3bb0
chore: disable type-checking legacy code
ivan-aksamentov Nov 19, 2022
fb1b263
fix: use correct fasta file depending on chosen seq type
ivan-aksamentov Nov 19, 2022
28cbd28
chore: use temp data server
ivan-aksamentov Nov 20, 2022
0add421
chore: disable type checks on vercel
ivan-aksamentov Nov 20, 2022
abe479b
feat: use gene tree json and fasta from tar archive
ivan-aksamentov Nov 20, 2022
4ea0dbf
fix: react error "Maximum update depth exceeded"
ivan-aksamentov Nov 20, 2022
7725c22
refactor: convert require() to import
ivan-aksamentov Nov 20, 2022
3b16a99
chore: remove unused files
ivan-aksamentov Nov 20, 2022
3d62919
refactor: remove unused code and packages
ivan-aksamentov Nov 20, 2022
376d121
Merge remote-tracking branch 'origin/master' into react-app
ivan-aksamentov Nov 22, 2022
18e92d4
chore: fix faulty merge
ivan-aksamentov Nov 22, 2022
66d4892
docs: update dev docs
ivan-aksamentov Nov 22, 2022
e83dc7f
refactor: lint
ivan-aksamentov Nov 23, 2022
9e43e30
refactor: upgrade deps, lint, adjust to new interfaces
ivan-aksamentov Nov 23, 2022
a4978a7
fix: init i18n in immediate mode
ivan-aksamentov Nov 23, 2022
2d2ed68
refactor: fix yarn resolutions
ivan-aksamentov Nov 23, 2022
e4d71e5
chore: make console less verbose
ivan-aksamentov Nov 23, 2022
0c2c781
refactor: remove unused files
ivan-aksamentov Nov 23, 2022
e52e7d9
fix: silence console messages from msa
ivan-aksamentov Nov 24, 2022
5392a71
Merge remote-tracking branch 'origin/master' into react-app
ivan-aksamentov Nov 24, 2022
151005e
feat(data): integrate metaConfiguration.js into species tree; cleanup…
ivan-aksamentov Nov 24, 2022
f214f9d
feat: hardcode names of downloaded files
ivan-aksamentov Nov 24, 2022
20a815d
feat: reimplement tree/graph layout with React rendering
ivan-aksamentov Nov 30, 2022
b0f2b72
feat: reimplement tree tooltips
ivan-aksamentov Nov 30, 2022
628706c
refactor: fix typings in Tooltip
ivan-aksamentov Dec 7, 2022
6c5b09c
feat: colorize nodes
ivan-aksamentov Dec 7, 2022
875b7f4
refactor: lint
ivan-aksamentov Dec 7, 2022
862ec63
chore: upgrade Node deps
ivan-aksamentov Dec 8, 2022
6f6d394
fix: i18n warning
ivan-aksamentov Dec 16, 2022
ed6c422
feat: show 'strain' instead of 'name' on graph nodes
ivan-aksamentov Dec 16, 2022
b544216
feat: fit graph into available screen space
ivan-aksamentov Dec 16, 2022
3abca90
fix: downgrade react-table to avoid crash
ivan-aksamentov Dec 17, 2022
d570ee2
feat: don't render node labels if there's more than 50
ivan-aksamentov Dec 17, 2022
2b49494
feat: reenable gene table and tree
ivan-aksamentov Dec 17, 2022
1d63f9d
feat: render graph into HTML5 canvas
ivan-aksamentov Dec 17, 2022
b99feaa
feat: highlight nodes with the same name
ivan-aksamentov Dec 17, 2022
83e1a1e
feat: clear cache when restarting the app
ivan-aksamentov Dec 17, 2022
a8ea494
chore: cleanup data deployment scripts
ivan-aksamentov Dec 17, 2022
75f97f5
test: add tests for dfs graph traversal
ivan-aksamentov Dec 18, 2022
093ff79
pert: impl iterative depth-first search
ivan-aksamentov Dec 19, 2022
20e4661
perf: avoid graph traversal where possible
ivan-aksamentov Dec 19, 2022
998fac8
perf: remove unnecessary and repeated computations
ivan-aksamentov Dec 19, 2022
f753db7
perf: avoid unnecessary rerenders, memoize React components,
ivan-aksamentov Dec 19, 2022
8370c54
fix: prevent spinner on species tree when only gene tree is loading
ivan-aksamentov Dec 19, 2022
7289b7f
feat: animate tree layout transitions
ivan-aksamentov Dec 19, 2022
0d1efeb
feat: animate node color
ivan-aksamentov Dec 19, 2022
5ba836b
refactor: extend useToggle hook
ivan-aksamentov Jan 17, 2023
f88a2d8
refactor: lint
ivan-aksamentov Jan 17, 2023
4b745ee
chore: disable eslint checks with false positives
ivan-aksamentov Jan 17, 2023
d25bdf7
feat: mirror gene tree horizontally
ivan-aksamentov Jan 17, 2023
b70d8cc
fix: highlight nodes on another tree correctly
ivan-aksamentov Jan 17, 2023
659af4c
feat: scale tree branches
ivan-aksamentov Jan 17, 2023
9235b3c
feat: add nuccore urls in metadata table
ivan-aksamentov Jan 17, 2023
a28f874
feat: adjust widget spacing
ivan-aksamentov Jan 18, 2023
26af64c
feat: start re-implementing msa viewer
ivan-aksamentov Jan 18, 2023
9d10235
refactor: move components into separate modules
ivan-aksamentov Jan 18, 2023
3f03485
feat: make msa canvas scrollable
ivan-aksamentov Jan 18, 2023
373a906
feat: add drag scroll to msa viewer
ivan-aksamentov Jan 18, 2023
c7a0a48
feat: pin ref sequence at the top of msa viewer
ivan-aksamentov Jan 18, 2023
818915b
fix: prevent double drawing of ref sequence
ivan-aksamentov Jan 18, 2023
497fc85
feat: show position indices in msa viewer
ivan-aksamentov Jan 18, 2023
8e3c86a
feat: add msa toolbar buttons
ivan-aksamentov Jan 19, 2023
b803da3
refactor: cleanup drawing code
ivan-aksamentov Jan 19, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
9 changes: 7 additions & 2 deletions .browserslistrc
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
[production]
defaults
IE >= 10
since 2012
cover 99%
since 2017

[development]
last 10 Chrome versions
last 10 Firefox versions
4 changes: 1 addition & 3 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
.git
.idea
.ignore
.volumes
.ignore*
.vscode*
.config
14 changes: 14 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
root = true

[*]
charset = utf-8
end_of_line = lf
indent_size = 2
indent_style = space
insert_final_newline = true
max_line_length = 120
trim_trailing_whitespace = true

[*.md]
trim_trailing_whitespace = false
max_line_length = 9999999
21 changes: 19 additions & 2 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,6 +1,23 @@
DATA_ROOT_URL=https://data.master.pangenome.org
DATA_ROOT_URL=https://data.temp.pangenome.org

PLAUSIBLE_IO_DOMAIN=master.pangenome.org

AWS_S3_BUCKET="xxxxxxxxxxxxxxxxxxxx"
FULL_DOMAIN=autodetect
NEXT_TELEMETRY_DISABLED=1

WEB_PORT_PROD=8080

DEV_ENABLE_TYPE_CHECKS=1
DEV_ENABLE_ESLINT=1
DEV_ENABLE_STYLELINT=1

PROD_ENABLE_SOURCE_MAPS=1
PROD_ENABLE_TYPE_CHECKS=1
PROD_ENABLE_ESLINT=1
PROD_ENABLE_STYLELINT=1

ANALYZE=0
PROFILE=0

AWS_S3_BUCKET="s3://xxxxxxxxxxxxxxxxxxxx"
AWS_CLOUDFRONT_DISTRIBUTION_ID="XXXXXXXXXXXXXX"
23 changes: 23 additions & 0 deletions .env.vercel
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
DATA_ROOT_URL=https://data.temp.pangenome.org

PLAUSIBLE_IO_DOMAIN=

FULL_DOMAIN=autodetect
NEXT_TELEMETRY_DISABLED=1

WEB_PORT_PROD=8080

DEV_ENABLE_TYPE_CHECKS=0
DEV_ENABLE_ESLINT=0
DEV_ENABLE_STYLELINT=0

PROD_ENABLE_SOURCE_MAPS=1
PROD_ENABLE_TYPE_CHECKS=0
PROD_ENABLE_ESLINT=0
PROD_ENABLE_STYLELINT=0

ANALYZE=0
PROFILE=0

AWS_S3_BUCKET="s3://xxxxxxxxxxxxxxxxxxxx"
AWS_CLOUDFRONT_DISTRIBUTION_ID="XXXXXXXXXXXXXX"
15 changes: 15 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
/\.build
/\.cache
/\.env
/\.github
/\.idea
/\.ignore
/\.vscode*
/data
/node_modules
/public
/src/components/Msa/*.js
/src/components/Msa/msa
/src/components/Tree/*.js
/src/components/Tree/phyloTree
/tsconfig.json
280 changes: 280 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,280 @@
module.exports = {
root: true,
parser: '@typescript-eslint/parser',
parserOptions: {
sourceType: 'module',
ecmaVersion: 'latest',
ecmaFeatures: {
jsx: true,
globalReturn: false,
},
project: './tsconfig.json',
// project: [path.resolve(__dirname, './tsconfig.eslint.json')],
// tsconfigRootDir: __dirname,
warnOnUnsupportedTypeScriptVersion: true,
},
globals: {},
extends: [
'eslint:recommended',

'airbnb',
'airbnb-typescript',
'airbnb/hooks',
'react-app',

'next/core-web-vitals',
'plugin:@typescript-eslint/eslint-recommended',
'plugin:@typescript-eslint/recommended',
'plugin:@typescript-eslint/recommended-requiring-type-checking',
'plugin:array-func/all',
'plugin:import/errors',
'plugin:import/typescript',
'plugin:import/warnings',
'plugin:jest/recommended',
'plugin:jest/style',
'plugin:jsx-a11y/recommended',
'plugin:lodash/recommended',
'plugin:promise/recommended',
'plugin:react/recommended',
'plugin:react-perf/all',
'plugin:security/recommended',
'plugin:sonarjs/recommended',
'plugin:unicorn/recommended',

'plugin:prettier/recommended',
],
plugins: [
'array-func',
'cflint',
'import',
'jest',
'jsx-a11y',
'lodash',
'no-loops',
'no-secrets',
'node',
'only-ascii',
'promise',
'react',
'react-hooks',
'react-perf',
'security',
'sonarjs',
'unicorn',
'unused-imports',

'only-warn',

'@typescript-eslint',

'prettier',
],
reportUnusedDisableDirectives: true,
rules: {
'@next/next/no-title-in-document-head': 'off',
'@typescript-eslint/array-type': 'off',
'@typescript-eslint/explicit-function-return-type': 'off',
'@typescript-eslint/explicit-module-boundary-types': 'off',
'@typescript-eslint/lines-between-class-members': 'off',
'@typescript-eslint/naming-convention': 'off',
'@typescript-eslint/no-empty-function': 'off',
'@typescript-eslint/no-shadow': 'off',
'@typescript-eslint/no-unsafe-argument': 'off',
'@typescript-eslint/no-unsafe-assignment': 'off',
'@typescript-eslint/no-unsafe-call': 'off',
'@typescript-eslint/no-unsafe-member-access': 'off',
'@typescript-eslint/no-unsafe-return': 'off',
'@typescript-eslint/no-unused-vars': 'off',
'@typescript-eslint/restrict-template-expressions': 'off',
'@typescript-eslint/unbound-method': ['off'],
'array-func/no-unnecessary-this-arg': 'off',
'array-func/prefer-array-from': 'off',
'camelcase': 'off',
'cflint/no-substr': 'warn',
'cflint/no-this-assignment': 'warn',
'import/extensions': [
'warn',
'ignorePackages',
{
js: 'never',
jsx: 'never',
mjs: 'never',
ts: 'never',
tsx: 'never',
},
],
'import/no-extraneous-dependencies': ['warn', { devDependencies: true }],
'import/no-webpack-loader-syntax': 'off',
'import/order': 'warn',
'import/prefer-default-export': 'off',
'jest/consistent-test-it': 'warn',
'jest/expect-expect': 'warn',
'jest/no-done-callback': 'warn',
'jsx-a11y/label-has-associated-control': ['warn', { assert: 'either' }],
'lodash/chaining': 'off',
'lodash/import-scope': 'off',
'lodash/prefer-constant': 'off',
'lodash/prefer-lodash-chain': 'off',
'lodash/prefer-lodash-method': 'off',
'lodash/prefer-lodash-typecheck': 'off',
'lodash/prefer-noop': 'off',
'lodash/preferred-alias': 'off',
'lodash/prop-shorthand': 'off',
'max-classes-per-file': 'off',
'no-console': ['warn', { allow: ['info', 'warn', 'error', 'memory'] }],
'no-loops/no-loops': 'warn',
'no-param-reassign': ['warn', { ignorePropertyModificationsFor: ['draft'] }],
'no-secrets/no-secrets': ['warn', { tolerance: 5 }],
'no-shadow': 'off',
'no-unused-vars': 'off',
'only-ascii/only-ascii': 'warn',
'prefer-for-of': 'off',
'prettier/prettier': 'warn',
'react-hooks/exhaustive-deps': [
'warn',
{
additionalHooks:
'(useRecoilCallback|useRecoilTransaction|useRecoilTransaction_UNSTABLE|useSpring|useSprings|useTrail)',
},
],
'react/jsx-curly-brace-presence': 'off',
'react/jsx-filename-extension': ['warn', { extensions: ['.js', '.jsx', '.ts', '.tsx'] }],
'react/jsx-props-no-spreading': 'off',
'react/no-unused-prop-types': 'off',
'react/prop-types': 'off',
'react/require-default-props': 'off',
'react/state-in-constructor': 'off',
'security/detect-non-literal-fs-filename': 'off',
'security/detect-object-injection': 'off',
'sonarjs/cognitive-complexity': ['warn', 20],
'spaced-comment': 'off',
'unicorn/consistent-function-scoping': 'off',
'unicorn/escape-case': 'off',
'unicorn/filename-case': 'off',
'unicorn/new-for-builtins': 'off',
'unicorn/no-abusive-eslint-disable': 'warn',
'unicorn/no-array-callback-reference': 'off',
'unicorn/no-array-for-each': 'off',
'unicorn/no-array-method-this-argument': 'off',
'unicorn/no-array-reduce': 'off',
'unicorn/no-fn-reference-in-iterator': 'off',
'unicorn/no-null': 'off',
'unicorn/no-reduce': 'off',
'unicorn/no-typeof-undefined': 'off',
'unicorn/no-useless-undefined': 'off',
'unicorn/no-zero-fractions': 'off',
'unicorn/prefer-node-protocol': 'off',
'unicorn/prefer-query-selector': 'off',
'unicorn/prefer-spread': 'off',
'unicorn/prevent-abbreviations': 'off',
'unused-imports/no-unused-imports': 'warn',
'unused-imports/no-unused-vars': [
'warn',
{ vars: 'all', varsIgnorePattern: '^_', args: 'after-used', argsIgnorePattern: '^_' },
],

'lines-between-class-members': ['warn', 'always', { exceptAfterSingleLine: true }],

'require-await': 'off',
'@typescript-eslint/require-await': 'off',

'no-unused-expressions': 'off',
'@typescript-eslint/no-unused-expressions': 'warn',

'@typescript-eslint/no-duplicate-imports': 'off',
},
env: {
browser: true,
es6: true,
jest: true,
node: true,
},
settings: {
'react': {
version: 'detect',
},
'import/parsers': {
'@typescript-eslint/parser': ['.js', '.jsx', '.ts', '.tsx'],
},
'import/resolver': {
typescript: {
alwaysTryTypes: true,
},
},
},
overrides: [
{
files: ['src/pages/**/*', 'src/types/**/*'],
rules: {
'no-restricted-exports': 'off',
},
},
{
files: ['*.d.ts'],
rules: {
'@typescript-eslint/ban-types': ['warn', { extendDefaults: true, types: { object: false } }],
'@typescript-eslint/no-explicit-any': 'off',
'@typescript-eslint/no-unused-vars': 'off',
'import/no-duplicates': 'off',
'no-useless-constructor': 'off',
'react/prefer-stateless-function': 'off',
},
},
{
files: [
'.eslintrc.js',
'babel-node.config.js',
'config/**/*.js',
'config/**/*.ts',
'config/jest/mocks/**/*.js',
'infra/**/*.js',
'jest-runner-eslint.config.js',
'jest.config.js',
'lib/EnvVarError.js',
'lib/findModuleRoot.js',
'lib/getenv.js',
'next.config.js',
'postcss.config.js',
'stylelint.config.js',
'webpack.config.js',
],
rules: {
'@typescript-eslint/no-unsafe-argument': 'off',
'@typescript-eslint/no-unsafe-assignment': 'off',
'@typescript-eslint/no-unsafe-call': 'off',
'@typescript-eslint/no-unsafe-member-access': 'off',
'@typescript-eslint/no-unsafe-return': 'off',
'@typescript-eslint/no-var-requires': 'off',
'@typescript-eslint/restrict-template-expressions': 'off',
'global-require': 'off',
'import/extensions': 'off',
'import/no-anonymous-default-export': 'off',
'import/no-import-module-exports': 'off',
'security/detect-child-process': 'off',
'sonarjs/cognitive-complexity': ['warn', 50],
'unicorn/prefer-module': 'off',
},
},
{
files: ['config/jest/mocks/**/*.js'],
rules: {
'no-constructor-return': 'off',
'react-perf/jsx-no-new-function-as-prop': 'off',
'react/display-name': 'off',
'react/function-component-definition': 'off',
},
},
{
files: ['**/*.test.*', '**/__test__/**', '**/__tests__/**', '**/test/**', '**/tests/**'],
rules: {
'@typescript-eslint/no-unsafe-assignment': 'off',
'@typescript-eslint/no-unsafe-call': 'off',
'@typescript-eslint/no-unsafe-member-access': 'off',
'@typescript-eslint/no-unsafe-return': 'off',
'@typescript-eslint/restrict-template-expressions': 'off',
'sonarjs/no-duplicate-string': 'off',
'sonarjs/no-identical-functions': 'off',
},
},
],
}
8 changes: 3 additions & 5 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
*.log
\.build
\.cache
\.env
\.git/
\.idea/
\.ignore/
\.volumes/
\.vscode*
node_modules/*
public/bower_components/
public/dataset/*
public/dist/*
public/*.html
public/javascripts/meta-dict-*
Loading