add todo file feature

This commit is contained in:
2024-11-07 11:18:29 -05:00
parent e51eea242b
commit 2f809fb82e
3 changed files with 27 additions and 6 deletions

1
.gitignore vendored
View File

@@ -2,3 +2,4 @@
/node_modules/ /node_modules/
/dist/ /dist/
prompt.md prompt.md
todo

View File

@@ -1,6 +1,6 @@
{ {
"name": "code-tokenizer-md", "name": "code-tokenizer-md",
"version": "1.0.0", "version": "1.0.1",
"type": "module", "type": "module",
"main": "dist/index.js", "main": "dist/index.js",
"bin": { "bin": {
@@ -12,7 +12,9 @@
"scripts": { "scripts": {
"build": "rm -rf dist && mkdir dist && cp src/*.js dist/", "build": "rm -rf dist && mkdir dist && cp src/*.js dist/",
"test": "echo \"No tests specified\" && exit 0", "test": "echo \"No tests specified\" && exit 0",
"prepublishOnly": "npm run build" "prepublishOnly": "npm run build",
"dev": "node ./src/cli.js",
"deploy:dev": "pnpm publish ."
}, },
"dependencies": { "dependencies": {
"llama3-tokenizer-js": "^1.0.0" "llama3-tokenizer-js": "^1.0.0"

View File

@@ -1,6 +1,7 @@
import path from 'path'; import path from 'path';
import { execSync } from 'child_process'; import { execSync } from 'child_process';
import fs from 'fs/promises'; import fs from 'fs/promises';
import { readFile, writeFile } from 'fs/promises';
import llama3Tokenizer from 'llama3-tokenizer-js'; import llama3Tokenizer from 'llama3-tokenizer-js';
import { TokenCleaner } from './TokenCleaner.js'; import { TokenCleaner } from './TokenCleaner.js';
@@ -69,16 +70,33 @@ export class MarkdownGenerator {
return markdownContent; return markdownContent;
} }
async getTodo() {
try {
console.log("getting project todo")
return await readFile('./todo', 'utf-8');
} catch (error) {
if (error.code === 'ENOENT') { // File does not exist
console.log("File not found, creating a new 'todo' file.");
await writeFile('./todo', ''); // Create an empty 'todo' file
return this.getTodo(); // Call the function again
} else {
console.error(`Error reading todo file:`, error);
}
}
}
async createMarkdownDocument() { async createMarkdownDocument() {
try { try {
const markdownContent = await this.generateMarkdown(); const codeMarkdown = await this.generateMarkdown();
await fs.writeFile(this.outputFilePath, markdownContent); const todos = await this.getTodo();
const markdown = codeMarkdown + `\n---\n${todos}\n`;
await fs.writeFile(this.outputFilePath, markdown);
if (this.verbose) { if (this.verbose) {
console.log(`Markdown document created at ${this.outputFilePath}`); console.log(`Markdown document created at ${this.outputFilePath}`);
const totalTokens = llama3Tokenizer.encode(markdownContent).length; const totalTokens = llama3Tokenizer.encode(markdown).length;
console.log({total_tokens: totalTokens}); console.log({total_tokens: totalTokens});
} }
return { success: true, tokenCount: llama3Tokenizer.encode(markdownContent).length }; return { success: true, tokenCount: llama3Tokenizer.encode(markdown).length };
} catch (error) { } catch (error) {
if (this.verbose) console.error('Error writing markdown document:', error); if (this.verbose) console.error('Error writing markdown document:', error);
return { success: false, error }; return { success: false, error };