tr]:last:border-b-0',
+ className,
+ )}
+ {...props}
+ />
+ );
}
-function TableRow({ className, ...props }: React.ComponentProps<"tr">) {
- return (
-
- )
+function TableRow({ className, ...props }: React.ComponentProps<'tr'>) {
+ return (
+
+ );
}
-function TableHead({ className, ...props }: React.ComponentProps<"th">) {
- return (
- [role=checkbox]]:translate-y-[2px]",
- className
- )}
- {...props}
- />
- )
+function TableHead({ className, ...props }: React.ComponentProps<'th'>) {
+ return (
+ | [role=checkbox]]:translate-y-[2px]',
+ className,
+ )}
+ {...props}
+ />
+ );
}
-function TableCell({ className, ...props }: React.ComponentProps<"td">) {
- return (
- | [role=checkbox]]:translate-y-[2px]",
- className
- )}
- {...props}
- />
- )
+function TableCell({ className, ...props }: React.ComponentProps<'td'>) {
+ return (
+ | [role=checkbox]]:translate-y-[2px]',
+ className,
+ )}
+ {...props}
+ />
+ );
}
function TableCaption({
- className,
- ...props
-}: React.ComponentProps<"caption">) {
- return (
-
- )
+ className,
+ ...props
+}: React.ComponentProps<'caption'>) {
+ return (
+
+ );
}
export {
- Table,
- TableHeader,
- TableBody,
- TableFooter,
- TableHead,
- TableRow,
- TableCell,
- TableCaption,
-}
+ Table,
+ TableHeader,
+ TableBody,
+ TableFooter,
+ TableHead,
+ TableRow,
+ TableCell,
+ TableCaption,
+};
diff --git a/src/data/demo.punk-songs.ts b/src/data/demo.punk-songs.ts
index bc6086d..ae5e7d4 100644
--- a/src/data/demo.punk-songs.ts
+++ b/src/data/demo.punk-songs.ts
@@ -1,13 +1,13 @@
-import { createServerFn } from '@tanstack/react-start'
+import { createServerFn } from '@tanstack/react-start';
export const getPunkSongs = createServerFn({
- method: 'GET',
+ method: 'GET',
}).handler(async () => [
- { id: 1, name: 'Teenage Dirtbag', artist: 'Wheatus' },
- { id: 2, name: 'Smells Like Teen Spirit', artist: 'Nirvana' },
- { id: 3, name: 'The Middle', artist: 'Jimmy Eat World' },
- { id: 4, name: 'My Own Worst Enemy', artist: 'Lit' },
- { id: 5, name: 'Fat Lip', artist: 'Sum 41' },
- { id: 6, name: 'All the Small Things', artist: 'blink-182' },
- { id: 7, name: 'Beverly Hills', artist: 'Weezer' },
-])
+ { id: 1, name: 'Teenage Dirtbag', artist: 'Wheatus' },
+ { id: 2, name: 'Smells Like Teen Spirit', artist: 'Nirvana' },
+ { id: 3, name: 'The Middle', artist: 'Jimmy Eat World' },
+ { id: 4, name: 'My Own Worst Enemy', artist: 'Lit' },
+ { id: 5, name: 'Fat Lip', artist: 'Sum 41' },
+ { id: 6, name: 'All the Small Things', artist: 'blink-182' },
+ { id: 7, name: 'Beverly Hills', artist: 'Weezer' },
+]);
diff --git a/src/lib/server/db.ts b/src/lib/server/db.ts
index 64e0259..7301858 100644
--- a/src/lib/server/db.ts
+++ b/src/lib/server/db.ts
@@ -1,18 +1,18 @@
-import { PrismaClient } from "@prisma/client";
+import { PrismaClient } from '@prisma/client';
const globalForPrisma = globalThis as unknown as {
- prisma: PrismaClient | undefined;
+ prisma: PrismaClient | undefined;
};
export const prisma =
- globalForPrisma.prisma ??
- new PrismaClient({
- log:
- process.env.NODE_ENV === "development"
- ? ["query", "error", "warn"]
- : ["error"],
- });
+ globalForPrisma.prisma ??
+ new PrismaClient({
+ log:
+ process.env.NODE_ENV === 'development'
+ ? ['query', 'error', 'warn']
+ : ['error'],
+ });
-if (process.env.NODE_ENV !== "production") {
- globalForPrisma.prisma = prisma;
+if (process.env.NODE_ENV !== 'production') {
+ globalForPrisma.prisma = prisma;
}
diff --git a/src/lib/utils.ts b/src/lib/utils.ts
index bd0c391..256f86f 100644
--- a/src/lib/utils.ts
+++ b/src/lib/utils.ts
@@ -1,6 +1,6 @@
-import { clsx, type ClassValue } from "clsx"
-import { twMerge } from "tailwind-merge"
+import { type ClassValue, clsx } from 'clsx';
+import { twMerge } from 'tailwind-merge';
export function cn(...inputs: ClassValue[]) {
- return twMerge(clsx(inputs))
+ return twMerge(clsx(inputs));
}
diff --git a/src/routeTree.gen.ts b/src/routeTree.gen.ts
index b13c274..80598d8 100644
--- a/src/routeTree.gen.ts
+++ b/src/routeTree.gen.ts
@@ -8,212 +8,213 @@
// You should NOT make any changes in this file as it will be overwritten.
// Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified.
-import { Route as rootRouteImport } from './routes/__root'
-import { Route as IndexRouteImport } from './routes/index'
-import { Route as DemoStartServerFuncsRouteImport } from './routes/demo/start.server-funcs'
-import { Route as DemoStartApiRequestRouteImport } from './routes/demo/start.api-request'
-import { Route as DemoApiNamesRouteImport } from './routes/demo/api.names'
-import { Route as DemoStartSsrIndexRouteImport } from './routes/demo/start.ssr.index'
-import { Route as DemoStartSsrSpaModeRouteImport } from './routes/demo/start.ssr.spa-mode'
-import { Route as DemoStartSsrFullSsrRouteImport } from './routes/demo/start.ssr.full-ssr'
-import { Route as DemoStartSsrDataOnlyRouteImport } from './routes/demo/start.ssr.data-only'
+import { Route as rootRouteImport } from './routes/__root';
+import { Route as DemoApiNamesRouteImport } from './routes/demo/api.names';
+import { Route as DemoStartApiRequestRouteImport } from './routes/demo/start.api-request';
+import { Route as DemoStartServerFuncsRouteImport } from './routes/demo/start.server-funcs';
+import { Route as DemoStartSsrDataOnlyRouteImport } from './routes/demo/start.ssr.data-only';
+import { Route as DemoStartSsrFullSsrRouteImport } from './routes/demo/start.ssr.full-ssr';
+import { Route as DemoStartSsrIndexRouteImport } from './routes/demo/start.ssr.index';
+import { Route as DemoStartSsrSpaModeRouteImport } from './routes/demo/start.ssr.spa-mode';
+import { Route as IndexRouteImport } from './routes/index';
const IndexRoute = IndexRouteImport.update({
- id: '/',
- path: '/',
- getParentRoute: () => rootRouteImport,
-} as any)
+ id: '/',
+ path: '/',
+ getParentRoute: () => rootRouteImport,
+} as any);
const DemoStartServerFuncsRoute = DemoStartServerFuncsRouteImport.update({
- id: '/demo/start/server-funcs',
- path: '/demo/start/server-funcs',
- getParentRoute: () => rootRouteImport,
-} as any)
+ id: '/demo/start/server-funcs',
+ path: '/demo/start/server-funcs',
+ getParentRoute: () => rootRouteImport,
+} as any);
const DemoStartApiRequestRoute = DemoStartApiRequestRouteImport.update({
- id: '/demo/start/api-request',
- path: '/demo/start/api-request',
- getParentRoute: () => rootRouteImport,
-} as any)
+ id: '/demo/start/api-request',
+ path: '/demo/start/api-request',
+ getParentRoute: () => rootRouteImport,
+} as any);
const DemoApiNamesRoute = DemoApiNamesRouteImport.update({
- id: '/demo/api/names',
- path: '/demo/api/names',
- getParentRoute: () => rootRouteImport,
-} as any)
+ id: '/demo/api/names',
+ path: '/demo/api/names',
+ getParentRoute: () => rootRouteImport,
+} as any);
const DemoStartSsrIndexRoute = DemoStartSsrIndexRouteImport.update({
- id: '/demo/start/ssr/',
- path: '/demo/start/ssr/',
- getParentRoute: () => rootRouteImport,
-} as any)
+ id: '/demo/start/ssr/',
+ path: '/demo/start/ssr/',
+ getParentRoute: () => rootRouteImport,
+} as any);
const DemoStartSsrSpaModeRoute = DemoStartSsrSpaModeRouteImport.update({
- id: '/demo/start/ssr/spa-mode',
- path: '/demo/start/ssr/spa-mode',
- getParentRoute: () => rootRouteImport,
-} as any)
+ id: '/demo/start/ssr/spa-mode',
+ path: '/demo/start/ssr/spa-mode',
+ getParentRoute: () => rootRouteImport,
+} as any);
const DemoStartSsrFullSsrRoute = DemoStartSsrFullSsrRouteImport.update({
- id: '/demo/start/ssr/full-ssr',
- path: '/demo/start/ssr/full-ssr',
- getParentRoute: () => rootRouteImport,
-} as any)
+ id: '/demo/start/ssr/full-ssr',
+ path: '/demo/start/ssr/full-ssr',
+ getParentRoute: () => rootRouteImport,
+} as any);
const DemoStartSsrDataOnlyRoute = DemoStartSsrDataOnlyRouteImport.update({
- id: '/demo/start/ssr/data-only',
- path: '/demo/start/ssr/data-only',
- getParentRoute: () => rootRouteImport,
-} as any)
+ id: '/demo/start/ssr/data-only',
+ path: '/demo/start/ssr/data-only',
+ getParentRoute: () => rootRouteImport,
+} as any);
export interface FileRoutesByFullPath {
- '/': typeof IndexRoute
- '/demo/api/names': typeof DemoApiNamesRoute
- '/demo/start/api-request': typeof DemoStartApiRequestRoute
- '/demo/start/server-funcs': typeof DemoStartServerFuncsRoute
- '/demo/start/ssr/data-only': typeof DemoStartSsrDataOnlyRoute
- '/demo/start/ssr/full-ssr': typeof DemoStartSsrFullSsrRoute
- '/demo/start/ssr/spa-mode': typeof DemoStartSsrSpaModeRoute
- '/demo/start/ssr/': typeof DemoStartSsrIndexRoute
+ '/': typeof IndexRoute;
+ '/demo/api/names': typeof DemoApiNamesRoute;
+ '/demo/start/api-request': typeof DemoStartApiRequestRoute;
+ '/demo/start/server-funcs': typeof DemoStartServerFuncsRoute;
+ '/demo/start/ssr/data-only': typeof DemoStartSsrDataOnlyRoute;
+ '/demo/start/ssr/full-ssr': typeof DemoStartSsrFullSsrRoute;
+ '/demo/start/ssr/spa-mode': typeof DemoStartSsrSpaModeRoute;
+ '/demo/start/ssr/': typeof DemoStartSsrIndexRoute;
}
export interface FileRoutesByTo {
- '/': typeof IndexRoute
- '/demo/api/names': typeof DemoApiNamesRoute
- '/demo/start/api-request': typeof DemoStartApiRequestRoute
- '/demo/start/server-funcs': typeof DemoStartServerFuncsRoute
- '/demo/start/ssr/data-only': typeof DemoStartSsrDataOnlyRoute
- '/demo/start/ssr/full-ssr': typeof DemoStartSsrFullSsrRoute
- '/demo/start/ssr/spa-mode': typeof DemoStartSsrSpaModeRoute
- '/demo/start/ssr': typeof DemoStartSsrIndexRoute
+ '/': typeof IndexRoute;
+ '/demo/api/names': typeof DemoApiNamesRoute;
+ '/demo/start/api-request': typeof DemoStartApiRequestRoute;
+ '/demo/start/server-funcs': typeof DemoStartServerFuncsRoute;
+ '/demo/start/ssr/data-only': typeof DemoStartSsrDataOnlyRoute;
+ '/demo/start/ssr/full-ssr': typeof DemoStartSsrFullSsrRoute;
+ '/demo/start/ssr/spa-mode': typeof DemoStartSsrSpaModeRoute;
+ '/demo/start/ssr': typeof DemoStartSsrIndexRoute;
}
export interface FileRoutesById {
- __root__: typeof rootRouteImport
- '/': typeof IndexRoute
- '/demo/api/names': typeof DemoApiNamesRoute
- '/demo/start/api-request': typeof DemoStartApiRequestRoute
- '/demo/start/server-funcs': typeof DemoStartServerFuncsRoute
- '/demo/start/ssr/data-only': typeof DemoStartSsrDataOnlyRoute
- '/demo/start/ssr/full-ssr': typeof DemoStartSsrFullSsrRoute
- '/demo/start/ssr/spa-mode': typeof DemoStartSsrSpaModeRoute
- '/demo/start/ssr/': typeof DemoStartSsrIndexRoute
+ __root__: typeof rootRouteImport;
+ '/': typeof IndexRoute;
+ '/demo/api/names': typeof DemoApiNamesRoute;
+ '/demo/start/api-request': typeof DemoStartApiRequestRoute;
+ '/demo/start/server-funcs': typeof DemoStartServerFuncsRoute;
+ '/demo/start/ssr/data-only': typeof DemoStartSsrDataOnlyRoute;
+ '/demo/start/ssr/full-ssr': typeof DemoStartSsrFullSsrRoute;
+ '/demo/start/ssr/spa-mode': typeof DemoStartSsrSpaModeRoute;
+ '/demo/start/ssr/': typeof DemoStartSsrIndexRoute;
}
export interface FileRouteTypes {
- fileRoutesByFullPath: FileRoutesByFullPath
- fullPaths:
- | '/'
- | '/demo/api/names'
- | '/demo/start/api-request'
- | '/demo/start/server-funcs'
- | '/demo/start/ssr/data-only'
- | '/demo/start/ssr/full-ssr'
- | '/demo/start/ssr/spa-mode'
- | '/demo/start/ssr/'
- fileRoutesByTo: FileRoutesByTo
- to:
- | '/'
- | '/demo/api/names'
- | '/demo/start/api-request'
- | '/demo/start/server-funcs'
- | '/demo/start/ssr/data-only'
- | '/demo/start/ssr/full-ssr'
- | '/demo/start/ssr/spa-mode'
- | '/demo/start/ssr'
- id:
- | '__root__'
- | '/'
- | '/demo/api/names'
- | '/demo/start/api-request'
- | '/demo/start/server-funcs'
- | '/demo/start/ssr/data-only'
- | '/demo/start/ssr/full-ssr'
- | '/demo/start/ssr/spa-mode'
- | '/demo/start/ssr/'
- fileRoutesById: FileRoutesById
+ fileRoutesByFullPath: FileRoutesByFullPath;
+ fullPaths:
+ | '/'
+ | '/demo/api/names'
+ | '/demo/start/api-request'
+ | '/demo/start/server-funcs'
+ | '/demo/start/ssr/data-only'
+ | '/demo/start/ssr/full-ssr'
+ | '/demo/start/ssr/spa-mode'
+ | '/demo/start/ssr/';
+ fileRoutesByTo: FileRoutesByTo;
+ to:
+ | '/'
+ | '/demo/api/names'
+ | '/demo/start/api-request'
+ | '/demo/start/server-funcs'
+ | '/demo/start/ssr/data-only'
+ | '/demo/start/ssr/full-ssr'
+ | '/demo/start/ssr/spa-mode'
+ | '/demo/start/ssr';
+ id:
+ | '__root__'
+ | '/'
+ | '/demo/api/names'
+ | '/demo/start/api-request'
+ | '/demo/start/server-funcs'
+ | '/demo/start/ssr/data-only'
+ | '/demo/start/ssr/full-ssr'
+ | '/demo/start/ssr/spa-mode'
+ | '/demo/start/ssr/';
+ fileRoutesById: FileRoutesById;
}
export interface RootRouteChildren {
- IndexRoute: typeof IndexRoute
- DemoApiNamesRoute: typeof DemoApiNamesRoute
- DemoStartApiRequestRoute: typeof DemoStartApiRequestRoute
- DemoStartServerFuncsRoute: typeof DemoStartServerFuncsRoute
- DemoStartSsrDataOnlyRoute: typeof DemoStartSsrDataOnlyRoute
- DemoStartSsrFullSsrRoute: typeof DemoStartSsrFullSsrRoute
- DemoStartSsrSpaModeRoute: typeof DemoStartSsrSpaModeRoute
- DemoStartSsrIndexRoute: typeof DemoStartSsrIndexRoute
+ IndexRoute: typeof IndexRoute;
+ DemoApiNamesRoute: typeof DemoApiNamesRoute;
+ DemoStartApiRequestRoute: typeof DemoStartApiRequestRoute;
+ DemoStartServerFuncsRoute: typeof DemoStartServerFuncsRoute;
+ DemoStartSsrDataOnlyRoute: typeof DemoStartSsrDataOnlyRoute;
+ DemoStartSsrFullSsrRoute: typeof DemoStartSsrFullSsrRoute;
+ DemoStartSsrSpaModeRoute: typeof DemoStartSsrSpaModeRoute;
+ DemoStartSsrIndexRoute: typeof DemoStartSsrIndexRoute;
}
declare module '@tanstack/react-router' {
- interface FileRoutesByPath {
- '/': {
- id: '/'
- path: '/'
- fullPath: '/'
- preLoaderRoute: typeof IndexRouteImport
- parentRoute: typeof rootRouteImport
- }
- '/demo/start/server-funcs': {
- id: '/demo/start/server-funcs'
- path: '/demo/start/server-funcs'
- fullPath: '/demo/start/server-funcs'
- preLoaderRoute: typeof DemoStartServerFuncsRouteImport
- parentRoute: typeof rootRouteImport
- }
- '/demo/start/api-request': {
- id: '/demo/start/api-request'
- path: '/demo/start/api-request'
- fullPath: '/demo/start/api-request'
- preLoaderRoute: typeof DemoStartApiRequestRouteImport
- parentRoute: typeof rootRouteImport
- }
- '/demo/api/names': {
- id: '/demo/api/names'
- path: '/demo/api/names'
- fullPath: '/demo/api/names'
- preLoaderRoute: typeof DemoApiNamesRouteImport
- parentRoute: typeof rootRouteImport
- }
- '/demo/start/ssr/': {
- id: '/demo/start/ssr/'
- path: '/demo/start/ssr'
- fullPath: '/demo/start/ssr/'
- preLoaderRoute: typeof DemoStartSsrIndexRouteImport
- parentRoute: typeof rootRouteImport
- }
- '/demo/start/ssr/spa-mode': {
- id: '/demo/start/ssr/spa-mode'
- path: '/demo/start/ssr/spa-mode'
- fullPath: '/demo/start/ssr/spa-mode'
- preLoaderRoute: typeof DemoStartSsrSpaModeRouteImport
- parentRoute: typeof rootRouteImport
- }
- '/demo/start/ssr/full-ssr': {
- id: '/demo/start/ssr/full-ssr'
- path: '/demo/start/ssr/full-ssr'
- fullPath: '/demo/start/ssr/full-ssr'
- preLoaderRoute: typeof DemoStartSsrFullSsrRouteImport
- parentRoute: typeof rootRouteImport
- }
- '/demo/start/ssr/data-only': {
- id: '/demo/start/ssr/data-only'
- path: '/demo/start/ssr/data-only'
- fullPath: '/demo/start/ssr/data-only'
- preLoaderRoute: typeof DemoStartSsrDataOnlyRouteImport
- parentRoute: typeof rootRouteImport
- }
- }
+ interface FileRoutesByPath {
+ '/': {
+ id: '/';
+ path: '/';
+ fullPath: '/';
+ preLoaderRoute: typeof IndexRouteImport;
+ parentRoute: typeof rootRouteImport;
+ };
+ '/demo/start/server-funcs': {
+ id: '/demo/start/server-funcs';
+ path: '/demo/start/server-funcs';
+ fullPath: '/demo/start/server-funcs';
+ preLoaderRoute: typeof DemoStartServerFuncsRouteImport;
+ parentRoute: typeof rootRouteImport;
+ };
+ '/demo/start/api-request': {
+ id: '/demo/start/api-request';
+ path: '/demo/start/api-request';
+ fullPath: '/demo/start/api-request';
+ preLoaderRoute: typeof DemoStartApiRequestRouteImport;
+ parentRoute: typeof rootRouteImport;
+ };
+ '/demo/api/names': {
+ id: '/demo/api/names';
+ path: '/demo/api/names';
+ fullPath: '/demo/api/names';
+ preLoaderRoute: typeof DemoApiNamesRouteImport;
+ parentRoute: typeof rootRouteImport;
+ };
+ '/demo/start/ssr/': {
+ id: '/demo/start/ssr/';
+ path: '/demo/start/ssr';
+ fullPath: '/demo/start/ssr/';
+ preLoaderRoute: typeof DemoStartSsrIndexRouteImport;
+ parentRoute: typeof rootRouteImport;
+ };
+ '/demo/start/ssr/spa-mode': {
+ id: '/demo/start/ssr/spa-mode';
+ path: '/demo/start/ssr/spa-mode';
+ fullPath: '/demo/start/ssr/spa-mode';
+ preLoaderRoute: typeof DemoStartSsrSpaModeRouteImport;
+ parentRoute: typeof rootRouteImport;
+ };
+ '/demo/start/ssr/full-ssr': {
+ id: '/demo/start/ssr/full-ssr';
+ path: '/demo/start/ssr/full-ssr';
+ fullPath: '/demo/start/ssr/full-ssr';
+ preLoaderRoute: typeof DemoStartSsrFullSsrRouteImport;
+ parentRoute: typeof rootRouteImport;
+ };
+ '/demo/start/ssr/data-only': {
+ id: '/demo/start/ssr/data-only';
+ path: '/demo/start/ssr/data-only';
+ fullPath: '/demo/start/ssr/data-only';
+ preLoaderRoute: typeof DemoStartSsrDataOnlyRouteImport;
+ parentRoute: typeof rootRouteImport;
+ };
+ }
}
const rootRouteChildren: RootRouteChildren = {
- IndexRoute: IndexRoute,
- DemoApiNamesRoute: DemoApiNamesRoute,
- DemoStartApiRequestRoute: DemoStartApiRequestRoute,
- DemoStartServerFuncsRoute: DemoStartServerFuncsRoute,
- DemoStartSsrDataOnlyRoute: DemoStartSsrDataOnlyRoute,
- DemoStartSsrFullSsrRoute: DemoStartSsrFullSsrRoute,
- DemoStartSsrSpaModeRoute: DemoStartSsrSpaModeRoute,
- DemoStartSsrIndexRoute: DemoStartSsrIndexRoute,
-}
+ IndexRoute: IndexRoute,
+ DemoApiNamesRoute: DemoApiNamesRoute,
+ DemoStartApiRequestRoute: DemoStartApiRequestRoute,
+ DemoStartServerFuncsRoute: DemoStartServerFuncsRoute,
+ DemoStartSsrDataOnlyRoute: DemoStartSsrDataOnlyRoute,
+ DemoStartSsrFullSsrRoute: DemoStartSsrFullSsrRoute,
+ DemoStartSsrSpaModeRoute: DemoStartSsrSpaModeRoute,
+ DemoStartSsrIndexRoute: DemoStartSsrIndexRoute,
+};
export const routeTree = rootRouteImport
- ._addFileChildren(rootRouteChildren)
- ._addFileTypes()
+ ._addFileChildren(rootRouteChildren)
+ ._addFileTypes();
+
+import type { createStart } from '@tanstack/react-start';
+import type { getRouter } from './router.tsx';
-import type { getRouter } from './router.tsx'
-import type { createStart } from '@tanstack/react-start'
declare module '@tanstack/react-start' {
- interface Register {
- ssr: true
- router: Awaited>
- }
+ interface Register {
+ ssr: true;
+ router: Awaited>;
+ }
}
diff --git a/src/router.tsx b/src/router.tsx
index 5c70836..ef44808 100644
--- a/src/router.tsx
+++ b/src/router.tsx
@@ -1,17 +1,17 @@
-import { createRouter } from '@tanstack/react-router'
+import { createRouter } from '@tanstack/react-router';
// Import the generated route tree
-import { routeTree } from './routeTree.gen'
+import { routeTree } from './routeTree.gen';
// Create a new router instance
export const getRouter = () => {
- const router = createRouter({
- routeTree,
- context: {},
+ const router = createRouter({
+ routeTree,
+ context: {},
- scrollRestoration: true,
- defaultPreloadStaleTime: 0,
- })
+ scrollRestoration: true,
+ defaultPreloadStaleTime: 0,
+ });
- return router
-}
+ return router;
+};
diff --git a/src/routes/__root.tsx b/src/routes/__root.tsx
index b4e94a5..43bff2d 100644
--- a/src/routes/__root.tsx
+++ b/src/routes/__root.tsx
@@ -1,58 +1,58 @@
-import { HeadContent, Scripts, createRootRoute } from '@tanstack/react-router'
-import { TanStackRouterDevtoolsPanel } from '@tanstack/react-router-devtools'
-import { TanStackDevtools } from '@tanstack/react-devtools'
+import { TanStackDevtools } from '@tanstack/react-devtools';
+import { createRootRoute, HeadContent, Scripts } from '@tanstack/react-router';
+import { TanStackRouterDevtoolsPanel } from '@tanstack/react-router-devtools';
-import Header from '../components/Header'
+import Header from '../components/Header';
-import appCss from '../styles.css?url'
+import appCss from '../styles.css?url';
export const Route = createRootRoute({
- head: () => ({
- meta: [
- {
- charSet: 'utf-8',
- },
- {
- name: 'viewport',
- content: 'width=device-width, initial-scale=1',
- },
- {
- title: 'TanStack Start Starter',
- },
- ],
- links: [
- {
- rel: 'stylesheet',
- href: appCss,
- },
- ],
- }),
+ head: () => ({
+ meta: [
+ {
+ charSet: 'utf-8',
+ },
+ {
+ name: 'viewport',
+ content: 'width=device-width, initial-scale=1',
+ },
+ {
+ title: 'TanStack Start Starter',
+ },
+ ],
+ links: [
+ {
+ rel: 'stylesheet',
+ href: appCss,
+ },
+ ],
+ }),
- shellComponent: RootDocument,
-})
+ shellComponent: RootDocument,
+});
function RootDocument({ children }: { children: React.ReactNode }) {
- return (
-
-
-
-
-
-
- {children}
- ,
- },
- ]}
- />
-
-
-
- )
+ return (
+
+
+
+
+
+
+ {children}
+ ,
+ },
+ ]}
+ />
+
+
+
+ );
}
diff --git a/src/routes/api/health.ts b/src/routes/api/health.ts
index 39ab648..cd44a86 100644
--- a/src/routes/api/health.ts
+++ b/src/routes/api/health.ts
@@ -1,20 +1,20 @@
-import { createAPIFileRoute } from "@tanstack/start/api";
-import { prisma } from "@/lib/server/db";
+import { createAPIFileRoute } from '@tanstack/start/api';
+import { prisma } from '@/lib/server/db';
-export const Route = createAPIFileRoute("/api/health")({
- GET: async () => {
- let dbStatus = "disconnected";
- try {
- await prisma.$queryRaw`SELECT 1`;
- dbStatus = "connected";
- } catch {
- dbStatus = "error";
- }
+export const Route = createAPIFileRoute('/api/health')({
+ GET: async () => {
+ let dbStatus = 'disconnected';
+ try {
+ await prisma.$queryRaw`SELECT 1`;
+ dbStatus = 'connected';
+ } catch {
+ dbStatus = 'error';
+ }
- return Response.json({
- status: "ok",
- timestamp: new Date().toISOString(),
- database: dbStatus,
- });
- },
+ return Response.json({
+ status: 'ok',
+ timestamp: new Date().toISOString(),
+ database: dbStatus,
+ });
+ },
});
diff --git a/src/routes/demo/api.names.ts b/src/routes/demo/api.names.ts
index a1e4a35..120a5c6 100644
--- a/src/routes/demo/api.names.ts
+++ b/src/routes/demo/api.names.ts
@@ -1,10 +1,10 @@
-import { createFileRoute } from '@tanstack/react-router'
-import { json } from '@tanstack/react-start'
+import { createFileRoute } from '@tanstack/react-router';
+import { json } from '@tanstack/react-start';
export const Route = createFileRoute('/demo/api/names')({
- server: {
- handlers: {
- GET: () => json(['Alice', 'Bob', 'Charlie']),
- },
- },
-})
+ server: {
+ handlers: {
+ GET: () => json(['Alice', 'Bob', 'Charlie']),
+ },
+ },
+});
diff --git a/src/routes/demo/start.api-request.tsx b/src/routes/demo/start.api-request.tsx
index e61b95c..10942c8 100644
--- a/src/routes/demo/start.api-request.tsx
+++ b/src/routes/demo/start.api-request.tsx
@@ -1,33 +1,34 @@
-import { useEffect, useState } from 'react'
-
-import { createFileRoute } from '@tanstack/react-router'
-import './start.css'
+import { createFileRoute } from '@tanstack/react-router';
+import { useEffect, useState } from 'react';
+import './start.css';
function getNames() {
- return fetch('/demo/api/names').then((res) => res.json() as Promise)
+ return fetch('/demo/api/names').then(
+ (res) => res.json() as Promise,
+ );
}
export const Route = createFileRoute('/demo/start/api-request')({
- component: Home,
-})
+ component: Home,
+});
function Home() {
- const [names, setNames] = useState>([])
+ const [names, setNames] = useState>([]);
- useEffect(() => {
- getNames().then(setNames)
- }, [])
+ useEffect(() => {
+ getNames().then(setNames);
+ }, []);
- return (
-
-
- Start API Request Demo - Names List
-
- {names.map((name) => (
- - {name}
- ))}
-
-
-
- )
+ return (
+
+
+ Start API Request Demo - Names List
+
+ {names.map((name) => (
+ - {name}
+ ))}
+
+
+
+ );
}
diff --git a/src/routes/demo/start.server-funcs.tsx b/src/routes/demo/start.server-funcs.tsx
index 7e30a98..c741928 100644
--- a/src/routes/demo/start.server-funcs.tsx
+++ b/src/routes/demo/start.server-funcs.tsx
@@ -1,8 +1,8 @@
-import fs from 'node:fs'
-import { useCallback, useState } from 'react'
-import { createFileRoute, useRouter } from '@tanstack/react-router'
-import { createServerFn } from '@tanstack/react-start'
-import './start.css'
+import fs from 'node:fs';
+import { createFileRoute, useRouter } from '@tanstack/react-router';
+import { createServerFn } from '@tanstack/react-start';
+import { useCallback, useState } from 'react';
+import './start.css';
/*
const loggingMiddleware = createMiddleware().server(
@@ -16,77 +16,77 @@ const loggedServerFunction = createServerFn({ method: "GET" }).middleware([
]);
*/
-const TODOS_FILE = 'todos.json'
+const TODOS_FILE = 'todos.json';
async function readTodos() {
- return JSON.parse(
- await fs.promises.readFile(TODOS_FILE, 'utf-8').catch(() =>
- JSON.stringify(
- [
- { id: 1, name: 'Get groceries' },
- { id: 2, name: 'Buy a new phone' },
- ],
- null,
- 2,
- ),
- ),
- )
+ return JSON.parse(
+ await fs.promises.readFile(TODOS_FILE, 'utf-8').catch(() =>
+ JSON.stringify(
+ [
+ { id: 1, name: 'Get groceries' },
+ { id: 2, name: 'Buy a new phone' },
+ ],
+ null,
+ 2,
+ ),
+ ),
+ );
}
const getTodos = createServerFn({
- method: 'GET',
-}).handler(async () => await readTodos())
+ method: 'GET',
+}).handler(async () => await readTodos());
const addTodo = createServerFn({ method: 'POST' })
- .inputValidator((d: string) => d)
- .handler(async ({ data }) => {
- const todos = await readTodos()
- todos.push({ id: todos.length + 1, name: data })
- await fs.promises.writeFile(TODOS_FILE, JSON.stringify(todos, null, 2))
- return todos
- })
+ .inputValidator((d: string) => d)
+ .handler(async ({ data }) => {
+ const todos = await readTodos();
+ todos.push({ id: todos.length + 1, name: data });
+ await fs.promises.writeFile(TODOS_FILE, JSON.stringify(todos, null, 2));
+ return todos;
+ });
export const Route = createFileRoute('/demo/start/server-funcs')({
- component: Home,
- loader: async () => await getTodos(),
-})
+ component: Home,
+ loader: async () => await getTodos(),
+});
function Home() {
- const router = useRouter()
- let todos = Route.useLoaderData()
+ const router = useRouter();
+ let todos = Route.useLoaderData();
- const [todo, setTodo] = useState('')
+ const [todo, setTodo] = useState('');
- const submitTodo = useCallback(async () => {
- todos = await addTodo({ data: todo })
- setTodo('')
- router.invalidate()
- }, [addTodo, todo])
+ const submitTodo = useCallback(async () => {
+ todos = await addTodo({ data: todo });
+ setTodo('');
+ router.invalidate();
+ }, [addTodo, todo]);
- return (
-
- Start Server Functions - Todo Example
-
- {todos?.map((t) => (
- - {t.name}
- ))}
-
-
- setTodo(e.target.value)}
- onKeyDown={(e) => {
- if (e.key === 'Enter') {
- submitTodo()
- }
- }}
- placeholder="Enter a new todo..."
- />
-
-
-
- )
+ return (
+
+ Start Server Functions - Todo Example
+
+ {todos?.map((t) => (
+ - {t.name}
+ ))}
+
+
+ setTodo(e.target.value)}
+ onKeyDown={(e) => {
+ if (e.key === 'Enter') {
+ submitTodo();
+ }
+ }}
+ placeholder="Enter a new todo..."
+ />
+
+
+
+ );
}
diff --git a/src/routes/demo/start.ssr.data-only.tsx b/src/routes/demo/start.ssr.data-only.tsx
index 84ec99e..d4089d9 100644
--- a/src/routes/demo/start.ssr.data-only.tsx
+++ b/src/routes/demo/start.ssr.data-only.tsx
@@ -1,25 +1,25 @@
-import { createFileRoute } from '@tanstack/react-router'
-import { getPunkSongs } from '@/data/demo.punk-songs'
+import { createFileRoute } from '@tanstack/react-router';
+import { getPunkSongs } from '@/data/demo.punk-songs';
export const Route = createFileRoute('/demo/start/ssr/data-only')({
- ssr: 'data-only',
- component: RouteComponent,
- loader: async () => await getPunkSongs(),
-})
+ ssr: 'data-only',
+ component: RouteComponent,
+ loader: async () => await getPunkSongs(),
+});
function RouteComponent() {
- const punkSongs = Route.useLoaderData()
+ const punkSongs = Route.useLoaderData();
- return (
-
- Data Only SSR - Punk Songs
-
- {punkSongs.map((song) => (
- -
- {song.name} - {song.artist}
-
- ))}
-
-
- )
+ return (
+
+ Data Only SSR - Punk Songs
+
+ {punkSongs.map((song) => (
+ -
+ {song.name} - {song.artist}
+
+ ))}
+
+
+ );
}
diff --git a/src/routes/demo/start.ssr.full-ssr.tsx b/src/routes/demo/start.ssr.full-ssr.tsx
index 84bd3be..c50fcd1 100644
--- a/src/routes/demo/start.ssr.full-ssr.tsx
+++ b/src/routes/demo/start.ssr.full-ssr.tsx
@@ -1,24 +1,24 @@
-import { createFileRoute } from '@tanstack/react-router'
-import { getPunkSongs } from '@/data/demo.punk-songs'
+import { createFileRoute } from '@tanstack/react-router';
+import { getPunkSongs } from '@/data/demo.punk-songs';
export const Route = createFileRoute('/demo/start/ssr/full-ssr')({
- component: RouteComponent,
- loader: async () => await getPunkSongs(),
-})
+ component: RouteComponent,
+ loader: async () => await getPunkSongs(),
+});
function RouteComponent() {
- const punkSongs = Route.useLoaderData()
+ const punkSongs = Route.useLoaderData();
- return (
-
- Full SSR - Punk Songs
-
- {punkSongs.map((song) => (
- -
- {song.name} - {song.artist}
-
- ))}
-
-
- )
+ return (
+
+ Full SSR - Punk Songs
+
+ {punkSongs.map((song) => (
+ -
+ {song.name} - {song.artist}
+
+ ))}
+
+
+ );
}
diff --git a/src/routes/demo/start.ssr.index.tsx b/src/routes/demo/start.ssr.index.tsx
index 80e2cfd..41cde72 100644
--- a/src/routes/demo/start.ssr.index.tsx
+++ b/src/routes/demo/start.ssr.index.tsx
@@ -1,24 +1,24 @@
-import { createFileRoute, Link } from '@tanstack/react-router'
+import { createFileRoute, Link } from '@tanstack/react-router';
export const Route = createFileRoute('/demo/start/ssr/')({
- component: RouteComponent,
-})
+ component: RouteComponent,
+});
function RouteComponent() {
- return (
-
- SSR Demos
-
- -
- SPA Mode
-
- -
- Full SSR
-
- -
- Data Only
-
-
-
- )
+ return (
+
+ SSR Demos
+
+ -
+ SPA Mode
+
+ -
+ Full SSR
+
+ -
+ Data Only
+
+
+
+ );
}
diff --git a/src/routes/demo/start.ssr.spa-mode.tsx b/src/routes/demo/start.ssr.spa-mode.tsx
index d09434b..a81e8fd 100644
--- a/src/routes/demo/start.ssr.spa-mode.tsx
+++ b/src/routes/demo/start.ssr.spa-mode.tsx
@@ -1,31 +1,31 @@
-import { useEffect, useState } from 'react'
-import { createFileRoute } from '@tanstack/react-router'
-import { getPunkSongs } from '@/data/demo.punk-songs'
+import { createFileRoute } from '@tanstack/react-router';
+import { useEffect, useState } from 'react';
+import { getPunkSongs } from '@/data/demo.punk-songs';
export const Route = createFileRoute('/demo/start/ssr/spa-mode')({
- ssr: false,
- component: RouteComponent,
-})
+ ssr: false,
+ component: RouteComponent,
+});
function RouteComponent() {
- const [punkSongs, setPunkSongs] = useState<
- Awaited>
- >([])
+ const [punkSongs, setPunkSongs] = useState<
+ Awaited>
+ >([]);
- useEffect(() => {
- getPunkSongs().then(setPunkSongs)
- }, [])
+ useEffect(() => {
+ getPunkSongs().then(setPunkSongs);
+ }, []);
- return (
-
- SPA Mode - Punk Songs
-
- {punkSongs.map((song) => (
- -
- {song.name} - {song.artist}
-
- ))}
-
-
- )
+ return (
+
+ SPA Mode - Punk Songs
+
+ {punkSongs.map((song) => (
+ -
+ {song.name} - {song.artist}
+
+ ))}
+
+
+ );
}
diff --git a/src/routes/index.tsx b/src/routes/index.tsx
index 20aae92..24122e0 100644
--- a/src/routes/index.tsx
+++ b/src/routes/index.tsx
@@ -1,37 +1,37 @@
-import { createFileRoute } from '@tanstack/react-router'
-import '../App.css'
+import { createFileRoute } from '@tanstack/react-router';
+import '../App.css';
-export const Route = createFileRoute('/')({ component: App })
+export const Route = createFileRoute('/')({ component: App });
function App() {
- return (
-
- )
+ return (
+
+ );
}
|