From 1d87a783939f1bc6a2ddec6d483b9c0965df4cf3 Mon Sep 17 00:00:00 2001 From: Valerio Ageno Date: Sat, 25 May 2024 14:56:55 +0200 Subject: [PATCH] chore: merge packages into tuono --- packages/tuono-router/package.json | 44 --------------- .../tests/components/RouterProvider.test.tsx | 34 ------------ packages/tuono-router/tests/route.test.ts | 28 ---------- packages/tuono-router/tsconfig.json | 7 --- packages/tuono-router/vite.config.ts | 20 ------- .../tuono-routes-generator/.prettierignore | 1 - packages/tuono-routes-generator/README.md | 48 ---------------- packages/tuono-routes-generator/package.json | 41 -------------- .../tests/generator.test.ts | 41 -------------- .../multi-level/routeTree.expected.ts | 48 ---------------- .../generator/multi-level/routes/__root.tsx | 1 - .../generator/multi-level/routes/about.tsx | 5 -- .../generator/multi-level/routes/index.tsx | 1 - .../multi-level/routes/posts/index.tsx | 1 - .../multi-level/routes/posts/post-slug.tsx | 1 - .../single-level/routeTree.expected.ts | 29 ---------- .../generator/single-level/routes/__root.tsx | 1 - .../generator/single-level/routes/about.tsx | 1 - .../generator/single-level/routes/index.tsx | 1 - .../with-rust-handler/routeTree.expected.ts | 30 ---------- .../with-rust-handler/routes/__root.tsx | 1 - .../with-rust-handler/routes/about.tsx | 1 - .../with-rust-handler/routes/index.rs | 0 .../with-rust-handler/routes/index.tsx | 1 - packages/tuono-routes-generator/tsconfig.json | 4 -- .../tuono-routes-generator/vite.config.ts | 12 ---- packages/tuono-vite/.prettierignore | 2 - packages/tuono-vite/README.md | 5 -- packages/tuono-vite/package.json | 55 ------------------- packages/tuono-vite/tests/index.test.ts | 33 ----------- packages/tuono-vite/tests/shared/imported.tsx | 3 - .../snapshots/default-exported?split.tsx | 3 - .../tests/snapshots/function-export?split.tsx | 4 -- .../tests/snapshots/imported?split.tsx | 2 - .../tests/test-files/default-exported.tsx | 5 -- .../tests/test-files/function-export.tsx | 7 --- .../tuono-vite/tests/test-files/imported.tsx | 4 -- packages/tuono-vite/tsconfig.json | 8 --- packages/tuono-vite/vite.config.ts | 13 ----- packages/tuono/README.md | 1 + packages/tuono/package.json | 24 +++++++- packages/tuono/src/build/index.ts | 2 +- .../src/build/routes-generator}/generator.ts | 0 .../src/build/routes-generator}/index.ts | 0 .../src/build/routes-generator}/types.ts | 0 .../src/build/routes-generator}/utils.ts | 0 .../src/build/tuono-vite-plugin}/compiler.ts | 0 .../src/build/tuono-vite-plugin}/constants.ts | 0 .../eliminateUnreferencedIdentifiers.ts | 0 .../src/build/tuono-vite-plugin}/index.ts | 2 +- packages/tuono/src/index.ts | 2 +- .../src/router}/components/Link.tsx | 0 .../src/router}/components/Matches.tsx | 0 .../src/router}/components/NotFound.tsx | 0 .../src/router}/components/RouteMatch.tsx | 0 .../src/router}/components/RouterContext.tsx | 0 .../src/router}/components/RouterProvider.tsx | 0 .../src/router}/hooks/useRouter.tsx | 0 .../src/router}/hooks/useRouterStore.tsx | 0 .../src/router}/hooks/useServerSideProps.tsx | 0 .../src => tuono/src/router}/index.tsx | 1 + .../src => tuono/src/router}/route.ts | 0 .../src => tuono/src/router}/router.ts | 0 .../src => tuono/src/router}/types.ts | 0 .../src => tuono/src/router}/utils.ts | 0 65 files changed, 26 insertions(+), 552 deletions(-) delete mode 100644 packages/tuono-router/package.json delete mode 100644 packages/tuono-router/tests/components/RouterProvider.test.tsx delete mode 100644 packages/tuono-router/tests/route.test.ts delete mode 100644 packages/tuono-router/tsconfig.json delete mode 100644 packages/tuono-router/vite.config.ts delete mode 100644 packages/tuono-routes-generator/.prettierignore delete mode 100644 packages/tuono-routes-generator/README.md delete mode 100644 packages/tuono-routes-generator/package.json delete mode 100644 packages/tuono-routes-generator/tests/generator.test.ts delete mode 100644 packages/tuono-routes-generator/tests/generator/multi-level/routeTree.expected.ts delete mode 100644 packages/tuono-routes-generator/tests/generator/multi-level/routes/__root.tsx delete mode 100644 packages/tuono-routes-generator/tests/generator/multi-level/routes/about.tsx delete mode 100644 packages/tuono-routes-generator/tests/generator/multi-level/routes/index.tsx delete mode 100644 packages/tuono-routes-generator/tests/generator/multi-level/routes/posts/index.tsx delete mode 100644 packages/tuono-routes-generator/tests/generator/multi-level/routes/posts/post-slug.tsx delete mode 100644 packages/tuono-routes-generator/tests/generator/single-level/routeTree.expected.ts delete mode 100644 packages/tuono-routes-generator/tests/generator/single-level/routes/__root.tsx delete mode 100644 packages/tuono-routes-generator/tests/generator/single-level/routes/about.tsx delete mode 100644 packages/tuono-routes-generator/tests/generator/single-level/routes/index.tsx delete mode 100644 packages/tuono-routes-generator/tests/generator/with-rust-handler/routeTree.expected.ts delete mode 100644 packages/tuono-routes-generator/tests/generator/with-rust-handler/routes/__root.tsx delete mode 100644 packages/tuono-routes-generator/tests/generator/with-rust-handler/routes/about.tsx delete mode 100644 packages/tuono-routes-generator/tests/generator/with-rust-handler/routes/index.rs delete mode 100644 packages/tuono-routes-generator/tests/generator/with-rust-handler/routes/index.tsx delete mode 100644 packages/tuono-routes-generator/tsconfig.json delete mode 100644 packages/tuono-routes-generator/vite.config.ts delete mode 100644 packages/tuono-vite/.prettierignore delete mode 100644 packages/tuono-vite/README.md delete mode 100644 packages/tuono-vite/package.json delete mode 100644 packages/tuono-vite/tests/index.test.ts delete mode 100644 packages/tuono-vite/tests/shared/imported.tsx delete mode 100644 packages/tuono-vite/tests/snapshots/default-exported?split.tsx delete mode 100644 packages/tuono-vite/tests/snapshots/function-export?split.tsx delete mode 100644 packages/tuono-vite/tests/snapshots/imported?split.tsx delete mode 100644 packages/tuono-vite/tests/test-files/default-exported.tsx delete mode 100644 packages/tuono-vite/tests/test-files/function-export.tsx delete mode 100644 packages/tuono-vite/tests/test-files/imported.tsx delete mode 100644 packages/tuono-vite/tsconfig.json delete mode 100644 packages/tuono-vite/vite.config.ts create mode 100644 packages/tuono/README.md rename packages/{tuono-routes-generator/src => tuono/src/build/routes-generator}/generator.ts (100%) rename packages/{tuono-routes-generator/src => tuono/src/build/routes-generator}/index.ts (100%) rename packages/{tuono-routes-generator/src => tuono/src/build/routes-generator}/types.ts (100%) rename packages/{tuono-routes-generator/src => tuono/src/build/routes-generator}/utils.ts (100%) rename packages/{tuono-vite/src => tuono/src/build/tuono-vite-plugin}/compiler.ts (100%) rename packages/{tuono-vite/src => tuono/src/build/tuono-vite-plugin}/constants.ts (100%) rename packages/{tuono-vite/src => tuono/src/build/tuono-vite-plugin}/eliminateUnreferencedIdentifiers.ts (100%) rename packages/{tuono-vite/src => tuono/src/build/tuono-vite-plugin}/index.ts (98%) rename packages/{tuono-router/src => tuono/src/router}/components/Link.tsx (100%) rename packages/{tuono-router/src => tuono/src/router}/components/Matches.tsx (100%) rename packages/{tuono-router/src => tuono/src/router}/components/NotFound.tsx (100%) rename packages/{tuono-router/src => tuono/src/router}/components/RouteMatch.tsx (100%) rename packages/{tuono-router/src => tuono/src/router}/components/RouterContext.tsx (100%) rename packages/{tuono-router/src => tuono/src/router}/components/RouterProvider.tsx (100%) rename packages/{tuono-router/src => tuono/src/router}/hooks/useRouter.tsx (100%) rename packages/{tuono-router/src => tuono/src/router}/hooks/useRouterStore.tsx (100%) rename packages/{tuono-router/src => tuono/src/router}/hooks/useServerSideProps.tsx (100%) rename packages/{tuono-router/src => tuono/src/router}/index.tsx (99%) rename packages/{tuono-router/src => tuono/src/router}/route.ts (100%) rename packages/{tuono-router/src => tuono/src/router}/router.ts (100%) rename packages/{tuono-router/src => tuono/src/router}/types.ts (100%) rename packages/{tuono-router/src => tuono/src/router}/utils.ts (100%) diff --git a/packages/tuono-router/package.json b/packages/tuono-router/package.json deleted file mode 100644 index 8a2010ef..00000000 --- a/packages/tuono-router/package.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "tuono-router", - "version": "0.0.1", - "description": "", - "exports": { - ".": { - "import": { - "types": "./dist/esm/index.d.ts", - "default": "./dist/esm/index.js" - }, - "require": { - "types": "./dist/cjs/index.d.cts", - "default": "./dist/cjs/index.cjs" - } - }, - "./package.json": "./package.json" - }, - "sideEffects": false, - "scripts": { - "dev": "vite build --watch", - "build": "vite build", - "lint": "eslint --ext .ts,.tsx ./src -c ../../.eslintrc", - "format": "prettier -u --write '**/*'", - "test": "vitest --watch=false", - "types": "tsc --noEmit" - }, - "peerDependencies": { - "react": ">=16.3.0", - "react-dom": ">=16.3.0" - }, - "type": "module", - "types": "dist/esm/index.d.ts", - "main": "dist/cjs/index.cjs", - "module": "dist/esm/index.js", - "keywords": [], - "author": "", - "license": "MIT", - "devDependencies": { - "jsdom": "^24.0.0" - }, - "dependencies": { - "zustand": "4.4.7" - } -} diff --git a/packages/tuono-router/tests/components/RouterProvider.test.tsx b/packages/tuono-router/tests/components/RouterProvider.test.tsx deleted file mode 100644 index 27e7c72e..00000000 --- a/packages/tuono-router/tests/components/RouterProvider.test.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import { expectTypeOf, test } from 'vitest' -import { - RouterProvider, - createRootRoute, - createRoute, - createRouter, -} from '../../src' - -const rootRoute = createRootRoute() - -const indexRoute = createRoute({ - getParentRoute: () => rootRoute, - path: '/', -}) - -const invoicesRoute = createRoute({ - getParentRoute: () => rootRoute, - path: '/invoices', -}) - -const routeTree = rootRoute.addChildren([invoicesRoute, indexRoute]) - -const defaultRouter = createRouter({ - routeTree, -}) - -type DefaultRouter = typeof defaultRouter - -test('can pass default router to the provider', () => { - expectTypeOf(RouterProvider).parameter(0).toMatchTypeOf<{ - router: DefaultRouter - routeTree?: DefaultRouter['routeTree'] - }>() -}) diff --git a/packages/tuono-router/tests/route.test.ts b/packages/tuono-router/tests/route.test.ts deleted file mode 100644 index 5284e038..00000000 --- a/packages/tuono-router/tests/route.test.ts +++ /dev/null @@ -1,28 +0,0 @@ -/* eslint-disable */ -import { describe, it, expect } from 'vitest' -import { getRouteApi, createRoute } from '../src' - -describe('getRouteApi', () => { - it('should have the useRouteContext hook', () => { - const api = getRouteApi('foo') - expect(api.useRouteContext).toBeDefined() - }) - - it('should have the useParams hook', () => { - const api = getRouteApi('foo') - expect(api.useParams).toBeDefined() - }) -}) - -describe('createRoute has the same hooks as getRouteApi', () => { - const routeApi = getRouteApi('foo') - const hookNames = Object.keys(routeApi).filter((key) => key.startsWith('use')) - const route = createRoute({} as any) - - it.each(hookNames.map((name) => [name]))( - 'should have the "%s" hook defined', - (hookName) => { - expect(route[hookName as keyof typeof route]).toBeDefined() - }, - ) -}) diff --git a/packages/tuono-router/tsconfig.json b/packages/tuono-router/tsconfig.json deleted file mode 100644 index eae0e083..00000000 --- a/packages/tuono-router/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "jsx": "react-jsx", - }, - "include": ["src", "tests", "vite.config.ts"], -} diff --git a/packages/tuono-router/vite.config.ts b/packages/tuono-router/vite.config.ts deleted file mode 100644 index 1338feba..00000000 --- a/packages/tuono-router/vite.config.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { defineConfig, mergeConfig } from 'vitest/config' -import { tanstackBuildConfig } from '@tanstack/config/build' -import react from '@vitejs/plugin-react' - -const config = defineConfig({ - plugins: [react()], - test: { - name: 'react-router', - watch: false, - environment: 'jsdom', - }, -}) - -export default mergeConfig( - config, - tanstackBuildConfig({ - entry: './src/index.tsx', - srcDir: './src', - }), -) diff --git a/packages/tuono-routes-generator/.prettierignore b/packages/tuono-routes-generator/.prettierignore deleted file mode 100644 index 849ddff3..00000000 --- a/packages/tuono-routes-generator/.prettierignore +++ /dev/null @@ -1 +0,0 @@ -dist/ diff --git a/packages/tuono-routes-generator/README.md b/packages/tuono-routes-generator/README.md deleted file mode 100644 index b34f990b..00000000 --- a/packages/tuono-routes-generator/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# Router generator - -This package handle the creation of the routes. -Basically collects and manages them in a single entry point file. - -## Generated route file - -Currently the generator file is very similar to `@tanstack/router` one but since it does not need the same -configurability is up to strong updates. - -```tsx -// This file is auto-generated by Tuono - -import { Route as rootRoute } from './routes/__root' -import { Route as AboutImport } from './routes/about' -import { Route as IndexImport } from './routes/index' - -// Create/Update Routes - -const AboutRoute = AboutImport.update({ - path: '/about', - getParentRoute: () => rootRoute, -} as any) - -const IndexRoute = IndexImport.update({ - path: '/', - getParentRoute: () => rootRoute, -} as any) - -// Populate the FileRoutesByPath interface - -declare module '@tanstack/react-router' { - interface FileRoutesByPath { - '/': { - preLoaderRoute: typeof IndexImport - parentRoute: typeof rootRoute - } - '/about': { - preLoaderRoute: typeof AboutImport - parentRoute: typeof rootRoute - } - } -} - -// Create and export the route tree - -export const routeTree = rootRoute.addChildren([IndexRoute, AboutRoute]) -``` diff --git a/packages/tuono-routes-generator/package.json b/packages/tuono-routes-generator/package.json deleted file mode 100644 index 9c742167..00000000 --- a/packages/tuono-routes-generator/package.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "tuono-routes-generator", - "version": "0.1.0", - "description": "", - "scripts": { - "dev": "vite build --watch", - "build": "vite build", - "lint": "eslint --ext .ts,.tsx ./src -c ../../.eslintrc", - "format": "prettier -u --write '**/*'", - "test": "vitest --watch=false", - "types": "tsc --noEmit" - }, - "keywords": [], - "exports": { - ".": { - "import": { - "types": "./dist/esm/index.d.ts", - "default": "./dist/esm/index.js" - }, - "require": { - "types": "./dist/cjs/index.d.cts", - "default": "./dist/cjs/index.cjs" - } - }, - "./package.json": "./package.json" - }, - "sideEffects": false, - "files": [ - "dist", - "src" - ], - "dependencies": { - "prettier": "^3.2.4" - }, - "type": "module", - "types": "dist/esm/index.d.ts", - "main": "dist/cjs/index.cjs", - "module": "dist/esm/index.js", - "author": "Valerio Ageno", - "license": "MIT" -} diff --git a/packages/tuono-routes-generator/tests/generator.test.ts b/packages/tuono-routes-generator/tests/generator.test.ts deleted file mode 100644 index 914956d1..00000000 --- a/packages/tuono-routes-generator/tests/generator.test.ts +++ /dev/null @@ -1,41 +0,0 @@ -import fs from 'fs/promises' -import { describe, it, expect } from 'vitest' -import { routeGenerator } from '../src' - -function makeFolderDir(folder: string) { - return process.cwd() + `/tests/generator/${folder}` -} - -async function getRouteTreeFileText(folder: string) { - const dir = makeFolderDir(folder) - return await fs.readFile(dir + '/routeTree.gen.ts', 'utf-8') -} - -async function getExpectedRouteTreeFileText(folder: string) { - const dir = makeFolderDir(folder) - const location = dir + '/routeTree.expected.ts' - return await fs.readFile(location, 'utf-8') -} - -describe('generator works', async () => { - const folderNames = await fs.readdir(process.cwd() + '/tests/generator') - - it.each(folderNames.map((folder) => [folder]))( - 'should wire-up the routes for a "%s" tree', - async (folderName) => { - const currentFolder = `${process.cwd()}/tests/generator/${folderName}` - - await routeGenerator({ - folderName: `${currentFolder}/routes`, - generatedRouteTree: `${currentFolder}/routeTree.gen.ts`, - }) - - const [expectedRouteTree, generatedRouteTree] = await Promise.all([ - getExpectedRouteTreeFileText(folderName), - getRouteTreeFileText(folderName), - ]) - - expect(generatedRouteTree).equal(expectedRouteTree) - }, - ) -}) diff --git a/packages/tuono-routes-generator/tests/generator/multi-level/routeTree.expected.ts b/packages/tuono-routes-generator/tests/generator/multi-level/routeTree.expected.ts deleted file mode 100644 index 1b674805..00000000 --- a/packages/tuono-routes-generator/tests/generator/multi-level/routeTree.expected.ts +++ /dev/null @@ -1,48 +0,0 @@ -// This file is auto-generated by Tuono - -import { createRoute } from 'tuono' - -import RootImport from './routes/__root' - -import AboutImport from './routes/about' -import IndexImport from './routes/index' -import PostsIndexImport from './routes/posts/index' -import PostsPostSlugImport from './routes/posts/post-slug' - -const rootRoute = createRoute({ isRoot: true, component: RootImport }) - -const About = createRoute({ component: AboutImport }) -const Index = createRoute({ component: IndexImport }) -const PostsIndex = createRoute({ component: PostsIndexImport }) -const PostsPostSlug = createRoute({ component: PostsPostSlugImport }) - -// Create/Update Routes - -const AboutRoute = About.update({ - path: '/about', - getParentRoute: () => rootRoute, -} as any) - -const IndexRoute = Index.update({ - path: '/', - getParentRoute: () => rootRoute, -} as any) - -const PostsIndexRoute = PostsIndex.update({ - path: '/posts/', - getParentRoute: () => rootRoute, -} as any) - -const PostsPostSlugRoute = PostsPostSlug.update({ - path: '/posts/post-slug', - getParentRoute: () => rootRoute, -} as any) - -// Create and export the route tree - -export const routeTree = rootRoute.addChildren([ - IndexRoute, - AboutRoute, - PostsPostSlugRoute, - PostsIndexRoute, -]) diff --git a/packages/tuono-routes-generator/tests/generator/multi-level/routes/__root.tsx b/packages/tuono-routes-generator/tests/generator/multi-level/routes/__root.tsx deleted file mode 100644 index ab504e42..00000000 --- a/packages/tuono-routes-generator/tests/generator/multi-level/routes/__root.tsx +++ /dev/null @@ -1 +0,0 @@ -/** */ diff --git a/packages/tuono-routes-generator/tests/generator/multi-level/routes/about.tsx b/packages/tuono-routes-generator/tests/generator/multi-level/routes/about.tsx deleted file mode 100644 index 7c83ec8c..00000000 --- a/packages/tuono-routes-generator/tests/generator/multi-level/routes/about.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { createFileRoute } from '@tanstack/react-router' - -export const Route = createFileRoute('/about')({ - component: () =>
Hello /about!
, -}) diff --git a/packages/tuono-routes-generator/tests/generator/multi-level/routes/index.tsx b/packages/tuono-routes-generator/tests/generator/multi-level/routes/index.tsx deleted file mode 100644 index ab504e42..00000000 --- a/packages/tuono-routes-generator/tests/generator/multi-level/routes/index.tsx +++ /dev/null @@ -1 +0,0 @@ -/** */ diff --git a/packages/tuono-routes-generator/tests/generator/multi-level/routes/posts/index.tsx b/packages/tuono-routes-generator/tests/generator/multi-level/routes/posts/index.tsx deleted file mode 100644 index ab504e42..00000000 --- a/packages/tuono-routes-generator/tests/generator/multi-level/routes/posts/index.tsx +++ /dev/null @@ -1 +0,0 @@ -/** */ diff --git a/packages/tuono-routes-generator/tests/generator/multi-level/routes/posts/post-slug.tsx b/packages/tuono-routes-generator/tests/generator/multi-level/routes/posts/post-slug.tsx deleted file mode 100644 index ab504e42..00000000 --- a/packages/tuono-routes-generator/tests/generator/multi-level/routes/posts/post-slug.tsx +++ /dev/null @@ -1 +0,0 @@ -/** */ diff --git a/packages/tuono-routes-generator/tests/generator/single-level/routeTree.expected.ts b/packages/tuono-routes-generator/tests/generator/single-level/routeTree.expected.ts deleted file mode 100644 index 53eadb1d..00000000 --- a/packages/tuono-routes-generator/tests/generator/single-level/routeTree.expected.ts +++ /dev/null @@ -1,29 +0,0 @@ -// This file is auto-generated by Tuono - -import { createRoute } from 'tuono' - -import RootImport from './routes/__root' - -import AboutImport from './routes/about' -import IndexImport from './routes/index' - -const rootRoute = createRoute({ isRoot: true, component: RootImport }) - -const About = createRoute({ component: AboutImport }) -const Index = createRoute({ component: IndexImport }) - -// Create/Update Routes - -const AboutRoute = About.update({ - path: '/about', - getParentRoute: () => rootRoute, -} as any) - -const IndexRoute = Index.update({ - path: '/', - getParentRoute: () => rootRoute, -} as any) - -// Create and export the route tree - -export const routeTree = rootRoute.addChildren([IndexRoute, AboutRoute]) diff --git a/packages/tuono-routes-generator/tests/generator/single-level/routes/__root.tsx b/packages/tuono-routes-generator/tests/generator/single-level/routes/__root.tsx deleted file mode 100644 index ab504e42..00000000 --- a/packages/tuono-routes-generator/tests/generator/single-level/routes/__root.tsx +++ /dev/null @@ -1 +0,0 @@ -/** */ diff --git a/packages/tuono-routes-generator/tests/generator/single-level/routes/about.tsx b/packages/tuono-routes-generator/tests/generator/single-level/routes/about.tsx deleted file mode 100644 index ab504e42..00000000 --- a/packages/tuono-routes-generator/tests/generator/single-level/routes/about.tsx +++ /dev/null @@ -1 +0,0 @@ -/** */ diff --git a/packages/tuono-routes-generator/tests/generator/single-level/routes/index.tsx b/packages/tuono-routes-generator/tests/generator/single-level/routes/index.tsx deleted file mode 100644 index ab504e42..00000000 --- a/packages/tuono-routes-generator/tests/generator/single-level/routes/index.tsx +++ /dev/null @@ -1 +0,0 @@ -/** */ diff --git a/packages/tuono-routes-generator/tests/generator/with-rust-handler/routeTree.expected.ts b/packages/tuono-routes-generator/tests/generator/with-rust-handler/routeTree.expected.ts deleted file mode 100644 index d67556d1..00000000 --- a/packages/tuono-routes-generator/tests/generator/with-rust-handler/routeTree.expected.ts +++ /dev/null @@ -1,30 +0,0 @@ -// This file is auto-generated by Tuono - -import { createRoute } from 'tuono' - -import RootImport from './routes/__root' - -import AboutImport from './routes/about' -import IndexImport from './routes/index' - -const rootRoute = createRoute({ isRoot: true, component: RootImport }) - -const About = createRoute({ component: AboutImport }) -const Index = createRoute({ component: IndexImport }) - -// Create/Update Routes - -const AboutRoute = About.update({ - path: '/about', - getParentRoute: () => rootRoute, -} as any) - -const IndexRoute = Index.update({ - path: '/', - getParentRoute: () => rootRoute, - hasHandler: true, -} as any) - -// Create and export the route tree - -export const routeTree = rootRoute.addChildren([IndexRoute, AboutRoute]) diff --git a/packages/tuono-routes-generator/tests/generator/with-rust-handler/routes/__root.tsx b/packages/tuono-routes-generator/tests/generator/with-rust-handler/routes/__root.tsx deleted file mode 100644 index ab504e42..00000000 --- a/packages/tuono-routes-generator/tests/generator/with-rust-handler/routes/__root.tsx +++ /dev/null @@ -1 +0,0 @@ -/** */ diff --git a/packages/tuono-routes-generator/tests/generator/with-rust-handler/routes/about.tsx b/packages/tuono-routes-generator/tests/generator/with-rust-handler/routes/about.tsx deleted file mode 100644 index ab504e42..00000000 --- a/packages/tuono-routes-generator/tests/generator/with-rust-handler/routes/about.tsx +++ /dev/null @@ -1 +0,0 @@ -/** */ diff --git a/packages/tuono-routes-generator/tests/generator/with-rust-handler/routes/index.rs b/packages/tuono-routes-generator/tests/generator/with-rust-handler/routes/index.rs deleted file mode 100644 index e69de29b..00000000 diff --git a/packages/tuono-routes-generator/tests/generator/with-rust-handler/routes/index.tsx b/packages/tuono-routes-generator/tests/generator/with-rust-handler/routes/index.tsx deleted file mode 100644 index ab504e42..00000000 --- a/packages/tuono-routes-generator/tests/generator/with-rust-handler/routes/index.tsx +++ /dev/null @@ -1 +0,0 @@ -/** */ diff --git a/packages/tuono-routes-generator/tsconfig.json b/packages/tuono-routes-generator/tsconfig.json deleted file mode 100644 index b36d1bf9..00000000 --- a/packages/tuono-routes-generator/tsconfig.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "include": ["src", "vite.config.ts"] -} diff --git a/packages/tuono-routes-generator/vite.config.ts b/packages/tuono-routes-generator/vite.config.ts deleted file mode 100644 index c09134a3..00000000 --- a/packages/tuono-routes-generator/vite.config.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { defineConfig, mergeConfig } from 'vitest/config' -import { tanstackBuildConfig } from '@tanstack/config/build' - -const config = defineConfig({}) - -export default mergeConfig( - config, - tanstackBuildConfig({ - entry: './src/index.ts', - srcDir: './src', - }), -) diff --git a/packages/tuono-vite/.prettierignore b/packages/tuono-vite/.prettierignore deleted file mode 100644 index 275ba5e1..00000000 --- a/packages/tuono-vite/.prettierignore +++ /dev/null @@ -1,2 +0,0 @@ -dist/ -tests/snapshots diff --git a/packages/tuono-vite/README.md b/packages/tuono-vite/README.md deleted file mode 100644 index c6e22970..00000000 --- a/packages/tuono-vite/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# [Tuono] Vite FS Router - -> Strongly inspired by [@tanstack/router/router-vite-plugin](https://github.com/TanStack/router/tree/main/packages/router-vite-plugin) - -This is the [vite](https://vitejs.dev/) plugin that automatically handles the file system routing. diff --git a/packages/tuono-vite/package.json b/packages/tuono-vite/package.json deleted file mode 100644 index b4b57ae2..00000000 --- a/packages/tuono-vite/package.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "name": "tuono-vite", - "version": "0.0.1", - "description": "", - "main": "dist/cjs/index.cjs", - "types": "dist/esm/index.d.ts", - "module": "dist/esm/index.js", - "scripts": { - "dev": "vite build --watch", - "build": "vite build", - "lint": "eslint --ext .ts,.tsx ./src -c ../../.eslintrc", - "format": "prettier -u --write '**/*'", - "test": "vitest --typecheck --watch=false", - "types": "tsc --noEmit" - }, - "exports": { - ".": { - "import": { - "types": "./dist/esm/index.d.ts", - "default": "./dist/esm/index.js" - }, - "require": { - "types": "./dist/cjs/index.d.cts", - "default": "./dist/cjs/index.cjs" - } - }, - "./package.json": "./package.json" - }, - "files": [ - "dist", - "src/**" - ], - "sideEffects": false, - "keywords": [], - "type": "module", - "author": "Valerio Ageno", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.24.4", - "@babel/generator": "^7.23.6", - "@babel/plugin-syntax-jsx": "^7.24.1", - "@babel/plugin-syntax-typescript": "^7.24.1", - "@babel/plugin-transform-react-jsx": "^7.23.4", - "@babel/plugin-transform-typescript": "^7.24.1", - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.1", - "@babel/types": "^7.24.0", - "@types/babel__core": "^7.20.5", - "@types/node": "^20.12.7", - "tuono-routes-generator": "workspace:*" - }, - "devDependencies": { - "@types/babel-traverse": "^6.25.10" - } -} diff --git a/packages/tuono-vite/tests/index.test.ts b/packages/tuono-vite/tests/index.test.ts deleted file mode 100644 index 24fa7850..00000000 --- a/packages/tuono-vite/tests/index.test.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { readFile, readdir } from 'fs/promises' -import path from 'path' -import { expect, test } from 'vitest' -import { makeCompile, splitFile } from '../src/compiler' -import { SPLIT_PREFIX } from '../src/constants' - -async function splitTestFile(opts: { file: string }): Promise { - const code = ( - await readFile(path.resolve(__dirname, `./test-files/${opts.file}`)) - ).toString() - - const filename = opts.file.replace(__dirname, '') - - const result = await splitFile({ - code, - compile: makeCompile({ - root: './test-files', - }), - filename: `${filename}?${SPLIT_PREFIX}`, - }) - - await expect(result.code).toMatchFileSnapshot( - `./snapshots/${filename.replace('.tsx', '')}?split.tsx`, - ) -} - -test('it compiles and splits', async (): Promise => { - // get the list of files from the /test-files directory - const files = await readdir(path.resolve(__dirname, './test-files')) - for (const file of files) { - await splitTestFile({ file }) - } -}) diff --git a/packages/tuono-vite/tests/shared/imported.tsx b/packages/tuono-vite/tests/shared/imported.tsx deleted file mode 100644 index 2b62bc3b..00000000 --- a/packages/tuono-vite/tests/shared/imported.tsx +++ /dev/null @@ -1,3 +0,0 @@ -export const ImportedRoute = (): JSX.Element => { - return

