feat: initial schemas-app implementation
- 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>
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
// @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"
|
||||
}],
|
||||
},
|
||||
},
|
||||
)
|
||||
Reference in New Issue
Block a user