From d3bf2cec2af1947e4ac673971124c31e007bb23c Mon Sep 17 00:00:00 2001 From: Jackson Morgan Date: Mon, 10 Feb 2025 12:16:38 -0500 Subject: [PATCH] Fixed bugs around prepublish in generated code --- packages/cli/src/create.ts | 17 +++++------------ packages/cli/src/generateReadme.ts | 20 ++++++++++++++++++++ packages/cli/src/index.ts | 6 +++--- 3 files changed, 28 insertions(+), 15 deletions(-) diff --git a/packages/cli/src/create.ts b/packages/cli/src/create.ts index 8f04a1e..b959880 100644 --- a/packages/cli/src/create.ts +++ b/packages/cli/src/create.ts @@ -90,22 +90,11 @@ export async function create(directory: string) { packageJson.scripts.prepublish = "npm run build:ldo & npm run generate-readme"; packageJson.scripts[ - "genenerate-readme" + "generate-readme" ] = `ldo generate-readme --project ./ --shapes ./.shapes --ldo ./.ldo`; return packageJson; }); - // Create index.js - load.text = "Generating index.js"; - const ldoDir = await fs.readdir(path.join(directory, "./.ldo"), { - withFileTypes: true, - }); - const indexText = await renderFile( - path.join(__dirname, "./templates/readme/projectIndex.ejs"), - { fileNames: ldoDir.map((file) => file.name) }, - ); - await fs.writeFile(path.join(directory, "index.js"), indexText); - // Generate ReadMe load.text = "Generating README"; await generateReadme({ @@ -114,5 +103,9 @@ export async function create(directory: string) { ldo: path.join(directory, ".ldo"), }); + // Create .gitignore + load.text = "Create .gitignore"; + await fs.writeFile(path.join(directory, ".gitignore"), "node_modules"); + load.stop(); } diff --git a/packages/cli/src/generateReadme.ts b/packages/cli/src/generateReadme.ts index c0df82f..8987f38 100644 --- a/packages/cli/src/generateReadme.ts +++ b/packages/cli/src/generateReadme.ts @@ -66,6 +66,8 @@ export async function generateReadme(options: GenerateReadmeOptions) { ); // Save readme to document await fs.writeFile(path.join(options.project, "README.md"), finalContent); + + await generateIndex({ project: options.project }); } /** @@ -79,3 +81,21 @@ function listInterfaces(filePath: string): string[] { const interfaces = sourceFile.getInterfaces().map((iface) => iface.getName()); return interfaces; } + +/** + * Generate Index + */ +interface GenerateIndexOptions { + project: string; +} + +export async function generateIndex(options: GenerateIndexOptions) { + const ldoDir = await fs.readdir(path.join(options.project, "./.ldo"), { + withFileTypes: true, + }); + const indexText = await renderFile( + path.join(__dirname, "./templates/readme/projectIndex.ejs"), + { fileNames: ldoDir.map((file) => file.name) }, + ); + await fs.writeFile(path.join(options.project, "index.js"), indexText); +} diff --git a/packages/cli/src/index.ts b/packages/cli/src/index.ts index 31e96ae..ed0b35e 100644 --- a/packages/cli/src/index.ts +++ b/packages/cli/src/index.ts @@ -33,9 +33,9 @@ program .command("generate-readme") .description("Create a ReadMe from the shapes and generated code.") .requiredOption( - "-r, --readme ", - "Provide the path to the readme", - "./.shapes", + "-p, --project ", + "Provide the path to the root project", + "./", ) .requiredOption( "-s, --shapes ",