mirror of
				https://github.com/zadam/trilium.git
				synced 2025-11-02 19:36:12 +01:00 
			
		
		
		
	See: * https://github.com/ckeditor/ckeditor5-package-generator/pull/229 * https://github.com/ckeditor/ckeditor5-linters-config/pull/60
		
			
				
	
	
		
			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'
 | 
						|
		}
 | 
						|
	}
 | 
						|
] );
 |