072e1b10f1
- Add Nuxt 4 application with Vuetify UI framework - Implement GraphQL schema registry management interface - Add Apollo Client integration with Auth0 authentication - Create organization and API key management - Add schema and ref browsing capabilities - Implement organization switcher for multi-org users - Add delete functionality for organizations and API keys - Create Kubernetes deployment descriptors - Add Docker configuration with nginx Features: - Dashboard with organization overview - Schema browsing by ref with supergraph viewing - Ref management with schema details - Settings page for organizations and API keys - User list per organization with provider icons - Admin-only organization creation - Delete confirmations with warnings 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
83 lines
2.4 KiB
JavaScript
83 lines
2.4 KiB
JavaScript
// @ts-check
|
|
import stylistic from '@stylistic/eslint-plugin'
|
|
import parserVue from 'vue-eslint-parser'
|
|
import simpleImportSort from "eslint-plugin-simple-import-sort"
|
|
import withNuxt from './.nuxt/eslint.config.mjs'
|
|
|
|
export default withNuxt(
|
|
// Ignore generated files
|
|
{
|
|
ignores: ['**/app/graphql/generated.ts'],
|
|
},
|
|
{
|
|
files: ['**/*.vue', '**/*.ts', '**/*.js'],
|
|
plugins: {
|
|
'@stylistic': stylistic,
|
|
"simple-import-sort": simpleImportSort,
|
|
},
|
|
languageOptions: {
|
|
parser: parserVue,
|
|
},
|
|
rules: {
|
|
"simple-import-sort/imports": "error",
|
|
"simple-import-sort/exports": "error",
|
|
'@stylistic/no-multiple-empty-lines': 'error',
|
|
'@stylistic/comma-dangle': ['error', {
|
|
arrays: 'always-multiline',
|
|
objects: 'always-multiline',
|
|
imports: 'always-multiline',
|
|
exports: 'never',
|
|
functions: 'always-multiline',
|
|
}],
|
|
'@stylistic/block-spacing': ['error'],
|
|
'@stylistic/object-curly-spacing': ['error', 'always'],
|
|
'@stylistic/indent': ['error', 2],
|
|
'@stylistic/quotes': ['error', 'single'],
|
|
'@stylistic/semi': ['error', 'never'],
|
|
'@stylistic/member-delimiter-style': [
|
|
'error',
|
|
{
|
|
multiline: {
|
|
delimiter: 'none',
|
|
requireLast: true,
|
|
},
|
|
singleline: {
|
|
delimiter: 'semi',
|
|
requireLast: false,
|
|
},
|
|
multilineDetection: 'brackets',
|
|
},
|
|
],
|
|
'@typescript-eslint/no-unused-vars': [
|
|
'error',
|
|
{
|
|
args: 'all',
|
|
argsIgnorePattern: '^_',
|
|
caughtErrors: 'all',
|
|
caughtErrorsIgnorePattern: '^_',
|
|
destructuredArrayIgnorePattern: '^_',
|
|
varsIgnorePattern: '^_',
|
|
ignoreRestSiblings: true,
|
|
},
|
|
],
|
|
// Allow any types for now - can be fixed incrementally
|
|
'@typescript-eslint/no-explicit-any': 'warn',
|
|
// Disable bare strings rule since this app doesn't use i18n yet
|
|
"vue/no-bare-strings-in-template": "off",
|
|
"vue/no-useless-v-bind": ["error", {
|
|
"ignoreIncludesComment": false,
|
|
"ignoreStringEscape": false
|
|
}],
|
|
"vue/no-useless-mustaches": ["error", {
|
|
"ignoreIncludesComment": false,
|
|
"ignoreStringEscape": false
|
|
}],
|
|
"vue/html-closing-bracket-spacing": ["error", {
|
|
"startTag": "never",
|
|
"endTag": "never",
|
|
"selfClosingTag": "always"
|
|
}],
|
|
},
|
|
},
|
|
)
|