Просмотр исходного кода

Extract logging to its own file

Loris Leiva 1 год назад
Родитель
Сommit
eb0d50ac2d
3 измененных файлов с 53 добавлено и 51 удалено
  1. 4 31
      index.ts
  2. 0 20
      utils/getBanner.ts
  3. 49 0
      utils/getLogs.ts

+ 4 - 31
index.ts

@@ -10,7 +10,7 @@ import {
   preOrderDirectoryTraverse,
 } from "./utils/directoryTraverse";
 import { generateReadme } from "./utils/generateReadme";
-import { consoleLogBanner } from "./utils/getBanner";
+import { logBanner, logEnd, logStart } from "./utils/getLogs";
 import { RenderContext, getRenderContext } from "./utils/getRenderContext";
 import renderTemplate from "./utils/renderTemplate";
 
@@ -19,20 +19,10 @@ init().catch((e) => {
 });
 
 async function init() {
-  // Welcome message.
-  consoleLogBanner();
-
-  // Gather user inputs.
+  logBanner();
   const ctx = await getRenderContext();
-  // console.log(ctx);
-
-  // Prepare the target directory.
   createOrEmptyTargetDirectory(ctx);
-
-  // Log start of scaffolding.
-  console.log(
-    `\n${ctx.language.infos.scaffolding} ${ctx.targetDirectoryName}...`
-  );
+  logStart(ctx);
 
   // Prepare rendering function and accumulate callbacks.
   const callbacks = [];
@@ -79,24 +69,7 @@ async function init() {
   );
 
   // Log end of scaffolding.
-  console.log(`\n${ctx.language.infos.done}\n`);
-
-  // Log next steps: Cd into the target directory.
-  if (ctx.targetDirectory !== ctx.currentDirectory) {
-    const cdCommand = `cd ${ctx.targetDirectoryName.includes(" ") ? `"${ctx.targetDirectoryName}"` : ctx.targetDirectoryName}`;
-    console.log(`  ${chalk.bold(chalk.green(cdCommand))}`);
-  }
-
-  // Log next steps: Install dependencies.
-  const installCommand = ctx.getCommand("install");
-  console.log(`  ${chalk.bold(chalk.green(installCommand))}`);
-
-  // Log next steps: Generate Idls and clients.
-  const generateCommand = ctx.getCommand("generate");
-  console.log(`  ${chalk.bold(chalk.green(generateCommand))}`);
-
-  // Final line break.
-  console.log();
+  logEnd(ctx);
 }
 
 function createOrEmptyTargetDirectory(ctx: RenderContext) {

+ 0 - 20
utils/getBanner.ts

@@ -1,20 +0,0 @@
-import chalk from "chalk";
-import gradient from "gradient-string";
-
-export function getBanner() {
-  const textBanner = "Create Solana Program";
-  const gradientBanner = chalk.bold(
-    gradient(["#89d7c8", "#dc7a8b"])(textBanner, {
-      interpolation: "hsv",
-      hsvSpin: "long",
-    })
-  );
-
-  return process.stdout.isTTY && process.stdout.getColorDepth() > 8
-    ? gradientBanner
-    : textBanner;
-}
-
-export function consoleLogBanner() {
-  console.log(`\n${getBanner()}\n`);
-}

+ 49 - 0
utils/getLogs.ts

@@ -0,0 +1,49 @@
+import chalk from "chalk";
+import gradient from "gradient-string";
+
+import type { RenderContext } from "./getRenderContext";
+
+export function logBanner() {
+  console.log(`\n${getBanner()}\n`);
+}
+
+export function logStart(ctx: RenderContext) {
+  console.log(
+    `\n${ctx.language.infos.scaffolding} ${ctx.targetDirectoryName}...`
+  );
+}
+
+export function logEnd(ctx: RenderContext) {
+  console.log(`\n${ctx.language.infos.done}\n`);
+
+  // Log next steps: Cd into the target directory.
+  if (ctx.targetDirectory !== ctx.currentDirectory) {
+    const cdCommand = `cd ${ctx.targetDirectoryName.includes(" ") ? `"${ctx.targetDirectoryName}"` : ctx.targetDirectoryName}`;
+    console.log(`  ${chalk.bold(chalk.green(cdCommand))}`);
+  }
+
+  // Log next steps: Install dependencies.
+  const installCommand = ctx.getCommand("install");
+  console.log(`  ${chalk.bold(chalk.green(installCommand))}`);
+
+  // Log next steps: Generate Idls and clients.
+  const generateCommand = ctx.getCommand("generate");
+  console.log(`  ${chalk.bold(chalk.green(generateCommand))}`);
+
+  // Final line break.
+  console.log();
+}
+
+function getBanner() {
+  const textBanner = "Create Solana Program";
+  const gradientBanner = chalk.bold(
+    gradient(["#89d7c8", "#dc7a8b"])(textBanner, {
+      interpolation: "hsv",
+      hsvSpin: "long",
+    })
+  );
+
+  return process.stdout.isTTY && process.stdout.getColorDepth() > 8
+    ? gradientBanner
+    : textBanner;
+}