- Add TokenCard and CexAnalysisCard components for displaying token data - Implement real-time Redis event streaming for token updates - Add environment-based configuration system for dev/prod Redis servers - Create comprehensive hunting ground dashboard with card management - Add individual and bulk card removal functionality - Implement browser integration for token details viewing - Add timestamp utilities and proper type handling for Redis events - Create production-ready configuration with 154.38.185.112 Redis server - Add comprehensive documentation in README.md and CONTRIBUTORS.md - Restructure project architecture with proper Electron-Vue integration BREAKING CHANGE: Redis configuration now uses environment-based settings
52 lines
1.7 KiB
JavaScript
52 lines
1.7 KiB
JavaScript
// @ts-check
|
|
import stylistic from '@stylistic/eslint-plugin';
|
|
import withNuxt from './.nuxt/eslint.config.mjs';
|
|
|
|
export default withNuxt(
|
|
// Disable legacy stylistic rules
|
|
stylistic.configs['disable-legacy'],
|
|
{
|
|
files: ['**/*.vue', '**/*.js', '**/*.ts', '**/*.mjs'],
|
|
ignores: [
|
|
'node_modules/**',
|
|
'dist/**',
|
|
'.nuxt/**',
|
|
'.output/**',
|
|
'.vite/**',
|
|
'.*/**',
|
|
],
|
|
plugins: {
|
|
'@stylistic': stylistic,
|
|
},
|
|
rules: {
|
|
// Semicolon rules - require semicolons (Rust-style)
|
|
'@stylistic/semi': ['error', 'always'],
|
|
|
|
// Interface and type rules - require semicolons in interfaces
|
|
'@stylistic/member-delimiter-style': ['error', {
|
|
multiline: { delimiter: 'semi', requireLast: true },
|
|
singleline: { delimiter: 'semi', requireLast: false },
|
|
}],
|
|
|
|
// Code quality rules
|
|
'camelcase': ['error', { properties: 'never', ignoreDestructuring: true }],
|
|
'no-console': ['error', { allow: ['info', 'warn', 'error'] }],
|
|
'sort-imports': ['error', { ignoreDeclarationSort: true }],
|
|
|
|
// Nuxt specific rules
|
|
'nuxt/prefer-import-meta': 'error',
|
|
|
|
// Vue specific rules
|
|
'vue/first-attribute-linebreak': ['error', { singleline: 'ignore', multiline: 'ignore' }],
|
|
'vue/no-unused-vars': ['error', {
|
|
ignorePattern: '^_',
|
|
}],
|
|
'vue/max-attributes-per-line': ['error', { singleline: 100 }],
|
|
'vue/singleline-html-element-content-newline': ['off'],
|
|
'vue/no-multiple-template-root': ['off'],
|
|
'vue/html-closing-bracket-spacing': ['error', { selfClosingTag: 'always' }],
|
|
'vue/html-indent': ['error', 2],
|
|
'vue/multiline-html-element-content-newline': ['error', { ignores: [] }],
|
|
},
|
|
},
|
|
);
|