From d22e3edc3148873378d35292f664c0ad0f64b4d5 Mon Sep 17 00:00:00 2001 From: Philip Nuzhnyi Date: Tue, 26 Mar 2024 23:25:48 +0000 Subject: [PATCH 1/2] add missing deps for runtime --- src/page-generator.ts | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/page-generator.ts b/src/page-generator.ts index c583dec..7ec81cd 100644 --- a/src/page-generator.ts +++ b/src/page-generator.ts @@ -27,9 +27,16 @@ function writeConfigFiles(directory: string, wizardState: WizardState) { devstart: "next dev -p 5656 & node start.js", dev: "next dev -p 5656", build: "next build", - start: "next start", + start: "next start" }, - keywords: wizardState.coreThemes?.split(",").map((kw) => kw.trim()) || [], + dependencies: { + next: "latest", + nextra: "latest", + "nextra-theme-docs": "latest", + react: "^18", + "react-dom": "^18" + }, + keywords: wizardState.coreThemes?.split(",").map((kw) => kw.trim()) || [] }; fs.writeFileSync( @@ -173,7 +180,7 @@ export function idempotentlySetupNextraDocs( `${runner.command} ${runner.installPrefix} react react-dom next nextra nextra-theme-docs typescript @types/node`, { cwd: directory, - stdio: "inherit", + stdio: "inherit" } ); } catch (err) { @@ -205,7 +212,7 @@ export async function generatePages( if (startNextra) { const devProcess = exec(`${preferredRunner.command} run devstart`, { - cwd: path.join(pagesFolder, ".."), + cwd: path.join(pagesFolder, "..") // stdio: "ignore", // detached: true, }); @@ -255,7 +262,7 @@ export async function generatePages( ...JSON.parse( fs.readFileSync(path.join(pagesFolder, "_meta.json"), "utf-8") ), - [pages[0].section.permalink]: "Basics", + [pages[0].section.permalink]: "Basics" }) ); } From 735e2fceaae95a1e6656dd86a1d1989568478bda Mon Sep 17 00:00:00 2001 From: Philip Nuzhnyi Date: Sat, 6 Apr 2024 10:59:38 +0100 Subject: [PATCH 2/2] lint some more --- src/app.ts | 34 +++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/src/app.ts b/src/app.ts index eb5e27e..72df2da 100644 --- a/src/app.ts +++ b/src/app.ts @@ -3,7 +3,6 @@ import fs from "node:fs"; import path from "node:path"; import { countTokens } from "@anthropic-ai/tokenizer"; -import { YoutubeTranscript } from 'youtube-transcript'; import { Separator, checkbox, @@ -13,6 +12,7 @@ import { password, select } from "@inquirer/prompts"; +import { YoutubeTranscript } from "youtube-transcript"; import { CLAUDE_PRIMARYSOURCE_BUDGET, getClaudeCosts, @@ -120,24 +120,36 @@ async function runWizard() { "What's your primary source? \n Drag a text file (or youtube link, experimental) in here, or leave empty/whitespace to open an editor: ", default: wizardState.primarySourceFilename || undefined, validate: async (filename) => { - if(filename?.trim()) { - if((filename === wizardState.primarySourceFilename || filename === parsePlatformIndependentPath(filename)) && wizardState.loadedPrimarySource) return true; + if (filename?.trim()) { + if ( + (filename === wizardState.primarySourceFilename || + filename === parsePlatformIndependentPath(filename)) && + wizardState.loadedPrimarySource + ) + return true; if (filename.includes("youtube.com")) { try { - const transcript = await YoutubeTranscript.fetchTranscript(filename); - wizardState.loadedPrimarySource = transcript.map((line) => line.text).join("\n"); + const transcript = + await YoutubeTranscript.fetchTranscript(filename); + wizardState.loadedPrimarySource = transcript + .map((line) => line.text) + .join("\n"); wizardState.primarySourceFilename = filename; - } catch(err) { + } catch (err) { return `Looked like a youtube video - Couldn't fetch transcript from ${filename}: ${err}`; } - } else if(!fs.existsSync(parsePlatformIndependentPath(filename))) { + } else if (!fs.existsSync(parsePlatformIndependentPath(filename))) { return `File not found - tried to load ${filename}. Try again.`; } else { try { - const dataFromFile = fs.readFileSync(parsePlatformIndependentPath(filename), "utf-8"); + const dataFromFile = fs.readFileSync( + parsePlatformIndependentPath(filename), + "utf-8" + ); wizardState.loadedPrimarySource = dataFromFile; - wizardState.primarySourceFilename = parsePlatformIndependentPath(filename); - } catch(err) { + wizardState.primarySourceFilename = + parsePlatformIndependentPath(filename); + } catch (err) { return `Couldn't read file - tried to load ${filename}. Try again.`; } } @@ -148,7 +160,7 @@ async function runWizard() { saveState(wizardState); - if(!wizardState.loadedPrimarySource) { + if (!wizardState.loadedPrimarySource) { const editorName = await select({ message: "Because there's a chance you never changed $EDITOR from vim, pick an editor!",