From ded8f89f3dba89df2f7ef1289b4f2dce6b41ed08 Mon Sep 17 00:00:00 2001 From: Aman Varshney Date: Sat, 7 Jun 2025 10:30:02 +0530 Subject: [PATCH] Refactor Neon authentication logic --- .changeset/great-trains-cry.md | 5 +++ .../helpers/database-providers/neon-setup.ts | 39 ------------------- .../tanstack-router/src/routes/__root.tsx.hbs | 2 +- 3 files changed, 6 insertions(+), 40 deletions(-) create mode 100644 .changeset/great-trains-cry.md diff --git a/.changeset/great-trains-cry.md b/.changeset/great-trains-cry.md new file mode 100644 index 0000000..47a71ce --- /dev/null +++ b/.changeset/great-trains-cry.md @@ -0,0 +1,5 @@ +--- +"create-better-t-stack": patch +--- + +Refactor Neon authentication logic diff --git a/apps/cli/src/helpers/database-providers/neon-setup.ts b/apps/cli/src/helpers/database-providers/neon-setup.ts index 6d29ca9..77f0615 100644 --- a/apps/cli/src/helpers/database-providers/neon-setup.ts +++ b/apps/cli/src/helpers/database-providers/neon-setup.ts @@ -58,32 +58,6 @@ async function executeNeonCommand( } } -async function isNeonAuthenticated(packageManager: PackageManager) { - try { - const commandArgsString = "neonctl projects list"; - const result = await executeNeonCommand(packageManager, commandArgsString); - return ( - !result.stdout.includes("not authenticated") && - !result.stdout.includes("error") - ); - } catch { - return false; - } -} - -async function authenticateWithNeon(packageManager: PackageManager) { - try { - await executeNeonCommand( - packageManager, - "neonctl auth", - "Authenticating with Neon...", - ); - return true; - } catch (_error) { - consola.error(pc.red("Failed to authenticate with Neon")); - } -} - async function createNeonProject( projectName: string, regionId: string, @@ -153,19 +127,8 @@ DATABASE_URL="your_connection_string"`); export async function setupNeonPostgres(config: ProjectConfig): Promise { const { packageManager, projectDir } = config; - const setupSpinner = spinner(); - setupSpinner.start("Checking Neon authentication..."); try { - const isAuthenticated = await isNeonAuthenticated(packageManager); - - setupSpinner.stop("Neon authentication checked"); - - if (!isAuthenticated) { - log.info("Please authenticate with Neon to continue:"); - await authenticateWithNeon(packageManager); - } - const suggestedProjectName = path.basename(projectDir); const projectName = await text({ message: "Enter a name for your Neon project:", @@ -204,8 +167,6 @@ export async function setupNeonPostgres(config: ProjectConfig): Promise { finalSpinner.stop("Neon database configured!"); } catch (error) { - setupSpinner.stop(pc.red("Neon authentication check failed")); - if (error instanceof Error) { consola.error(pc.red(error.message)); } diff --git a/apps/cli/templates/frontend/react/tanstack-router/src/routes/__root.tsx.hbs b/apps/cli/templates/frontend/react/tanstack-router/src/routes/__root.tsx.hbs index 9caa32a..258a240 100644 --- a/apps/cli/templates/frontend/react/tanstack-router/src/routes/__root.tsx.hbs +++ b/apps/cli/templates/frontend/react/tanstack-router/src/routes/__root.tsx.hbs @@ -3,7 +3,7 @@ import Loader from "@/components/loader"; import { ThemeProvider } from "@/components/theme-provider"; import { Toaster } from "@/components/ui/sonner"; {{#if (eq api "orpc")}} -import { link, orpc, ORPCContext } from "@/utils/orpc"; +import { link, orpc } from "@/utils/orpc"; import type { QueryClient } from "@tanstack/react-query"; import { ReactQueryDevtools } from "@tanstack/react-query-devtools"; import { useState } from "react";