netx/web
oliver d87bdf4be1 Harden WebCRT reconnect, resource use, and SFTP UX.
Reuse detached sessions on reconnect, mount only the active tab, surface backpressure drops, gate SFTP for unsupported targets, and polish attach replay, find/recording performance, and terminal i18n.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-01 23:50:41 +08:00
..
public Improve topology canvas UX and vendor NE icons. 2026-07-30 02:34:25 +00:00
src Harden WebCRT reconnect, resource use, and SFTP UX. 2026-08-01 23:50:41 +08:00
.gitignore feat: initialize netx ops tool repository 2026-05-03 23:43:21 +08:00
eslint.config.js feat: initialize netx ops tool repository 2026-05-03 23:43:21 +08:00
index.html Unify NetX module pages on a classic slate chrome UI. 2026-08-01 17:47:08 +08:00
package-lock.json Industrialize topology editor and add customizable edge styles. 2026-08-01 12:31:06 +08:00
package.json Industrialize topology editor and add customizable edge styles. 2026-08-01 12:31:06 +08:00
README.md feat: initialize netx ops tool repository 2026-05-03 23:43:21 +08:00
tsconfig.app.json feat: initialize netx ops tool repository 2026-05-03 23:43:21 +08:00
tsconfig.json feat: initialize netx ops tool repository 2026-05-03 23:43:21 +08:00
tsconfig.node.json feat: initialize netx ops tool repository 2026-05-03 23:43:21 +08:00
vite.config.ts fix(webcrt): install websockets and connect WS to API in Vite dev 2026-07-29 17:37:32 +08:00
WEB.md Harden WebCRT interactive sessions for more CRT-like device login. 2026-08-01 19:01:44 +08:00

React + TypeScript + Vite

This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.

Currently, two official plugins are available:

React Compiler

The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see this documentation.

Expanding the ESLint configuration

If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:

export default defineConfig([
  globalIgnores(['dist']),
  {
    files: ['**/*.{ts,tsx}'],
    extends: [
      // Other configs...

      // Remove tseslint.configs.recommended and replace with this
      tseslint.configs.recommendedTypeChecked,
      // Alternatively, use this for stricter rules
      tseslint.configs.strictTypeChecked,
      // Optionally, add this for stylistic rules
      tseslint.configs.stylisticTypeChecked,

      // Other configs...
    ],
    languageOptions: {
      parserOptions: {
        project: ['./tsconfig.node.json', './tsconfig.app.json'],
        tsconfigRootDir: import.meta.dirname,
      },
      // other options...
    },
  },
])

You can also install eslint-plugin-react-x and eslint-plugin-react-dom for React-specific lint rules:

// eslint.config.js
import reactX from 'eslint-plugin-react-x'
import reactDom from 'eslint-plugin-react-dom'

export default defineConfig([
  globalIgnores(['dist']),
  {
    files: ['**/*.{ts,tsx}'],
    extends: [
      // Other configs...
      // Enable lint rules for React
      reactX.configs['recommended-typescript'],
      // Enable lint rules for React DOM
      reactDom.configs.recommended,
    ],
    languageOptions: {
      parserOptions: {
        project: ['./tsconfig.node.json', './tsconfig.app.json'],
        tsconfigRootDir: import.meta.dirname,
      },
      // other options...
    },
  },
])