|
@@ -0,0 +1,87 @@
|
|
|
|
|
+import type { Linter } from 'eslint';
|
|
|
|
|
+
|
|
|
|
|
+import { interopDefault } from '../util';
|
|
|
|
|
+
|
|
|
|
|
+export async function yaml(): Promise<Linter.Config[]> {
|
|
|
|
|
+ const [pluginYaml, parserYaml] = await Promise.all([
|
|
|
|
|
+ interopDefault(import('eslint-plugin-yml')),
|
|
|
|
|
+ interopDefault(import('yaml-eslint-parser')),
|
|
|
|
|
+ ] as const);
|
|
|
|
|
+
|
|
|
|
|
+ return [
|
|
|
|
|
+ {
|
|
|
|
|
+ files: ['**/*.y?(a)ml'],
|
|
|
|
|
+ plugins: {
|
|
|
|
|
+ yaml: pluginYaml as any,
|
|
|
|
|
+ },
|
|
|
|
|
+ languageOptions: {
|
|
|
|
|
+ parser: parserYaml,
|
|
|
|
|
+ },
|
|
|
|
|
+ rules: {
|
|
|
|
|
+ 'style/spaced-comment': 'off',
|
|
|
|
|
+
|
|
|
|
|
+ 'yaml/block-mapping': 'error',
|
|
|
|
|
+ 'yaml/block-sequence': 'error',
|
|
|
|
|
+ 'yaml/no-empty-key': 'error',
|
|
|
|
|
+ 'yaml/no-empty-sequence-entry': 'error',
|
|
|
|
|
+ 'yaml/no-irregular-whitespace': 'error',
|
|
|
|
|
+ 'yaml/plain-scalar': 'error',
|
|
|
|
|
+
|
|
|
|
|
+ 'yaml/vue-custom-block/no-parsing-error': 'error',
|
|
|
|
|
+
|
|
|
|
|
+ 'yaml/block-mapping-question-indicator-newline': 'error',
|
|
|
|
|
+ 'yaml/block-sequence-hyphen-indicator-newline': 'error',
|
|
|
|
|
+ 'yaml/flow-mapping-curly-newline': 'error',
|
|
|
|
|
+ 'yaml/flow-mapping-curly-spacing': 'error',
|
|
|
|
|
+ 'yaml/flow-sequence-bracket-newline': 'error',
|
|
|
|
|
+ 'yaml/flow-sequence-bracket-spacing': 'error',
|
|
|
|
|
+ 'yaml/indent': ['error', 2],
|
|
|
|
|
+ 'yaml/key-spacing': 'error',
|
|
|
|
|
+ 'yaml/no-tab-indent': 'error',
|
|
|
|
|
+ 'yaml/quotes': [
|
|
|
|
|
+ 'error',
|
|
|
|
|
+ {
|
|
|
|
|
+ avoidEscape: true,
|
|
|
|
|
+ prefer: 'single',
|
|
|
|
|
+ },
|
|
|
|
|
+ ],
|
|
|
|
|
+ 'yaml/spaced-comment': 'error',
|
|
|
|
|
+ },
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ files: ['pnpm-workspace.yaml'],
|
|
|
|
|
+ rules: {
|
|
|
|
|
+ 'yaml/sort-keys': [
|
|
|
|
|
+ 'error',
|
|
|
|
|
+ {
|
|
|
|
|
+ order: [
|
|
|
|
|
+ 'packages',
|
|
|
|
|
+ 'overrides',
|
|
|
|
|
+ 'patchedDependencies',
|
|
|
|
|
+ 'hoistPattern',
|
|
|
|
|
+ 'catalog',
|
|
|
|
|
+ 'catalogs',
|
|
|
|
|
+
|
|
|
|
|
+ 'allowedDeprecatedVersions',
|
|
|
|
|
+ 'allowNonAppliedPatches',
|
|
|
|
|
+ 'configDependencies',
|
|
|
|
|
+ 'ignoredBuiltDependencies',
|
|
|
|
|
+ 'ignoredOptionalDependencies',
|
|
|
|
|
+ 'neverBuiltDependencies',
|
|
|
|
|
+ 'onlyBuiltDependencies',
|
|
|
|
|
+ 'onlyBuiltDependenciesFile',
|
|
|
|
|
+ 'packageExtensions',
|
|
|
|
|
+ 'peerDependencyRules',
|
|
|
|
|
+ 'supportedArchitectures',
|
|
|
|
|
+ ],
|
|
|
|
|
+ pathPattern: '^$',
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ order: { type: 'asc' },
|
|
|
|
|
+ pathPattern: '.*',
|
|
|
|
|
+ },
|
|
|
|
|
+ ],
|
|
|
|
|
+ },
|
|
|
|
|
+ },
|
|
|
|
|
+ ];
|
|
|
|
|
+}
|