create-better-t-stack 2.16.2 → 2.16.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js
CHANGED
|
@@ -1517,23 +1517,6 @@ async function executeNeonCommand(packageManager, commandArgsString, spinnerText
|
|
|
1517
1517
|
throw error;
|
|
1518
1518
|
}
|
|
1519
1519
|
}
|
|
1520
|
-
async function isNeonAuthenticated(packageManager) {
|
|
1521
|
-
try {
|
|
1522
|
-
const commandArgsString = "neonctl projects list";
|
|
1523
|
-
const result = await executeNeonCommand(packageManager, commandArgsString);
|
|
1524
|
-
return !result.stdout.includes("not authenticated") && !result.stdout.includes("error");
|
|
1525
|
-
} catch {
|
|
1526
|
-
return false;
|
|
1527
|
-
}
|
|
1528
|
-
}
|
|
1529
|
-
async function authenticateWithNeon(packageManager) {
|
|
1530
|
-
try {
|
|
1531
|
-
await executeNeonCommand(packageManager, "neonctl auth", "Authenticating with Neon...");
|
|
1532
|
-
return true;
|
|
1533
|
-
} catch (_error) {
|
|
1534
|
-
consola$1.error(pc.red("Failed to authenticate with Neon"));
|
|
1535
|
-
}
|
|
1536
|
-
}
|
|
1537
1520
|
async function createNeonProject(projectName, regionId, packageManager) {
|
|
1538
1521
|
try {
|
|
1539
1522
|
const commandArgsString = `neonctl projects create --name ${projectName} --region-id ${regionId} --output json`;
|
|
@@ -1578,15 +1561,7 @@ DATABASE_URL="your_connection_string"`);
|
|
|
1578
1561
|
}
|
|
1579
1562
|
async function setupNeonPostgres(config) {
|
|
1580
1563
|
const { packageManager, projectDir } = config;
|
|
1581
|
-
const setupSpinner = spinner();
|
|
1582
|
-
setupSpinner.start("Checking Neon authentication...");
|
|
1583
1564
|
try {
|
|
1584
|
-
const isAuthenticated = await isNeonAuthenticated(packageManager);
|
|
1585
|
-
setupSpinner.stop("Neon authentication checked");
|
|
1586
|
-
if (!isAuthenticated) {
|
|
1587
|
-
log.info("Please authenticate with Neon to continue:");
|
|
1588
|
-
await authenticateWithNeon(packageManager);
|
|
1589
|
-
}
|
|
1590
1565
|
const suggestedProjectName = path.basename(projectDir);
|
|
1591
1566
|
const projectName = await text({
|
|
1592
1567
|
message: "Enter a name for your Neon project:",
|
|
@@ -1610,7 +1585,6 @@ async function setupNeonPostgres(config) {
|
|
|
1610
1585
|
await writeEnvFile(projectDir, config$1);
|
|
1611
1586
|
finalSpinner.stop("Neon database configured!");
|
|
1612
1587
|
} catch (error) {
|
|
1613
|
-
setupSpinner.stop(pc.red("Neon authentication check failed"));
|
|
1614
1588
|
if (error instanceof Error) consola$1.error(pc.red(error.message));
|
|
1615
1589
|
await writeEnvFile(projectDir);
|
|
1616
1590
|
displayManualSetupInstructions();
|
|
@@ -1946,7 +1920,7 @@ function generateScriptsList(packageManagerRunCmd, database, orm, _auth, hasNati
|
|
|
1946
1920
|
|
|
1947
1921
|
//#endregion
|
|
1948
1922
|
//#region src/helpers/project-generation/install-dependencies.ts
|
|
1949
|
-
async function installDependencies({ projectDir, packageManager
|
|
1923
|
+
async function installDependencies({ projectDir, packageManager }) {
|
|
1950
1924
|
const s = spinner();
|
|
1951
1925
|
try {
|
|
1952
1926
|
s.start(`Running ${packageManager} install...`);
|
|
@@ -1955,26 +1929,11 @@ async function installDependencies({ projectDir, packageManager, addons = [] })
|
|
|
1955
1929
|
stderr: "inherit"
|
|
1956
1930
|
})`${packageManager} install`;
|
|
1957
1931
|
s.stop("Dependencies installed successfully");
|
|
1958
|
-
if (addons.includes("biome") || addons.includes("husky")) await runBiomeCheck(projectDir, packageManager);
|
|
1959
1932
|
} catch (error) {
|
|
1960
1933
|
s.stop(pc.red("Failed to install dependencies"));
|
|
1961
1934
|
if (error instanceof Error) consola.error(pc.red(`Installation error: ${error.message}`));
|
|
1962
1935
|
}
|
|
1963
1936
|
}
|
|
1964
|
-
async function runBiomeCheck(projectDir, packageManager) {
|
|
1965
|
-
const s = spinner();
|
|
1966
|
-
try {
|
|
1967
|
-
s.start("Running Biome format check...");
|
|
1968
|
-
await $({
|
|
1969
|
-
cwd: projectDir,
|
|
1970
|
-
stderr: "inherit"
|
|
1971
|
-
})`${packageManager} biome check --write .`;
|
|
1972
|
-
s.stop("Biome check completed successfully");
|
|
1973
|
-
} catch (_error) {
|
|
1974
|
-
s.stop(pc.yellow("Biome check encountered issues"));
|
|
1975
|
-
log.warn(pc.yellow("Some files may need manual formatting"));
|
|
1976
|
-
}
|
|
1977
|
-
}
|
|
1978
1937
|
|
|
1979
1938
|
//#endregion
|
|
1980
1939
|
//#region src/helpers/project-generation/post-installation.ts
|
|
@@ -2642,8 +2601,7 @@ async function createProject(options) {
|
|
|
2642
2601
|
log.success("Project template successfully scaffolded!");
|
|
2643
2602
|
if (options.install) await installDependencies({
|
|
2644
2603
|
projectDir,
|
|
2645
|
-
packageManager: options.packageManager
|
|
2646
|
-
addons: options.addons
|
|
2604
|
+
packageManager: options.packageManager
|
|
2647
2605
|
});
|
|
2648
2606
|
displayPostInstallInstructions({
|
|
2649
2607
|
...options,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-better-t-stack",
|
|
3
|
-
"version": "2.16.
|
|
3
|
+
"version": "2.16.4",
|
|
4
4
|
"description": "A modern CLI tool for scaffolding end-to-end type-safe TypeScript projects with best practices and customizable configurations",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -3,7 +3,7 @@ import Loader from "@/components/loader";
|
|
|
3
3
|
import { ThemeProvider } from "@/components/theme-provider";
|
|
4
4
|
import { Toaster } from "@/components/ui/sonner";
|
|
5
5
|
{{#if (eq api "orpc")}}
|
|
6
|
-
import { link, orpc
|
|
6
|
+
import { link, orpc } from "@/utils/orpc";
|
|
7
7
|
import type { QueryClient } from "@tanstack/react-query";
|
|
8
8
|
import { ReactQueryDevtools } from "@tanstack/react-query-devtools";
|
|
9
9
|
import { useState } from "react";
|