eslint-config-xaxa
Version:
The ultimate ESLint config - successor to Airbnb Config. Built on Anthony Fu's ESLint config, Airbnb, ESLint Stylistic, Perfectionist, React, TypeScript, Astro, JSDocs, Prettier, Node.js, Unicorns, Promises, and more.
41 lines (36 loc) • 1.41 kB
text/typescript
import { ensurePackages, interopDefault, type TypedFlatConfigItem } from '@antfu/eslint-config';
// import { pluginPromise } from '../plugins.ts';
export async function promise(options?: TypedFlatConfigItem['rules']): Promise<TypedFlatConfigItem[]> {
await ensurePackages(['eslint-plugin-promise']);
const pluginPromise = await interopDefault(import('eslint-plugin-promise'));
return [{
name: 'xaxa/promise/rules',
plugins: {
promise: pluginPromise,
},
rules: {
'promise/always-return': 'off',
'promise/avoid-new': 'off',
// These below are to ensure not changes
// inside upstream XO and the plugin:promise/recommended configs
'promise/catch-or-return': 'off',
'promise/no-callback-in-promise': 'off',
'promise/no-native': 'off',
'promise/no-nesting': 'off',
'promise/no-new-statics': 'error',
'promise/no-promise-in-callback': 'off',
'promise/no-return-in-finally': 'error',
// These are the same as in XO CLI, but they are not in the eslint-config-xo
'promise/no-return-wrap': ['error', { allowReject: true }],
'promise/param-names': 'error',
'promise/prefer-await-to-callbacks': 'off',
'promise/prefer-await-to-then': 'off',
'promise/valid-params': 'error',
},
}, {
name: 'xaxa/promise/user-overrides',
rules: {
...(options || {}),
},
}];
}