From 4e7883e3d82d86336384e52523aec17bb88112fa Mon Sep 17 00:00:00 2001 From: Evan Sutherland Date: Mon, 23 Mar 2026 10:16:06 -0500 Subject: [PATCH] POC vite+ migration --- .vite-hooks/pre-commit | 1 + AGENTS.md | 76 + eslint.config.js | 19 - oxlintrc.json | 681 ++++ package-lock.json | 2816 ++++++++++------- package.json | 67 +- src/.DS_Store | Bin 0 -> 6148 bytes src/components/routerLink.browser.spec.ts | 1397 ++++---- src/components/routerLink.ts | 229 +- src/components/routerView.browser.spec.ts | 784 ++--- src/components/routerView.spec.ts | 40 +- src/components/routerView.ts | 151 +- .../useQueryValue.browser.spec.ts | 282 +- src/compositions/useQueryValue.spec-d.ts | 62 +- src/compositions/useRoute.browser.spec.ts | 128 +- src/compositions/useRoute.spec-d.ts | 166 +- src/guards/routes.spec-d.ts | 100 +- src/services/arrayOf.spec.ts | 54 +- src/services/combineHash.spec.ts | 60 +- src/services/combineMeta.spec.ts | 44 +- src/services/combinePath.spec-d.ts | 114 +- src/services/combinePath.spec.ts | 60 +- src/services/combineQuery.spec.ts | 60 +- src/services/combineState.spec.ts | 30 +- src/services/combineUrl.spec.ts | 64 +- src/services/component.browser.spec.ts | 151 +- src/services/createExternalRoute.spec.ts | 82 +- src/services/createIsExternal.spec.ts | 46 +- src/services/createResolvedRoute.spec.ts | 96 +- src/services/createRoute.spec-d.ts | 1292 ++++---- src/services/createRoute.spec.ts | 475 +-- src/services/createRouteRedirects.spec.ts | 184 +- src/services/createRouter.browser.spec.ts | 124 +- src/services/createRouter.spec-d.ts | 382 +-- src/services/createRouter.spec.ts | 1275 ++++---- src/services/createRouter.ts | 450 +-- .../createRouterHistory.browser.spec.ts | 46 +- .../createRouterPlugin.browser.spec.ts | 194 +- src/services/createRouterPlugin.spec-d.ts | 60 +- src/services/createRouterRoute.spec.ts | 76 +- src/services/createUrl.spec.ts | 1117 +++---- src/services/getInitialUrl.browser.spec.ts | 28 +- src/services/getInitialUrl.spec.ts | 12 +- src/services/getMatchesForUrl.spec.ts | 194 +- src/services/getRouteHooks.spec.ts | 80 +- src/services/getRoutesForRouter.spec.ts | 160 +- src/services/getRoutesForRouter.ts | 99 +- src/services/history.browser.spec.ts | 214 +- src/services/history.ts | 531 ++-- src/services/hooks.browser.spec.ts | 509 +-- src/services/hooks.spec.ts | 316 +- src/services/insertBaseRoute.spec.ts | 34 +- src/services/params.spec.ts | 338 +- src/services/paramsFinder.spec.ts | 127 +- src/services/queryParamFilter.spec.ts | 52 +- src/services/routeRegex.spec.ts | 329 +- src/services/state.spec.ts | 140 +- src/services/tupleOf.spec.ts | 73 +- src/services/unionOf.spec.ts | 126 +- src/services/urlParser.spec.ts | 245 +- src/services/valibot.spec-d.ts | 32 +- src/services/valibot.spec.ts | 96 +- src/services/valibot.ts | 220 +- src/services/withParams.spec-d.ts | 247 +- src/services/withParams.spec.ts | 226 +- src/services/zod.spec-d.ts | 32 +- src/services/zod.spec.ts | 174 +- src/services/zod.ts | 232 +- src/tests/hooks.spec.ts | 85 +- src/tests/routeProps.browser.spec.ts | 156 +- src/tests/routeProps.spec.ts | 88 +- src/types/redirects.spec-d.ts | 104 +- src/types/register.spec.ts | 12 +- src/types/resolved.spec-d.ts | 40 +- src/types/route.spec-d.ts | 79 +- src/types/routeTitle.browser.spec.ts | 194 +- src/types/routeWithParams.spec-d.ts | 30 +- src/types/routesMap.spec-ts.ts | 62 +- src/utilities/checkDuplicateNames.spec.ts | 68 +- src/utilities/checkDuplicateParams.spec.ts | 92 +- src/utilities/components.spec.ts | 16 +- src/utilities/guards.spec.ts | 94 +- src/utilities/isBrowser.browser.spec.ts | 10 +- src/utilities/isBrowser.spec.ts | 10 +- src/utilities/prefetch.spec.ts | 62 +- src/utilities/trailingSlashes.spec.ts | 142 +- src/utilities/urlSearchParams.spec.ts | 37 +- vite.config.js | 51 +- 88 files changed, 10915 insertions(+), 8918 deletions(-) create mode 100755 .vite-hooks/pre-commit create mode 100644 AGENTS.md delete mode 100644 eslint.config.js create mode 100644 oxlintrc.json create mode 100644 src/.DS_Store diff --git a/.vite-hooks/pre-commit b/.vite-hooks/pre-commit new file mode 100755 index 00000000..85fb65b4 --- /dev/null +++ b/.vite-hooks/pre-commit @@ -0,0 +1 @@ +vp staged diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 00000000..f190a523 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,76 @@ + + +# Using Vite+, the Unified Toolchain for the Web + +This project is using Vite+, a unified toolchain built on top of Vite, Rolldown, Vitest, tsdown, Oxlint, Oxfmt, and Vite Task. Vite+ wraps runtime management, package management, and frontend tooling in a single global CLI called `vp`. Vite+ is distinct from Vite, but it invokes Vite through `vp dev` and `vp build`. + +## Vite+ Workflow + +`vp` is a global binary that handles the full development lifecycle. Run `vp help` to print a list of commands and `vp --help` for information about a specific command. + +### Start + +- create - Create a new project from a template +- migrate - Migrate an existing project to Vite+ +- config - Configure hooks and agent integration +- staged - Run linters on staged files +- install (`i`) - Install dependencies +- env - Manage Node.js versions + +### Develop + +- dev - Run the development server +- check - Run format, lint, and TypeScript type checks +- lint - Lint code +- fmt - Format code +- test - Run tests + +### Execute + +- run - Run monorepo tasks +- exec - Execute a command from local `node_modules/.bin` +- dlx - Execute a package binary without installing it as a dependency +- cache - Manage the task cache + +### Build + +- build - Build for production +- pack - Build libraries +- preview - Preview production build + +### Manage Dependencies + +Vite+ automatically detects and wraps the underlying package manager such as pnpm, npm, or Yarn through the `packageManager` field in `package.json` or package manager-specific lockfiles. + +- add - Add packages to dependencies +- remove (`rm`, `un`, `uninstall`) - Remove packages from dependencies +- update (`up`) - Update packages to latest versions +- dedupe - Deduplicate dependencies +- outdated - Check for outdated packages +- list (`ls`) - List installed packages +- why (`explain`) - Show why a package is installed +- info (`view`, `show`) - View package information from the registry +- link (`ln`) / unlink - Manage local package links +- pm - Forward a command to the package manager + +### Maintain + +- upgrade - Update `vp` itself to the latest version + +These commands map to their corresponding tools. For example, `vp dev --port 3000` runs Vite's dev server and works the same as Vite. `vp test` runs JavaScript tests through the bundled Vitest. The version of all tools can be checked using `vp --version`. This is useful when researching documentation, features, and bugs. + +## Common Pitfalls + +- **Using the package manager directly:** Do not use pnpm, npm, or Yarn directly. Vite+ can handle all package manager operations. +- **Always use Vite commands to run tools:** Don't attempt to run `vp vitest` or `vp oxlint`. They do not exist. Use `vp test` and `vp lint` instead. +- **Running scripts:** Vite+ built-in commands (`vp dev`, `vp build`, `vp test`, etc.) always run the Vite+ built-in tool, not any `package.json` script of the same name. To run a custom script that shares a name with a built-in command, use `vp run