mirror of
				https://github.com/zadam/trilium.git
				synced 2025-11-04 05:28:59 +01:00 
			
		
		
		
	chore: add eslint config
This commit is contained in:
		
							parent
							
								
									dba0c9f373
								
							
						
					
					
						commit
						cfb04f7d8a
					
				
							
								
								
									
										9
									
								
								.eslintignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								.eslintignore
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,9 @@
 | 
			
		||||
node_modules
 | 
			
		||||
dist
 | 
			
		||||
bin
 | 
			
		||||
docs
 | 
			
		||||
libraries
 | 
			
		||||
spec
 | 
			
		||||
spec-es6
 | 
			
		||||
coverage
 | 
			
		||||
play
 | 
			
		||||
							
								
								
									
										223
									
								
								.eslintrc.js
									
									
									
									
									
								
							
							
						
						
									
										223
									
								
								.eslintrc.js
									
									
									
									
									
								
							@ -1,16 +1,215 @@
 | 
			
		||||
module.exports = {
 | 
			
		||||
    "env": {
 | 
			
		||||
        "browser": true,
 | 
			
		||||
        "commonjs": true,
 | 
			
		||||
        "es2021": true,
 | 
			
		||||
        "node": true
 | 
			
		||||
    env: {
 | 
			
		||||
        browser: true,
 | 
			
		||||
        commonjs: true,
 | 
			
		||||
        es2021: true,
 | 
			
		||||
        node: true,
 | 
			
		||||
    },
 | 
			
		||||
    "extends": "eslint:recommended",
 | 
			
		||||
    "overrides": [
 | 
			
		||||
    plugins: ['prettier'],
 | 
			
		||||
 | 
			
		||||
    extends: ['eslint:recommended', 'airbnb-base', 'plugin:jsonc/recommended-with-jsonc', 'prettier'],
 | 
			
		||||
    overrides: [
 | 
			
		||||
        {
 | 
			
		||||
            files: ['*.json', '*.json5', '*.jsonc'],
 | 
			
		||||
            parser: 'jsonc-eslint-parser',
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            files: ['package.json'],
 | 
			
		||||
            parser: 'jsonc-eslint-parser',
 | 
			
		||||
            rules: {
 | 
			
		||||
                'jsonc/sort-keys': [
 | 
			
		||||
                    'error',
 | 
			
		||||
                    {
 | 
			
		||||
                        pathPattern: '^$',
 | 
			
		||||
                        order: [
 | 
			
		||||
                            'name',
 | 
			
		||||
                            'version',
 | 
			
		||||
                            'private',
 | 
			
		||||
                            'packageManager',
 | 
			
		||||
                            'description',
 | 
			
		||||
                            'type',
 | 
			
		||||
                            'keywords',
 | 
			
		||||
                            'homepage',
 | 
			
		||||
                            'bugs',
 | 
			
		||||
                            'license',
 | 
			
		||||
                            'author',
 | 
			
		||||
                            'contributors',
 | 
			
		||||
                            'funding',
 | 
			
		||||
                            'files',
 | 
			
		||||
                            'main',
 | 
			
		||||
                            'module',
 | 
			
		||||
                            'exports',
 | 
			
		||||
                            'unpkg',
 | 
			
		||||
                            'jsdelivr',
 | 
			
		||||
                            'browser',
 | 
			
		||||
                            'bin',
 | 
			
		||||
                            'man',
 | 
			
		||||
                            'directories',
 | 
			
		||||
                            'repository',
 | 
			
		||||
                            'publishConfig',
 | 
			
		||||
                            'scripts',
 | 
			
		||||
                            'peerDependencies',
 | 
			
		||||
                            'peerDependenciesMeta',
 | 
			
		||||
                            'optionalDependencies',
 | 
			
		||||
                            'dependencies',
 | 
			
		||||
                            'devDependencies',
 | 
			
		||||
                            'engines',
 | 
			
		||||
                            'config',
 | 
			
		||||
                            'overrides',
 | 
			
		||||
                            'pnpm',
 | 
			
		||||
                            'husky',
 | 
			
		||||
                            'lint-staged',
 | 
			
		||||
                            'eslintConfig',
 | 
			
		||||
                        ],
 | 
			
		||||
    "parserOptions": {
 | 
			
		||||
        "ecmaVersion": "latest"
 | 
			
		||||
                    },
 | 
			
		||||
    "rules": {
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
                    {
 | 
			
		||||
                        pathPattern: '^(?:dev|peer|optional|bundled)?[Dd]ependencies$',
 | 
			
		||||
                        order: { type: 'asc' },
 | 
			
		||||
                    },
 | 
			
		||||
                ],
 | 
			
		||||
            },
 | 
			
		||||
        },
 | 
			
		||||
    ],
 | 
			
		||||
    globals: {
 | 
			
		||||
        $: true,
 | 
			
		||||
        jQuery: true,
 | 
			
		||||
        glob: true,
 | 
			
		||||
        log: true,
 | 
			
		||||
        EditorWatchdog: true,
 | 
			
		||||
        baseApiUrl: true,
 | 
			
		||||
        // \src\share\canvas_share.js
 | 
			
		||||
        React: true,
 | 
			
		||||
        appState: true,
 | 
			
		||||
        ExcalidrawLib: true,
 | 
			
		||||
        elements: true,
 | 
			
		||||
        files: true,
 | 
			
		||||
        ReactDOM: true,
 | 
			
		||||
        // src\public\app\widgets\type_widgets\relation_map.js
 | 
			
		||||
        jsPlumb: true,
 | 
			
		||||
        panzoom: true,
 | 
			
		||||
        logError: true,
 | 
			
		||||
        // src\public\app\widgets\type_widgets\image.js
 | 
			
		||||
        WZoom: true,
 | 
			
		||||
        // \src\public\app\widgets\type_widgets\read_only_text.js
 | 
			
		||||
        renderMathInElement: true,
 | 
			
		||||
        // \src\public\app\widgets\type_widgets\editable_text.js
 | 
			
		||||
        BalloonEditor: true,
 | 
			
		||||
        CKEditorInspector: true,
 | 
			
		||||
        // \src\public\app\widgets\type_widgets\editable_code.js
 | 
			
		||||
        CodeMirror: true,
 | 
			
		||||
        // \src\public\app\services\resizer.js
 | 
			
		||||
        Split: true,
 | 
			
		||||
        // \src\public\app\services\note_content_renderer.js
 | 
			
		||||
        mermaid: true,
 | 
			
		||||
        // src\public\app\services\frontend_script_api.js
 | 
			
		||||
        dayjs: true,
 | 
			
		||||
        // \src\public\app\widgets\dialogs\markdown_import.js
 | 
			
		||||
        commonmark: true,
 | 
			
		||||
        // \src\public\app\widgets\note_map.js
 | 
			
		||||
        ForceGraph: true,
 | 
			
		||||
        // \src\public\app\setup.js
 | 
			
		||||
        ko: true,
 | 
			
		||||
        syncInProgress: true,
 | 
			
		||||
        // src\public\app\services\utils.js
 | 
			
		||||
        logInfo: true,
 | 
			
		||||
        __non_webpack_require__: true,
 | 
			
		||||
        //
 | 
			
		||||
    },
 | 
			
		||||
    parserOptions: {
 | 
			
		||||
        ecmaVersion: 'latest',
 | 
			
		||||
        sourceType: 'module',
 | 
			
		||||
    },
 | 
			
		||||
    rules: {
 | 
			
		||||
        // hi adam, those rules are //temporary off, you can turn them on one by one to check if we really need it. (to be deleted)
 | 
			
		||||
 | 
			
		||||
        // eslint:recommended
 | 
			
		||||
        'no-unused-vars': 'off',
 | 
			
		||||
        'linebreak-style': 'off',
 | 
			
		||||
        'no-useless-escape': 'off',
 | 
			
		||||
        'no-empty': 'off',
 | 
			
		||||
        'no-constant-condition': 'off',
 | 
			
		||||
        'getter-return': 'off',
 | 
			
		||||
        'no-cond-assign': 'off',
 | 
			
		||||
        'no-async-promise-executor': 'off',
 | 
			
		||||
        'no-extra-semi': 'off',
 | 
			
		||||
        'no-inner-declarations': 'off',
 | 
			
		||||
 | 
			
		||||
        // prettier
 | 
			
		||||
        'prettier/prettier': ['error', { endOfLine: 'auto' }],
 | 
			
		||||
 | 
			
		||||
        // airbnb-base
 | 
			
		||||
        'no-console': 'off',
 | 
			
		||||
        'no-plusplus': 'off',
 | 
			
		||||
        'no-param-reassign': 'off',
 | 
			
		||||
        'global-require': 'off',
 | 
			
		||||
        'no-use-before-define': 'off',
 | 
			
		||||
        'no-await-in-loop': 'off',
 | 
			
		||||
        radix: 'off',
 | 
			
		||||
        'import/order': 'off',
 | 
			
		||||
        'import/no-extraneous-dependencies': 'off',
 | 
			
		||||
        'prefer-destructuring': 'off',
 | 
			
		||||
        'no-shadow': 'off',
 | 
			
		||||
        'no-new': 'off',
 | 
			
		||||
        'no-restricted-syntax': 'off',
 | 
			
		||||
        strict: 'off',
 | 
			
		||||
        'class-methods-use-this': 'off',
 | 
			
		||||
        'no-else-return': 'off',
 | 
			
		||||
        'import/no-dynamic-require': 'off',
 | 
			
		||||
        'no-underscore-dangle': 'off',
 | 
			
		||||
        'prefer-template': 'off',
 | 
			
		||||
        'consistent-return': 'off',
 | 
			
		||||
        'no-continue': 'off',
 | 
			
		||||
        'object-shorthand': 'off',
 | 
			
		||||
        'one-var': 'off',
 | 
			
		||||
        'prefer-const': 'off',
 | 
			
		||||
        'spaced-comment': 'off',
 | 
			
		||||
        'no-loop-func': 'off',
 | 
			
		||||
        'arrow-body-style': 'off',
 | 
			
		||||
 | 
			
		||||
        'guard-for-in': 'off',
 | 
			
		||||
        'no-return-assign': 'off',
 | 
			
		||||
        'dot-notation': 'off',
 | 
			
		||||
 | 
			
		||||
        'func-names': 'off',
 | 
			
		||||
        'import/no-useless-path-segments': 'off',
 | 
			
		||||
        'default-param-last': 'off',
 | 
			
		||||
        'prefer-arrow-callback': 'off',
 | 
			
		||||
        'no-unneeded-ternary': 'off',
 | 
			
		||||
        'no-return-await': 'off',
 | 
			
		||||
        'import/extensions': 'off',
 | 
			
		||||
 | 
			
		||||
        'no-var': 'off',
 | 
			
		||||
        'import/newline-after-import': 'off',
 | 
			
		||||
        'no-restricted-globals': 'off',
 | 
			
		||||
        'operator-assignment': 'off',
 | 
			
		||||
        'no-eval': 'off',
 | 
			
		||||
        'max-classes-per-file': 'off',
 | 
			
		||||
        'vars-on-top': 'off',
 | 
			
		||||
        'no-bitwise': 'off',
 | 
			
		||||
        'no-lonely-if': 'off',
 | 
			
		||||
        'no-multi-assign': 'off',
 | 
			
		||||
        'no-promise-executor-return': 'off',
 | 
			
		||||
        'no-empty-function': 'off',
 | 
			
		||||
        'import/no-unresolved': 'off',
 | 
			
		||||
        camelcase: 'off',
 | 
			
		||||
        eqeqeq: 'off',
 | 
			
		||||
        'lines-between-class-members': 'off',
 | 
			
		||||
        'import/no-cycle': 'off',
 | 
			
		||||
        'new-cap': 'off',
 | 
			
		||||
        'prefer-object-spread': 'off',
 | 
			
		||||
        'no-new-func': 'off',
 | 
			
		||||
        'no-unused-expressions': 'off',
 | 
			
		||||
        'lines-around-directive': 'off',
 | 
			
		||||
        'prefer-exponentiation-operator': 'off',
 | 
			
		||||
        'no-restricted-properties': 'off',
 | 
			
		||||
        'prefer-rest-params': 'off',
 | 
			
		||||
        'no-unreachable-loop': 'off',
 | 
			
		||||
        'no-alert': 'off',
 | 
			
		||||
        'no-useless-return': 'off',
 | 
			
		||||
        'no-nested-ternary': 'off',
 | 
			
		||||
        'prefer-regex-literals': 'off',
 | 
			
		||||
        'import/no-named-as-default-member': 'off',
 | 
			
		||||
        yoda: 'off',
 | 
			
		||||
        'no-script-url': 'off',
 | 
			
		||||
    },
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@ -12,3 +12,4 @@ server-package.json
 | 
			
		||||
.idea/httpRequests/
 | 
			
		||||
data/
 | 
			
		||||
tmp/
 | 
			
		||||
.eslintcache
 | 
			
		||||
							
								
								
									
										1
									
								
								.husky/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								.husky/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
			
		||||
_
 | 
			
		||||
							
								
								
									
										11
									
								
								.prettierrc.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								.prettierrc.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,11 @@
 | 
			
		||||
//https://prettier.io/docs/en/options.html 
 | 
			
		||||
module.exports = {
 | 
			
		||||
	semi: true,
 | 
			
		||||
	trailingComma: 'es5',
 | 
			
		||||
	singleQuote: true,
 | 
			
		||||
	printWidth: 120,
 | 
			
		||||
	tabWidth: 4,
 | 
			
		||||
	// useTabs: false,
 | 
			
		||||
	// bracketSpacing: true,
 | 
			
		||||
	// htmlWhitespaceSensitivity: 'ignore',
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										16
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								package.json
									
									
									
									
									
								
							@ -26,7 +26,9 @@
 | 
			
		||||
    "test-jasmine": "jasmine",
 | 
			
		||||
    "test-es6": "node -r esm spec-es6/attribute_parser.spec.js ",
 | 
			
		||||
    "test": "npm run test-jasmine && npm run test-es6",
 | 
			
		||||
    "postinstall": "rimraf ./node_modules/canvas"
 | 
			
		||||
    "postinstall": "rimraf ./node_modules/canvas",
 | 
			
		||||
    "lint": "eslint .  --cache",
 | 
			
		||||
    "prepare": "husky install"
 | 
			
		||||
  },
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "@braintree/sanitize-url": "6.0.2",
 | 
			
		||||
@ -100,15 +102,27 @@
 | 
			
		||||
    "electron-packager": "17.1.1",
 | 
			
		||||
    "electron-rebuild": "3.2.9",
 | 
			
		||||
    "eslint": "^8.38.0",
 | 
			
		||||
    "eslint-config-airbnb-base": "^15.0.0",
 | 
			
		||||
    "eslint-config-prettier": "^8.8.0",
 | 
			
		||||
    "eslint-plugin-import": "^2.27.5",
 | 
			
		||||
    "eslint-plugin-jsonc": "^2.7.0",
 | 
			
		||||
    "eslint-plugin-prettier": "^4.2.1",
 | 
			
		||||
    "esm": "3.2.25",
 | 
			
		||||
    "husky": "^8.0.3",
 | 
			
		||||
    "jasmine": "4.5.0",
 | 
			
		||||
    "jsdoc": "4.0.1",
 | 
			
		||||
    "jsonc-eslint-parser": "^2.2.0",
 | 
			
		||||
    "lint-staged": "^13.2.1",
 | 
			
		||||
    "lorem-ipsum": "2.0.8",
 | 
			
		||||
    "prettier": "2.8.7",
 | 
			
		||||
    "rcedit": "3.0.1",
 | 
			
		||||
    "webpack": "5.75.0",
 | 
			
		||||
    "webpack-cli": "5.0.1"
 | 
			
		||||
  },
 | 
			
		||||
  "optionalDependencies": {
 | 
			
		||||
    "electron-installer-debian": "3.1.0"
 | 
			
		||||
  },
 | 
			
		||||
  "lint-staged": {
 | 
			
		||||
    "*.js": "eslint --cache --fix"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user