UNPKG

meocord

Version:

Decorator-based Discord bot framework built on discord.js. Brings NestJS-style controllers, dependency injection, guards, and testing utilities to bot development — with a full CLI and TypeScript-first design.

92 lines (84 loc) 2.14 kB
/** * MeoCord Framework * Copyright (c) 2025 Ukasyah Rahmatullah Zada * SPDX-License-Identifier: MIT */ import { importX } from 'eslint-plugin-import-x' import globals from 'globals' import tsParser from '@typescript-eslint/parser' import eslintTs from 'typescript-eslint' import eslintConfigPrettier from 'eslint-config-prettier' import eslintPluginPrettier from 'eslint-plugin-prettier' const tsFiles = ['**/*.ts'] const languageOptions = { globals: { ...globals.node, ...globals.jest, }, ecmaVersion: 2023, sourceType: 'module', parserOptions: { project: ['./tsconfig.json', './tsconfig.test.json', './tsconfig.eslint.json'], }, } export const typescriptConfig = { files: tsFiles, plugins: { 'import-x': importX, prettier: eslintPluginPrettier, }, languageOptions: { ...languageOptions, parser: tsParser, }, settings: { 'import-x/parsers': { '@typescript-eslint/parser': ['.ts'], }, 'import-x/resolver': { typescript: { alwaysTryTypes: true, project: ['./tsconfig.json', './tsconfig.test.json', './tsconfig.eslint.json'], }, }, }, rules: { 'prettier/prettier': 'error', '@typescript-eslint/no-explicit-any': 'off', '@typescript-eslint/ban-ts-comment': 'off', '@typescript-eslint/no-var-requires': 'warn', '@typescript-eslint/no-unused-expressions': 'off', '@typescript-eslint/no-unused-vars': [ 'error', { vars: 'all', varsIgnorePattern: '^_', args: 'all', argsIgnorePattern: '^_', }, ], }, } const recommendedTypeScriptConfigs = [ ...eslintTs.configs.recommended.map(config => ({ ...config, files: tsFiles, })), ...eslintTs.configs.stylistic.map(config => ({ ...config, files: tsFiles, })), ] const specConfig = { files: ['**/*.spec.ts'], rules: { '@typescript-eslint/no-empty-function': 'off', }, } export default [ { ignores: ['docs/*', 'build/*', 'lib/*', 'dist/*', 'meocord.config.ts', 'jest.config.ts'] }, ...recommendedTypeScriptConfigs, specConfig, eslintConfigPrettier, typescriptConfig, ]