From 2fb1568d97500ffc11ff1496e5829a584752d7ba Mon Sep 17 00:00:00 2001 From: Geoff Seemueller Date: Thu, 21 Nov 2024 14:28:26 -0500 Subject: [PATCH] Add Bun support and improve build process Updated project to use Bun runtime, including changes to build and development scripts, plugin additions, and configuration updates in tsconfig.json and package.json. Enhanced README documentation and migrated source files to TypeScript. --- README.md | 100 ++++++++++++++++++++++++++++++++++++++++---------- build.ts | 11 +++++- bun.lockb | Bin 43021 -> 67493 bytes package.json | 31 +++++++++++----- src/index.ts | 2 +- tsconfig.json | 1 - 6 files changed, 112 insertions(+), 33 deletions(-) diff --git a/README.md b/README.md index 2e8fe97..3157c65 100644 --- a/README.md +++ b/README.md @@ -2,14 +2,11 @@ > Created to push creative limits. -Process git repository files into markdown with token counting and sensitive -data redaction. +Process git repository files into markdown with token counting and sensitive data redaction. ## Overview -`code-tokenizer-md` is a Node.js tool that processes git repository files, -cleans code, redacts sensitive information, and generates markdown documentation -with token counts. +`code-tokenizer-md` is a TypeScript/Bun tool that processes git repository files, cleans code, redacts sensitive information, and generates markdown documentation with token counts. ```mermaid graph TD @@ -52,26 +49,31 @@ graph TD ## Requirements - Node.js (>=14.0.0) +- Bun runtime - Git repository -- npm or npx ## Installation -```shell -npm install -g code-tokenizer-md -``` + ## Usage -### Quick Start +### CLI ```shell npx code-tokenizer-md ``` +### Library +### +```shell +npm install code-tokenizer-md +``` + + ### Programmatic Usage -```javascript +```typescript import { MarkdownGenerator } from 'code-tokenizer-md'; const generator = new MarkdownGenerator({ @@ -86,10 +88,12 @@ const result = await generator.createMarkdownDocument(); ``` src/ -├── index.js # Main exports -├── TokenCleaner.js # Code cleaning and redaction -├── MarkdownGenerator.js # Markdown generation logic -└── cli.js # CLI implementation +├── index.ts # Main exports +├── TokenCleaner.ts # Code cleaning and redaction +├── MarkdownGenerator.ts # Markdown generation logic +├── cli.ts # CLI implementation +├── fileExclusions.ts # File exclusion patterns +└── fileTypeExclusions.ts # File type exclusions ``` ## Dependencies @@ -97,25 +101,81 @@ src/ ```json { "dependencies": { - "llama3-tokenizer-js": "^1.0.0" + "llama3-tokenizer-js": "^1.0.0", + "micromatch": "^4.0.8" }, "peerDependencies": { "node": ">=14.0.0" + }, + "devDependencies": { + "@eslint/js": "^9.14.0", + "eslint": "^9.14.0", + "globals": "^15.12.0", + "prettier": "^3.3.3", + "bun": "latest", + "@types/bun": "latest", + "@types/node": "^22.9.1", + "@types/micromatch": "^4.0.9" } } ``` +## Development + +This project uses [bun](https://github.com/oven-sh/bun) for it's toolchain. You should be able to use whatever you want as a consumer of the library. + +### Building +```shell +npm run build +``` + +### Testing + +```shell +npm test +``` + +### Linting and Formatting + +```shell +# Lint +npm run lint + +# Fix linting issues +npm run lint:fix + +# Format code +npm run format + +# Fix all (format + lint) +npm run fix +``` + ## Extending ### Adding Custom Patterns -```javascript +```typescript const generator = new MarkdownGenerator({ customPatterns: [{ regex: /TODO:/g, replacement: '' }], customSecretPatterns: [{ regex: /mySecret/g, replacement: '[REDACTED]' }], }); ``` +### Configuration Options + +```typescript +interface MarkdownGeneratorOptions { + dir?: string; // Project directory + outputFilePath?: string; // Output markdown file path + fileTypeExclusions?: Set; // File types to exclude + fileExclusions?: string[]; // File patterns to exclude + customPatterns?: Record; // Custom cleaning patterns + customSecretPatterns?: Record; // Custom redaction patterns + verbose?: boolean; // Enable verbose logging +} +``` + ## Contributing 1. Fork the repository @@ -126,10 +186,10 @@ const generator = new MarkdownGenerator({ ### Contribution Guidelines -- Follow Node.js best practices +- Write TypeScript code following the project's style - Include appropriate error handling - Add documentation for new features -- Include tests for new functionality (this project needs a suite) +- Include tests for new functionality - Update the README for significant changes ## License @@ -138,4 +198,4 @@ MIT © 2024 Geoff Seemueller ## Note -This tool requires a git repository to function properly. +This tool requires a git repository to function properly. \ No newline at end of file diff --git a/build.ts b/build.ts index 9adf48e..2333267 100644 --- a/build.ts +++ b/build.ts @@ -1,5 +1,12 @@ +import isolatedDecl from 'bun-plugin-isolated-decl'; + await Bun.build({ - entrypoints: ['./src/cli.ts'], + entrypoints: ['./src/cli.ts', './src/index.ts'], outdir: './dist', target: 'node', -}); \ No newline at end of file + plugins: [ + isolatedDecl({ + forceGenerate: true, // Generate declaration files even if there are errors + }) + ], +}); diff --git a/bun.lockb b/bun.lockb index b145f6c656b5bf4778b06b673982868dcdde31da..314760774bfbbf9daa2aab98a2ca3ca65c4c94d5 100755 GIT binary patch delta 23037 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 delta 7213 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 XE_^6c$EE7wvNu~T&ps{xx9|S~nzTz; diff --git a/package.json b/package.json index 42e53e9..ec99b65 100644 --- a/package.json +++ b/package.json @@ -1,20 +1,30 @@ { "name": "code-tokenizer-md", - "version": "1.0.11", + "version": "1.0.12", "type": "module", - "main": "dist/index.js", + "main": "src/index.ts", + "module": "src/index.ts", + "exports": { + ".": { + "import": { + "types": "./src/index.ts", + "default": "./dist/index.js" + } + } + }, "bin": { "code-tokenizer-md": "./dist/cli.js" }, "files": [ "dist" ], + "types": "", "scripts": { - "build": "rm -rf dist && bun run build.ts", + "build": "rm -rf dist && bun ./build.ts", "test": "bun test", "prepublishOnly": "npm run build", - "dev": "npx .", - "deploy:dev": "pnpm build && pnpm publish .", + "dev": "bun run .", + "deploy:dev": "bun run build && pnpm publish .", "lint": "eslint src/", "lint:fix": "eslint src/ --fix", "format": "prettier --write \"**/*.{js,jsx,ts,tsx,json,md,yml,yaml}\"", @@ -29,12 +39,15 @@ }, "devDependencies": { "@eslint/js": "^9.14.0", + "@types/bun": "latest", + "@types/micromatch": "^4.0.9", + "@types/node": "^22.9.1", + "bun": "latest", + "bun-plugin-isolated-decl": "^0.1.6", "eslint": "^9.14.0", "globals": "^15.12.0", + "oxc-transform": "^0.37.0", "prettier": "^3.3.3", - "bun": "latest", - "@types/bun": "latest", - "@types/node": "^22.9.1", - "@types/micromatch": "^4.0.9" + "typescript": "^5.6.3" } } diff --git a/src/index.ts b/src/index.ts index 3675345..54b0d84 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,2 +1,2 @@ export { TokenCleaner } from './TokenCleaner'; -export { MarkdownGenerator } from './MarkdownGenerator'; +export { MarkdownGenerator } from './MarkdownGenerator'; \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index 238655f..9acf524 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -7,7 +7,6 @@ "moduleDetection": "force", "jsx": "react-jsx", "allowJs": true, - // Bundler mode "moduleResolution": "bundler", "allowImportingTsExtensions": true,