mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-09 08:03:30 +01:00
refactor: using eslint-config-neon on mainlib (#10876)
* refactor: using eslint-config-neon on mainlib * fix: lint * fix: lint * fix: the way we lint * chore: lint some more * fix: more lint changes * fix: type tests * chore: port eslint rule * refactor: lintstaged doesn't need this * fix: eslint was a bit too eager * fix: forgot Client * Apply suggestions from code review Co-authored-by: Almeida <github@almeidx.dev> * chore: more lint fixes * fix: remove useless Boolean() * fix: get docs back * fix: snowflake docs * refactor: don't use typescript lint rules * fix: code review * fix: tidy up disabled rules * chore: code review * chore: code review * chore: code review * fix: consistent spacing in typings * fix: tests * fix: unsort ErrorCodes * chore: get comments back * Update packages/discord.js/src/client/websocket/handlers/THREAD_LIST_SYNC.js Co-authored-by: Jiralite <33201955+Jiralite@users.noreply.github.com> * fix: remove unused parameter * fix: merge messed up types * fix: more type mess from merge * fix: generate script for ActionsManager * fix: code review * Update packages/discord.js/src/structures/MessageMentions.js Co-authored-by: Jiralite <33201955+Jiralite@users.noreply.github.com> * Update packages/discord.js/src/structures/Presence.js Co-authored-by: Jiralite <33201955+Jiralite@users.noreply.github.com> * fix: replace is faster, unicorn is wrong * fix: consistency * fix: delete obsolete file * fix: minor nit in test file --------- Co-authored-by: Almeida <github@almeidx.dev> Co-authored-by: Jiralite <33201955+Jiralite@users.noreply.github.com>
This commit is contained in:
@@ -21,6 +21,7 @@ const nodeRuleset = merge(...node, { files: [`**/*${commonFiles}`] });
|
||||
|
||||
const typeScriptRuleset = merge(...typescript, {
|
||||
files: [`**/*${commonFiles}`],
|
||||
ignores: [`packages/discord.js/**/*.{js,mjs,cjs}`],
|
||||
languageOptions: {
|
||||
parserOptions: {
|
||||
warnOnUnsupportedTypeScriptVersion: false,
|
||||
@@ -88,7 +89,6 @@ export default tseslint.config(
|
||||
'**/storybook-static/',
|
||||
'**/.next/',
|
||||
'**/shiki.bundle.ts',
|
||||
'packages/discord.js/',
|
||||
],
|
||||
},
|
||||
commonRuleset,
|
||||
@@ -137,6 +137,101 @@ export default tseslint.config(
|
||||
'@typescript-eslint/no-empty-object-type': 0,
|
||||
},
|
||||
},
|
||||
{
|
||||
files: [`packages/discord.js/**/*.{js,cjs}`],
|
||||
languageOptions: {
|
||||
sourceType: 'commonjs',
|
||||
parserOptions: {
|
||||
ecmaFeatures: {
|
||||
impliedStrict: false,
|
||||
},
|
||||
},
|
||||
},
|
||||
settings: {
|
||||
jsdoc: {
|
||||
tagNamePreference: {
|
||||
augments: 'extends',
|
||||
fires: 'emits',
|
||||
function: 'method',
|
||||
},
|
||||
preferredTypes: {
|
||||
object: 'Object',
|
||||
null: 'void',
|
||||
},
|
||||
},
|
||||
},
|
||||
rules: {
|
||||
'jsdoc/no-undefined-types': 0,
|
||||
'jsdoc/no-defaults': 0,
|
||||
'no-eq-null': 0,
|
||||
strict: ['error', 'global'],
|
||||
|
||||
'no-restricted-syntax': [
|
||||
'error',
|
||||
{
|
||||
selector: "AssignmentExpression[left.object.name='module'][left.property.name='exports']",
|
||||
message: 'Use named exports instead of module.exports',
|
||||
},
|
||||
{
|
||||
selector:
|
||||
"VariableDeclarator[init.callee.name='require'][init.arguments.0.value=/^\\./]:not([id.type='ObjectPattern'])",
|
||||
message: 'Use object destructuring when requiring local modules',
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
files: [`packages/discord.js/src/client/websocket/handlers/*.js`],
|
||||
rules: {
|
||||
'no-restricted-syntax': [
|
||||
'error',
|
||||
{
|
||||
selector:
|
||||
"VariableDeclarator[init.callee.name='require'][init.arguments.0.value=/^\\./]:not([id.type='ObjectPattern'])",
|
||||
message: 'Use object destructuring when requiring local modules',
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
files: [`packages/discord.js/typings/*{d.ts,test-d.ts,d.mts,test-d.mts}`],
|
||||
rules: {
|
||||
'@typescript-eslint/no-unsafe-declaration-merging': 0,
|
||||
'@typescript-eslint/no-empty-object-type': 0,
|
||||
'@typescript-eslint/no-use-before-define': 0,
|
||||
'@typescript-eslint/consistent-type-imports': 0,
|
||||
'@stylistic/ts/lines-between-class-members': 0,
|
||||
'no-restricted-syntax': [
|
||||
2,
|
||||
{
|
||||
selector:
|
||||
'MethodDefinition[key.name!=on][key.name!=once][key.name!=off] > TSEmptyBodyFunctionExpression > Identifier :not(TSTypeOperator[operator=readonly]) > TSArrayType',
|
||||
message: 'Array parameters on methods must be readonly',
|
||||
},
|
||||
{
|
||||
selector:
|
||||
'MethodDefinition > TSEmptyBodyFunctionExpression > Identifier TSTypeReference > Identifier[name=Collection]',
|
||||
message: 'Parameters of type Collection on methods must use ReadonlyCollection',
|
||||
},
|
||||
{
|
||||
selector: 'TSDeclareFunction > Identifier :not(TSTypeOperator[operator=readonly]) > TSArrayType',
|
||||
message: 'Array parameters on functions must be readonly',
|
||||
},
|
||||
{
|
||||
selector: 'TSDeclareFunction Identifier TSTypeReference > Identifier[name=Collection]',
|
||||
message: 'Parameters of type Collection on functions must use ReadonlyCollection',
|
||||
},
|
||||
{
|
||||
selector: 'TSInterfaceDeclaration TSPropertySignature :not(TSTypeOperator[operator=readonly]) > TSArrayType',
|
||||
message: 'Array properties on interfaces must be readonly',
|
||||
},
|
||||
{
|
||||
selector: 'TSInterfaceDeclaration TSPropertySignature TSTypeReference > Identifier[name=Collection]',
|
||||
message: 'Interface properties of type Collection must use ReadonlyCollection',
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
files: [`packages/rest/**/*${commonFiles}`],
|
||||
rules: {
|
||||
|
||||
Reference in New Issue
Block a user