Imported route

-} diff --git a/packages/tuono-vite/tests/snapshots/default-exported?split.tsx b/packages/tuono-vite/tests/snapshots/default-exported?split.tsx deleted file mode 100644 index 2de63193..00000000 --- a/packages/tuono-vite/tests/snapshots/default-exported?split.tsx +++ /dev/null @@ -1,3 +0,0 @@ -export default function Route(): JSX.Element { - return

Test route

; -} diff --git a/packages/tuono-vite/tests/snapshots/function-export?split.tsx b/packages/tuono-vite/tests/snapshots/function-export?split.tsx deleted file mode 100644 index f4c94b2a..00000000 --- a/packages/tuono-vite/tests/snapshots/function-export?split.tsx +++ /dev/null @@ -1,4 +0,0 @@ -function PostsRoute() { - return

Post route

; -} -export default PostsRoute; diff --git a/packages/tuono-vite/tests/snapshots/imported?split.tsx b/packages/tuono-vite/tests/snapshots/imported?split.tsx deleted file mode 100644 index d89daf98..00000000 --- a/packages/tuono-vite/tests/snapshots/imported?split.tsx +++ /dev/null @@ -1,2 +0,0 @@ -import { ImportedRoute } from '../shared/imported'; -export default ImportedRoute; diff --git a/packages/tuono-vite/tests/test-files/default-exported.tsx b/packages/tuono-vite/tests/test-files/default-exported.tsx deleted file mode 100644 index de00a4a8..00000000 --- a/packages/tuono-vite/tests/test-files/default-exported.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import * as React from 'react' - -export default function Route(): JSX.Element { - return

Test route

-} diff --git a/packages/tuono-vite/tests/test-files/function-export.tsx b/packages/tuono-vite/tests/test-files/function-export.tsx deleted file mode 100644 index 9f73fa2a..00000000 --- a/packages/tuono-vite/tests/test-files/function-export.tsx +++ /dev/null @@ -1,7 +0,0 @@ -import * as React from 'react' - -function PostsRoute() { - return

Post route

-} - -export default PostsRoute diff --git a/packages/tuono-vite/tests/test-files/imported.tsx b/packages/tuono-vite/tests/test-files/imported.tsx deleted file mode 100644 index 52062c65..00000000 --- a/packages/tuono-vite/tests/test-files/imported.tsx +++ /dev/null @@ -1,4 +0,0 @@ -import * as React from 'react' -import { ImportedRoute } from '../shared/imported' - -export default ImportedRoute diff --git a/packages/tuono-vite/tsconfig.json b/packages/tuono-vite/tsconfig.json deleted file mode 100644 index 69e2bcec..00000000 --- a/packages/tuono-vite/tsconfig.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "include": ["src", "vite.config.ts", "tests"], - "exclude": ["tests/test-files/**", "tests/snapshots/**"], - "compilerOptions": { - "jsx": "react" - } -} diff --git a/packages/tuono-vite/vite.config.ts b/packages/tuono-vite/vite.config.ts deleted file mode 100644 index ea3d461a..00000000 --- a/packages/tuono-vite/vite.config.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { defineConfig, mergeConfig } from 'vitest/config' -import { tanstackBuildConfig } from '@tanstack/config/build' - -const config = defineConfig({}) - -export default mergeConfig( - config, - tanstackBuildConfig({ - entry: './src/index.ts', - srcDir: './src', - exclude: ['./src/tests/'], - }), -) diff --git a/packages/tuono/README.md b/packages/tuono/README.md new file mode 100644 index 00000000..3099d07c --- /dev/null +++ b/packages/tuono/README.md @@ -0,0 +1 @@ +# Tuono diff --git a/packages/tuono/package.json b/packages/tuono/package.json index 60bbb4e9..4a077563 100644 --- a/packages/tuono/package.json +++ b/packages/tuono/package.json @@ -48,11 +48,29 @@ "README.md", "bin/**" ], + "peerDependencies": { + "react": ">=16.3.0", + "react-dom": ">=16.3.0" + }, "dependencies": { + "@babel/core": "^7.24.4", + "@babel/generator": "^7.23.6", + "@babel/plugin-syntax-jsx": "^7.24.1", + "@babel/plugin-syntax-typescript": "^7.24.1", + "@babel/plugin-transform-react-jsx": "^7.23.4", + "@babel/plugin-transform-typescript": "^7.24.1", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.1", + "@babel/types": "^7.24.0", + "@types/babel__core": "^7.20.5", + "@types/node": "^20.12.7", "@vitejs/plugin-react-swc": "^3.7.0", - "tuono-router": "workspace:*", - "tuono-vite": "workspace:*", - "vite": "^5.2.11" + "prettier": "^3.2.4", + "vite": "^5.2.11", + "zustand": "4.4.7" + }, + "devDependencies": { + "@types/babel-traverse": "^6.25.10" }, "sideEffects": false, "keywords": [], diff --git a/packages/tuono/src/build/index.ts b/packages/tuono/src/build/index.ts index b266e934..fde77d5f 100644 --- a/packages/tuono/src/build/index.ts +++ b/packages/tuono/src/build/index.ts @@ -1,6 +1,6 @@ import { build, createServer } from 'vite' import react from '@vitejs/plugin-react-swc' -import { ViteFsRouter } from 'tuono-vite' +import { ViteFsRouter } from './tuono-vite-plugin' const BASE_CONFIG = { silent: true, diff --git a/packages/tuono-routes-generator/src/generator.ts b/packages/tuono/src/build/routes-generator/generator.ts similarity index 100% rename from packages/tuono-routes-generator/src/generator.ts rename to packages/tuono/src/build/routes-generator/generator.ts diff --git a/packages/tuono-routes-generator/src/index.ts b/packages/tuono/src/build/routes-generator/index.ts similarity index 100% rename from packages/tuono-routes-generator/src/index.ts rename to packages/tuono/src/build/routes-generator/index.ts diff --git a/packages/tuono-routes-generator/src/types.ts b/packages/tuono/src/build/routes-generator/types.ts similarity index 100% rename from packages/tuono-routes-generator/src/types.ts rename to packages/tuono/src/build/routes-generator/types.ts diff --git a/packages/tuono-routes-generator/src/utils.ts b/packages/tuono/src/build/routes-generator/utils.ts similarity index 100% rename from packages/tuono-routes-generator/src/utils.ts rename to packages/tuono/src/build/routes-generator/utils.ts diff --git a/packages/tuono-vite/src/compiler.ts b/packages/tuono/src/build/tuono-vite-plugin/compiler.ts similarity index 100% rename from packages/tuono-vite/src/compiler.ts rename to packages/tuono/src/build/tuono-vite-plugin/compiler.ts diff --git a/packages/tuono-vite/src/constants.ts b/packages/tuono/src/build/tuono-vite-plugin/constants.ts similarity index 100% rename from packages/tuono-vite/src/constants.ts rename to packages/tuono/src/build/tuono-vite-plugin/constants.ts diff --git a/packages/tuono-vite/src/eliminateUnreferencedIdentifiers.ts b/packages/tuono/src/build/tuono-vite-plugin/eliminateUnreferencedIdentifiers.ts similarity index 100% rename from packages/tuono-vite/src/eliminateUnreferencedIdentifiers.ts rename to packages/tuono/src/build/tuono-vite-plugin/eliminateUnreferencedIdentifiers.ts diff --git a/packages/tuono-vite/src/index.ts b/packages/tuono/src/build/tuono-vite-plugin/index.ts similarity index 98% rename from packages/tuono-vite/src/index.ts rename to packages/tuono/src/build/tuono-vite-plugin/index.ts index 036444d0..6fd6b9bc 100644 --- a/packages/tuono-vite/src/index.ts +++ b/packages/tuono/src/build/tuono-vite-plugin/index.ts @@ -1,5 +1,5 @@ import { fileURLToPath, pathToFileURL } from 'url' -import { routeGenerator } from 'tuono-routes-generator' +import { routeGenerator } from '../routes-generator' import { normalize } from 'path' // eslint-disable-next-line sort-imports diff --git a/packages/tuono/src/index.ts b/packages/tuono/src/index.ts index 0afed695..ce54666d 100644 --- a/packages/tuono/src/index.ts +++ b/packages/tuono/src/index.ts @@ -4,6 +4,6 @@ import { createRouter, Link, RouterProvider, -} from 'tuono-router' +} from './router' export { createRoute, createRootRoute, createRouter, Link, RouterProvider } diff --git a/packages/tuono-router/src/components/Link.tsx b/packages/tuono/src/router/components/Link.tsx similarity index 100% rename from packages/tuono-router/src/components/Link.tsx rename to packages/tuono/src/router/components/Link.tsx diff --git a/packages/tuono-router/src/components/Matches.tsx b/packages/tuono/src/router/components/Matches.tsx similarity index 100% rename from packages/tuono-router/src/components/Matches.tsx rename to packages/tuono/src/router/components/Matches.tsx diff --git a/packages/tuono-router/src/components/NotFound.tsx b/packages/tuono/src/router/components/NotFound.tsx similarity index 100% rename from packages/tuono-router/src/components/NotFound.tsx rename to packages/tuono/src/router/components/NotFound.tsx diff --git a/packages/tuono-router/src/components/RouteMatch.tsx b/packages/tuono/src/router/components/RouteMatch.tsx similarity index 100% rename from packages/tuono-router/src/components/RouteMatch.tsx rename to packages/tuono/src/router/components/RouteMatch.tsx diff --git a/packages/tuono-router/src/components/RouterContext.tsx b/packages/tuono/src/router/components/RouterContext.tsx similarity index 100% rename from packages/tuono-router/src/components/RouterContext.tsx rename to packages/tuono/src/router/components/RouterContext.tsx diff --git a/packages/tuono-router/src/components/RouterProvider.tsx b/packages/tuono/src/router/components/RouterProvider.tsx similarity index 100% rename from packages/tuono-router/src/components/RouterProvider.tsx rename to packages/tuono/src/router/components/RouterProvider.tsx diff --git a/packages/tuono-router/src/hooks/useRouter.tsx b/packages/tuono/src/router/hooks/useRouter.tsx similarity index 100% rename from packages/tuono-router/src/hooks/useRouter.tsx rename to packages/tuono/src/router/hooks/useRouter.tsx diff --git a/packages/tuono-router/src/hooks/useRouterStore.tsx b/packages/tuono/src/router/hooks/useRouterStore.tsx similarity index 100% rename from packages/tuono-router/src/hooks/useRouterStore.tsx rename to packages/tuono/src/router/hooks/useRouterStore.tsx diff --git a/packages/tuono-router/src/hooks/useServerSideProps.tsx b/packages/tuono/src/router/hooks/useServerSideProps.tsx similarity index 100% rename from packages/tuono-router/src/hooks/useServerSideProps.tsx rename to packages/tuono/src/router/hooks/useServerSideProps.tsx diff --git a/packages/tuono-router/src/index.tsx b/packages/tuono/src/router/index.tsx similarity index 99% rename from packages/tuono-router/src/index.tsx rename to packages/tuono/src/router/index.tsx index 28266a55..b81e64e6 100644 --- a/packages/tuono-router/src/index.tsx +++ b/packages/tuono/src/router/index.tsx @@ -3,6 +3,7 @@ declare global { __TUONO_SSR__PROPS__: any } } + export { RouterProvider } from './components/RouterProvider' export { default as Link } from './components/Link' export { createRouter } from './router' diff --git a/packages/tuono-router/src/route.ts b/packages/tuono/src/router/route.ts similarity index 100% rename from packages/tuono-router/src/route.ts rename to packages/tuono/src/router/route.ts diff --git a/packages/tuono-router/src/router.ts b/packages/tuono/src/router/router.ts similarity index 100% rename from packages/tuono-router/src/router.ts rename to packages/tuono/src/router/router.ts diff --git a/packages/tuono-router/src/types.ts b/packages/tuono/src/router/types.ts similarity index 100% rename from packages/tuono-router/src/types.ts rename to packages/tuono/src/router/types.ts diff --git a/packages/tuono-router/src/utils.ts b/packages/tuono/src/router/utils.ts similarity index 100% rename from packages/tuono-router/src/utils.ts rename to packages/tuono/src/router/utils.ts