mirror of
				https://github.com/TriliumNext/Notes.git
				synced 2025-10-31 04:51:31 +08:00 
			
		
		
		
	
		
			
	
	
		
			84 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			84 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|   | import globals from 'globals'; | ||
|  | import { defineConfig } from 'eslint/config'; | ||
|  | import eslintConfigCKEditor5 from 'eslint-config-ckeditor5'; | ||
|  | import eslintPluginCKEditor5Rules from 'eslint-plugin-ckeditor5-rules'; | ||
|  | 
 | ||
|  | export default defineConfig( [ | ||
|  | 	eslintConfigCKEditor5, | ||
|  | 	{ | ||
|  | 		name: 'Ignored files config', | ||
|  | 		ignores: [ | ||
|  | 			// Ignore compiled JavaScript files, as they are generated automatically.
 | ||
|  | 			'src/**/*.js', | ||
|  | 			// Also, do not check typing declarations, too.
 | ||
|  | 			'src/**/*.d.ts', | ||
|  | 			// Ignore the entire `dist/` (the NIM build).
 | ||
|  | 			'dist/**' | ||
|  | 		] | ||
|  | 	}, | ||
|  | 	{ | ||
|  | 		name: 'Base config', | ||
|  | 		languageOptions: { | ||
|  | 			ecmaVersion: 'latest', | ||
|  | 			sourceType: 'module' | ||
|  | 		}, | ||
|  | 		linterOptions: { | ||
|  | 			reportUnusedInlineConfigs: 'error', | ||
|  | 			reportUnusedDisableDirectives: 'error' | ||
|  | 		}, | ||
|  | 		plugins: { | ||
|  | 			'ckeditor5-rules': eslintPluginCKEditor5Rules | ||
|  | 		}, | ||
|  | 		rules: { | ||
|  | 			//  This rule disallows importing from any path other than the package main entrypoint.
 | ||
|  | 			'ckeditor5-rules/allow-imports-only-from-main-package-entry-point': 'error', | ||
|  | 			// As required by the ECMAScript (ESM) standard, all imports must include a file extension.
 | ||
|  | 			// If the import does not include it, this rule will try to automatically detect the correct file extension.
 | ||
|  | 			'ckeditor5-rules/require-file-extensions-in-imports': [ 'error', { | ||
|  | 				extensions: [ '.ts', '.js', '.json' ] | ||
|  | 			} ], | ||
|  | 			// This rule ensures that all imports from `@ckeditor/*` packages are done through the main package entry points.
 | ||
|  | 			// This is required for the editor types to work properly and to ease migration to the installation methods
 | ||
|  | 			// introduced in CKEditor 5 version 42.0.0.
 | ||
|  | 			'ckeditor5-rules/no-legacy-imports': 'error' | ||
|  | 		} | ||
|  | 	}, | ||
|  | 	{ | ||
|  | 		name: 'NodeJS environment config', | ||
|  | 		files: [ | ||
|  | 			'./scripts/**/*.{js,mjs,cjs}' | ||
|  | 		], | ||
|  | 		languageOptions: { | ||
|  | 			globals: { | ||
|  | 				...globals.node | ||
|  | 			} | ||
|  | 		} | ||
|  | 	}, | ||
|  | 	{ | ||
|  | 		name: 'Browser environment config', | ||
|  | 		files: [ | ||
|  | 			'./sample/**/*.{ts,mts,cts}', | ||
|  | 			'./src/**/*.{ts,mts,cts}', | ||
|  | 			'./tests/**/*.{ts,mts,cts}', | ||
|  | 			'./typings/**/*.d.ts' | ||
|  | 		], | ||
|  | 		languageOptions: { | ||
|  | 			globals: { | ||
|  | 				...globals.browser | ||
|  | 			} | ||
|  | 		} | ||
|  | 	}, | ||
|  | 	{ | ||
|  | 		name: 'Sample and tests config', | ||
|  | 		files: [ | ||
|  | 			'sample/**/*.{ts,mts,cts}', | ||
|  | 			'tests/**/*.{ts,mts,cts}' | ||
|  | 		], | ||
|  | 		rules: { | ||
|  | 			// To write complex tests, you may need to import files that are not exported in DLL files by default.
 | ||
|  | 			// Hence, imports CKEditor 5 packages in test files are not checked.
 | ||
|  | 			'ckeditor5-rules/ckeditor-imports': 'off' | ||
|  | 		} | ||
|  | 	} | ||
|  | ] ); |