mirror of
https://github.com/unraid/api.git
synced 2026-05-14 11:59:11 -05:00
c132f28281
separates Unraid Connect from the API ## Summary by CodeRabbit - **New Features** - Introduced a unified, JSON-schema-based settings system for API configuration and plugin settings, accessible via new GraphQL queries and mutations. - Added modular NestJS plugin architecture for Unraid Connect, including new modules for cloud, remote access, and system/network management. - Added granular connection and remote access state tracking, with new GraphQL types and resolvers for cloud and connection status. - Implemented event-driven and service-based management for SSO users, API keys, and dynamic remote access. - Enhanced UI components and queries to support unified settings and restart detection. - **Improvements** - Refactored configuration and state management to use service-based patterns, replacing direct store access and Redux logic. - Migrated legacy config files to new JSON formats with validation and persistence helpers. - Centralized global dependencies and shared services for plugins and CLI modules. - Improved logging, error handling, and lifecycle management for connections and background jobs. - Updated and expanded documentation for plugin development and settings management. - **Bug Fixes** - Improved handling of missing config files and ensured safe persistence. - Enhanced error reporting and validation in remote access and connection services. - **Removals** - Removed deprecated Redux slices, listeners, and legacy cloud/remote access logic. - Deleted obsolete test files, scripts, and unused code related to the old state/store approach. - **Tests** - Added new unit tests for settings merging, URL resolution, and cloud connectivity checks. - **Style** - Applied consistent formatting, import reorganization, and code style improvements across modules. - **Chores** - Updated build scripts, Dockerfiles, and development environment setup to support new dependencies and workflows. - Expanded .gitignore and configuration files for improved build artifact management.
35 lines
2.3 KiB
JSON
35 lines
2.3 KiB
JSON
{
|
|
"include": ["src/**/*", ".eslintrc.ts", "vite.config.ts", "unraid-api-cli.js"],
|
|
"exclude": ["node_modules", "vite.config.ts", ".eslintrc.ts"],
|
|
"compilerOptions": {
|
|
"sourceMap": true,
|
|
"inlineSources": true,
|
|
"experimentalDecorators": true,
|
|
"emitDecoratorMetadata": true,
|
|
"paths": {
|
|
"@app/*": ["./src/*"]
|
|
},
|
|
"skipLibCheck": true,
|
|
"target": "ESNext" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */,
|
|
"module": "NodeNext" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */,
|
|
"moduleResolution": "nodenext" /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */,
|
|
"allowJs": false /* Allow javascript files to be compiled. */,
|
|
"outDir": "./dist" /* Redirect output structure to the directory. */,
|
|
"rootDir": "./src" /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */,
|
|
"removeComments": true /* Do not emit comments to output. */,
|
|
"strict": true /* Enable all strict type-checking options. */,
|
|
"noImplicitAny": false /* Raise error on expressions and declarations with an implied 'any' type. */,
|
|
"strictNullChecks": true /* Enable strict null checks. */,
|
|
"noUnusedLocals": false /* Report errors on unused locals. */,
|
|
"noUnusedParameters": false /* Report errors on unused parameters. */,
|
|
"noImplicitReturns": true /* Report error when not all code paths in function return a value. */,
|
|
"noFallthroughCasesInSwitch": true /* Report errors for fallthrough cases in switch statement. */,
|
|
"baseUrl": "./" /* Base directory to resolve non-absolute module names. */,
|
|
"typeRoots": ["node_modules/@types", "node_modules", "./src/types/"],
|
|
"types": ["node"],
|
|
"esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */,
|
|
"forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */,
|
|
"resolveJsonModule": true
|
|
}
|
|
}
|