@parseme/cli 0.0.2 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +163 -156
- package/dist/{cli.js → cli/cli.js} +59 -49
- package/dist/{prompt.d.ts → cli/prompt.d.ts} +0 -1
- package/dist/{prompt.js → cli/prompt.js} +0 -9
- package/dist/{analyzers → core/analyzers}/ast-analyzer.js +7 -6
- package/dist/{analyzers → core/analyzers}/framework-detector.d.ts +0 -3
- package/dist/{analyzers → core/analyzers}/framework-detector.js +0 -4
- package/dist/core/analyzers/git-analyzer.d.ts +10 -0
- package/dist/{analyzers → core/analyzers}/git-analyzer.js +12 -16
- package/dist/{analyzers → core/analyzers}/pattern-detector.d.ts +0 -3
- package/dist/{analyzers → core/analyzers}/pattern-detector.js +52 -47
- package/dist/{analyzers → core/analyzers}/project-analyzer.d.ts +2 -0
- package/dist/{analyzers → core/analyzers}/project-analyzer.js +19 -5
- package/dist/core/config.d.ts +20 -0
- package/dist/{config.js → core/config.js} +80 -67
- package/dist/{builders → core}/context-builder.d.ts +5 -9
- package/dist/{builders → core}/context-builder.js +103 -126
- package/dist/{generator.d.ts → core/generator.d.ts} +0 -3
- package/dist/{generator.js → core/generator.js} +12 -15
- package/dist/core/types/analyzer-types.d.ts +39 -0
- package/dist/core/types/analyzer-types.js +2 -0
- package/dist/{config.d.ts → core/types/config-types.d.ts} +8 -15
- package/dist/core/types/config-types.js +2 -0
- package/dist/core/types/generator-types.d.ts +8 -0
- package/dist/core/types/generator-types.js +2 -0
- package/dist/core/types/index.d.ts +4 -0
- package/dist/core/types/index.js +5 -0
- package/dist/core/types/project-types.d.ts +30 -0
- package/dist/core/types/project-types.js +2 -0
- package/dist/core/types.d.ts +1 -0
- package/dist/core/types.js +2 -0
- package/dist/index.d.ts +3 -4
- package/dist/index.js +2 -2
- package/package.json +3 -4
- package/dist/analyzers/git-analyzer.d.ts +0 -13
- package/dist/types.d.ts +0 -82
- package/dist/types.js +0 -2
- /package/dist/{cli.d.ts → cli/cli.d.ts} +0 -0
- /package/dist/{analyzers → core/analyzers}/ast-analyzer.d.ts +0 -0
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@ PARSEME analyzes your TypeScript/JavaScript projects and generates a PARSEME.md
|
|
|
6
6
|
|
|
7
7
|
## Development Status
|
|
8
8
|
|
|
9
|
-
**This project is currently in active development and
|
|
9
|
+
**This project is currently in active development and pre-alpha phase.**
|
|
10
10
|
|
|
11
11
|
The core functionality is working, but expect:
|
|
12
12
|
|
|
@@ -25,25 +25,23 @@ Your feedback is **highly appreciated** and helps shape the future of this tool!
|
|
|
25
25
|
|
|
26
26
|
## Features
|
|
27
27
|
|
|
28
|
-
- **Universal Pattern Detection** - Dynamic code analysis that works across any JavaScript/TypeScript framework
|
|
29
28
|
- **Project Analysis** - AST-based code analysis with automatic endpoint, component, and service discovery
|
|
30
|
-
- **
|
|
31
|
-
- **Configurable Output** - Multi-file context generation optimized for AI assistants
|
|
29
|
+
- **Universal Pattern Detection** - Dynamic code analysis that works across many JavaScript/TypeScript frameworks
|
|
32
30
|
- **Git Integration** - Includes repository status and change tracking
|
|
33
|
-
- **
|
|
34
|
-
- **Dev Tool Integration** - Works seamlessly as
|
|
31
|
+
- **Configurable** - Comprehensive configuration options via JavaScript, TypeScript, or JSON
|
|
32
|
+
- **Dev Tool Integration** - Works seamlessly as a npm script
|
|
35
33
|
|
|
36
|
-
###
|
|
34
|
+
### **What PARSEME Detects**
|
|
37
35
|
|
|
38
36
|
PARSEME uses AST analysis to identify:
|
|
39
37
|
|
|
40
|
-
-
|
|
41
|
-
-
|
|
42
|
-
-
|
|
43
|
-
-
|
|
44
|
-
-
|
|
45
|
-
-
|
|
46
|
-
-
|
|
38
|
+
- **API Endpoints** - HTTP routes, GraphQL resolvers, RPC methods
|
|
39
|
+
- **Components** - UI components across all major frameworks
|
|
40
|
+
- **Services** - Business logic classes and service functions
|
|
41
|
+
- **Data Models** - Interfaces, types, schemas, DTOs
|
|
42
|
+
- **Middleware** - Request/response handlers and interceptors
|
|
43
|
+
- **Utilities** - Helper functions, hooks, composables
|
|
44
|
+
- **Project Structure** - Organized by detected patterns and purpose
|
|
47
45
|
|
|
48
46
|
## **Language Support**
|
|
49
47
|
|
|
@@ -54,9 +52,9 @@ PARSEME uses AST analysis to identify:
|
|
|
54
52
|
|
|
55
53
|
## Supported Projects
|
|
56
54
|
|
|
57
|
-
PARSEME aims to automatically analyse any JavaScript or TypeScript project:
|
|
55
|
+
PARSEME aims to automatically analyse any JavaScript or TypeScript project like:
|
|
58
56
|
|
|
59
|
-
###
|
|
57
|
+
### **Backend APIs**
|
|
60
58
|
|
|
61
59
|
- **NestJS** - Controllers, services, decorators, dependency injection
|
|
62
60
|
- **Express.js** - Routes, middleware, error handlers
|
|
@@ -65,7 +63,7 @@ PARSEME aims to automatically analyse any JavaScript or TypeScript project:
|
|
|
65
63
|
- **Hapi.js** - Route configuration, server plugins
|
|
66
64
|
- **Custom frameworks** - Any HTTP endpoint patterns
|
|
67
65
|
|
|
68
|
-
###
|
|
66
|
+
### **Frontend Applications**
|
|
69
67
|
|
|
70
68
|
- **React** - Components (functional & class), hooks, JSX patterns
|
|
71
69
|
- **Vue.js** - Components (Composition & Options API), composables
|
|
@@ -74,48 +72,26 @@ PARSEME aims to automatically analyse any JavaScript or TypeScript project:
|
|
|
74
72
|
- **Lit** - Web components, custom elements
|
|
75
73
|
- **Vanilla JS/TS** - Any component or module patterns
|
|
76
74
|
|
|
77
|
-
###
|
|
75
|
+
### **NPM Packages & Libraries**
|
|
78
76
|
|
|
79
77
|
- **TypeScript libraries** - Interfaces, types, utility functions
|
|
80
78
|
- **JavaScript utilities** - Helper functions, class libraries
|
|
81
79
|
- **Node.js modules** - CommonJS and ES modules
|
|
82
80
|
- **Monorepo packages** - Lerna, Nx, Rush, Turborepo
|
|
83
81
|
|
|
84
|
-
###
|
|
82
|
+
### **Development Tools**
|
|
85
83
|
|
|
86
84
|
- **CLI applications** - Command-line tools and scripts
|
|
87
85
|
- **Build tools** - Webpack plugins, Vite configurations
|
|
88
86
|
- **Desktop applications** - Electron, Tauri apps
|
|
89
87
|
- **Testing utilities** - Jest plugins, test helpers
|
|
90
88
|
|
|
91
|
-
###
|
|
89
|
+
### **Fullstack Frameworks**
|
|
92
90
|
|
|
93
91
|
- **Next.js** - Pages, API routes, middleware, components
|
|
94
92
|
- **Nuxt.js** - Vue-based fullstack applications
|
|
95
93
|
- **SvelteKit** - Svelte-based fullstack applications
|
|
96
94
|
- **Remix** - React-based fullstack applications
|
|
97
|
-
-
|
|
98
|
-
|
|
99
|
-
## Development Status
|
|
100
|
-
|
|
101
|
-
**This project is currently in active development and beta phase.**
|
|
102
|
-
|
|
103
|
-
The core functionality is working, but expect:
|
|
104
|
-
|
|
105
|
-
- Breaking changes in configuration format
|
|
106
|
-
- API modifications as the interface gets refined
|
|
107
|
-
- Additional features being added regularly
|
|
108
|
-
- Possible bugs and edge cases
|
|
109
|
-
|
|
110
|
-
### Feedback Welcome!
|
|
111
|
-
|
|
112
|
-
Your feedback is **highly appreciated** and helps shape the future of this tool! Please:
|
|
113
|
-
|
|
114
|
-
- [Report bugs or issues](https://github.com/citrus551/parseme-modules/issues)
|
|
115
|
-
- [Suggest features or improvements](https://github.com/citrus551/parseme-modules/discussions)
|
|
116
|
-
- For other inquiries, contact: mail.citrus551@passmail.net
|
|
117
|
-
- Share your use cases and experiences
|
|
118
|
-
- Star the repo if you find it useful
|
|
119
95
|
|
|
120
96
|
## Installation
|
|
121
97
|
|
|
@@ -131,7 +107,18 @@ npm install --save-dev parseme
|
|
|
131
107
|
npx parseme init
|
|
132
108
|
```
|
|
133
109
|
|
|
134
|
-
|
|
110
|
+
You'll be prompted for:
|
|
111
|
+
- Context directory path (default: `parseme-context`)
|
|
112
|
+
- Exclude patterns (default: `node_modules/**`, `.git/**` - patterns from `.gitignore` will be ignored by default as well)
|
|
113
|
+
|
|
114
|
+
A minimal config file will be created with only your custom settings.
|
|
115
|
+
|
|
116
|
+
Setup tips will be displayed:
|
|
117
|
+
- How to add parseme script to package.json
|
|
118
|
+
- How to integrate with git hooks
|
|
119
|
+
- README section to help AI agents find context
|
|
120
|
+
|
|
121
|
+
2. **Add to your package.json scripts** (optional, for easier execution):
|
|
135
122
|
|
|
136
123
|
```json
|
|
137
124
|
{
|
|
@@ -144,34 +131,60 @@ npm install --save-dev parseme
|
|
|
144
131
|
3. **Generate context**:
|
|
145
132
|
```bash
|
|
146
133
|
npm run parseme
|
|
134
|
+
# or
|
|
135
|
+
npx parseme
|
|
147
136
|
```
|
|
148
137
|
|
|
149
|
-
This
|
|
138
|
+
This creates:
|
|
139
|
+
|
|
140
|
+
- `PARSEME.md` - Main overview with links to context files
|
|
141
|
+
- `parseme-context/` - Structured data files (AST, dependencies, routes, git info)
|
|
150
142
|
|
|
151
143
|
## Configuration
|
|
152
144
|
|
|
153
145
|
PARSEME supports multiple configuration formats with automatic discovery and priority handling.
|
|
154
146
|
|
|
147
|
+
The `parseme init` command creates a minimal config with only your custom settings. Defaults are applied automatically at runtime.
|
|
148
|
+
|
|
149
|
+
**Minimal config example** (created by `parseme init`):
|
|
150
|
+
|
|
155
151
|
```javascript
|
|
156
152
|
/** @type {import('parseme').ParsemeConfigFile} */
|
|
157
|
-
|
|
153
|
+
const config = {
|
|
154
|
+
contextDir: 'parseme-context',
|
|
155
|
+
excludePatterns: ['node_modules/**', '.git/**'],
|
|
156
|
+
};
|
|
157
|
+
|
|
158
|
+
export default config;
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
**Full config example** (all available options):
|
|
162
|
+
|
|
163
|
+
```javascript
|
|
164
|
+
/** @type {import('parseme').ParsemeConfigFile} */
|
|
165
|
+
const config = {
|
|
158
166
|
// Output settings
|
|
159
167
|
outputPath: 'PARSEME.md',
|
|
160
|
-
contextDir: 'parseme-context',
|
|
168
|
+
contextDir: 'parseme-context',
|
|
161
169
|
|
|
162
170
|
// Analysis settings
|
|
163
|
-
|
|
164
|
-
|
|
171
|
+
rootDir: './',
|
|
172
|
+
analyzeFileTypes: ['ts', 'tsx', 'js', 'jsx'],
|
|
173
|
+
excludePatterns: ['**/*.test.ts', 'dist/**'],
|
|
174
|
+
maxDepth: 10,
|
|
175
|
+
|
|
176
|
+
// Git integration
|
|
177
|
+
includeGitInfo: true,
|
|
165
178
|
|
|
166
179
|
// AI-friendly size limits
|
|
167
180
|
limits: {
|
|
168
181
|
maxLinesPerFile: 1000,
|
|
169
182
|
maxCharsPerFile: 50000,
|
|
170
183
|
maxFilesPerContext: 20,
|
|
171
|
-
truncateStrategy: '
|
|
184
|
+
truncateStrategy: 'truncate', // 'truncate' | 'split' | 'summarize'
|
|
172
185
|
},
|
|
173
186
|
|
|
174
|
-
// Content sections
|
|
187
|
+
// Content sections (all default to true)
|
|
175
188
|
sections: {
|
|
176
189
|
overview: true,
|
|
177
190
|
architecture: true,
|
|
@@ -180,46 +193,68 @@ export default {
|
|
|
180
193
|
git: true,
|
|
181
194
|
fileStructure: true,
|
|
182
195
|
},
|
|
196
|
+
|
|
197
|
+
// Style options
|
|
198
|
+
style: {
|
|
199
|
+
includeLineNumbers: false,
|
|
200
|
+
includeFileStats: true,
|
|
201
|
+
groupByType: true,
|
|
202
|
+
sortOrder: 'type', // 'alphabetical' | 'type' | 'size'
|
|
203
|
+
},
|
|
183
204
|
};
|
|
205
|
+
|
|
206
|
+
export default config;
|
|
184
207
|
```
|
|
185
208
|
|
|
186
209
|
### Configuration File Formats & Priority
|
|
187
210
|
|
|
188
211
|
PARSEME supports three configuration formats with the following priority:
|
|
189
212
|
|
|
190
|
-
1. **
|
|
191
|
-
2. **
|
|
192
|
-
3. **
|
|
213
|
+
1. **JSON** (`.json`) - `parseme.config.json`, `.parsemerc.json`, `.parsemerc`
|
|
214
|
+
2. **TypeScript** (`.ts`) - `parseme.config.ts`, `.parsemerc.ts`
|
|
215
|
+
3. **JavaScript** (`.js`) - `parseme.config.js`, `.parsemerc.js`
|
|
216
|
+
|
|
217
|
+
#### Example JSON Configuration
|
|
218
|
+
|
|
219
|
+
```json
|
|
220
|
+
{
|
|
221
|
+
"contextDir": "parseme-context",
|
|
222
|
+
"excludePatterns": ["node_modules/**", "dist/**", ".git/**"]
|
|
223
|
+
}
|
|
224
|
+
```
|
|
193
225
|
|
|
194
|
-
#### TypeScript Configuration
|
|
226
|
+
#### Example TypeScript Configuration
|
|
195
227
|
|
|
196
228
|
```typescript
|
|
197
229
|
import type { ParsemeConfigFile } from 'parseme';
|
|
198
230
|
|
|
199
231
|
const config: ParsemeConfigFile = {
|
|
200
|
-
|
|
201
|
-
|
|
232
|
+
contextDir: 'parseme-context',
|
|
233
|
+
excludePatterns: ['node_modules/**', 'dist/**', '.git/**'],
|
|
202
234
|
// ... other options
|
|
203
235
|
};
|
|
204
236
|
|
|
205
237
|
export default config;
|
|
206
238
|
```
|
|
207
239
|
|
|
208
|
-
####
|
|
240
|
+
#### Example JavaScript Configuration
|
|
209
241
|
|
|
210
|
-
```
|
|
211
|
-
{
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
242
|
+
```javascript
|
|
243
|
+
/** @type {import('parseme').ParsemeConfigFile} */
|
|
244
|
+
const config = {
|
|
245
|
+
contextDir: 'parseme-context',
|
|
246
|
+
excludePatterns: ['node_modules/**', 'dist/**', '.git/**'],
|
|
247
|
+
// ... other options
|
|
248
|
+
};
|
|
249
|
+
|
|
250
|
+
export default config;
|
|
216
251
|
```
|
|
217
252
|
|
|
218
253
|
### Configuration Priority
|
|
219
254
|
|
|
220
255
|
Configuration values are resolved in the following order (highest to lowest priority):
|
|
221
256
|
|
|
222
|
-
1. **CLI flags** - `--output`, `--root`, `--
|
|
257
|
+
1. **CLI flags** - `--output`, `--root`, `--config`, etc.
|
|
223
258
|
2. **Config file** - Based on file format priority above
|
|
224
259
|
3. **Default values** - Built-in sensible defaults
|
|
225
260
|
|
|
@@ -229,52 +264,59 @@ Configuration values are resolved in the following order (highest to lowest prio
|
|
|
229
264
|
|
|
230
265
|
#### Output Settings
|
|
231
266
|
|
|
232
|
-
- `outputPath` - Where to save the main PARSEME.md file (default: "PARSEME.md")
|
|
233
|
-
- `contextDir` - Directory for detailed context files (default: "parseme-context")
|
|
267
|
+
- `outputPath` - Where to save the main PARSEME.md file (default: `"PARSEME.md"`)
|
|
268
|
+
- `contextDir` - Directory for detailed context files (default: `"parseme-context"`)
|
|
234
269
|
|
|
235
270
|
#### Analysis Settings
|
|
236
271
|
|
|
237
|
-
- `rootDir` - Project root directory (default:
|
|
238
|
-
- `
|
|
239
|
-
- `excludePatterns` -
|
|
240
|
-
- `maxDepth` - Maximum directory depth to traverse
|
|
272
|
+
- `rootDir` - Project root directory (default: `process.cwd()`)
|
|
273
|
+
- `analyzeFileTypes` - File extensions to analyze (default and supported: `['ts', 'tsx', 'js', 'jsx']`)
|
|
274
|
+
- `excludePatterns` - Additional glob patterns to exclude on top of `.gitignore` patterns. Patterns from `.gitignore` are always included in exclusions, and `excludePatterns` adds to them.
|
|
275
|
+
- `maxDepth` - Maximum directory depth to traverse (default: `10`)
|
|
241
276
|
|
|
242
|
-
####
|
|
277
|
+
#### Git Integration
|
|
243
278
|
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
- **Express**: `detectMiddleware`, `documentRoutes`
|
|
247
|
-
- **NestJS**: `includeDecorators`, `documentModules`
|
|
248
|
-
- **Fastify**: `includePlugins`
|
|
279
|
+
- `includeGitInfo` - Include git repository information (default: `true`)
|
|
249
280
|
|
|
250
281
|
#### Content Sections
|
|
251
282
|
|
|
252
|
-
Toggle which sections to include:
|
|
283
|
+
Toggle which sections to include in the output (all default to `true`):
|
|
253
284
|
|
|
254
|
-
- `overview` - Project overview and metadata
|
|
255
|
-
- `architecture` - File type breakdown
|
|
256
|
-
- `routes` - API endpoints and routing
|
|
257
|
-
- `dependencies` - Package dependencies
|
|
258
|
-
- `git` - Repository information
|
|
259
|
-
- `fileStructure` - Detailed file listing
|
|
285
|
+
- `sections.overview` - Project overview and metadata
|
|
286
|
+
- `sections.architecture` - File type breakdown
|
|
287
|
+
- `sections.routes` - API endpoints and routing
|
|
288
|
+
- `sections.dependencies` - Package dependencies
|
|
289
|
+
- `sections.git` - Repository information
|
|
290
|
+
- `sections.fileStructure` - Detailed file listing
|
|
260
291
|
|
|
261
292
|
#### Style Options
|
|
262
293
|
|
|
263
|
-
- `includeLineNumbers` - Add line numbers to code references
|
|
264
|
-
- `includeFileStats` - Include file statistics
|
|
265
|
-
- `groupByType` - Group files by detected type
|
|
266
|
-
- `sortOrder` - "alphabetical"
|
|
294
|
+
- `style.includeLineNumbers` - Add line numbers to code references (default: `false`)
|
|
295
|
+
- `style.includeFileStats` - Include file statistics (default: `true`)
|
|
296
|
+
- `style.groupByType` - Group files by detected type (default: `true`)
|
|
297
|
+
- `style.sortOrder` - Sort order: `"alphabetical"`, `"type"`, or `"size"` (default: `"type"`)
|
|
298
|
+
|
|
299
|
+
#### Size Limits
|
|
300
|
+
|
|
301
|
+
AI-friendly size limits to prevent token overflow:
|
|
302
|
+
|
|
303
|
+
- `limits.maxLinesPerFile` - Maximum lines per file (default: `1000`)
|
|
304
|
+
- `limits.maxCharsPerFile` - Maximum characters per file (default: `50000`)
|
|
305
|
+
- `limits.maxFilesPerContext` - Maximum files per context (default: `20`)
|
|
306
|
+
- `limits.truncateStrategy` - Strategy: `"truncate"`, `"split"`, or `"summarize"` (default: `"truncate"`)
|
|
267
307
|
|
|
268
308
|
## Output Format
|
|
269
309
|
|
|
270
|
-
PARSEME always generates
|
|
310
|
+
PARSEME always generates the following output files:
|
|
271
311
|
|
|
272
|
-
- `PARSEME.md` - Main overview
|
|
273
|
-
- Context directory (default: `parseme-context/`) with
|
|
274
|
-
- `
|
|
275
|
-
- `
|
|
276
|
-
- `
|
|
277
|
-
- `
|
|
312
|
+
- `PARSEME.md` - Main overview with links to context files (Markdown)
|
|
313
|
+
- Context directory (default: `parseme-context/`) with structured data files:
|
|
314
|
+
- `files.md` - Complete list of analyzed files (Markdown)
|
|
315
|
+
- `structure.json` - AST analysis with exports, imports, functions, and classes (JSON)
|
|
316
|
+
- `api-endpoints.json` - API routes with methods, paths, and handlers (JSON, only if routes detected)
|
|
317
|
+
- `dependencies.json` - Production dependencies with versions (JSON)
|
|
318
|
+
- `framework.json` - Framework details if detected (JSON, optional)
|
|
319
|
+
- `gitDiff.md` - Git diff statistics from generation time (Markdown, if git enabled)
|
|
278
320
|
|
|
279
321
|
The context directory location can be customized via the `contextDir` configuration option.
|
|
280
322
|
|
|
@@ -284,58 +326,61 @@ The context directory location can be customized via the `contextDir` configurat
|
|
|
284
326
|
# Generate context (auto-detects config file)
|
|
285
327
|
npx parseme
|
|
286
328
|
|
|
287
|
-
# Initialize configuration (
|
|
329
|
+
# Initialize configuration (JSON by default)
|
|
288
330
|
npx parseme init
|
|
289
331
|
|
|
290
332
|
# Initialize with TypeScript format
|
|
291
333
|
npx parseme init --format ts
|
|
292
334
|
|
|
293
|
-
# Initialize with
|
|
294
|
-
npx parseme init --format
|
|
335
|
+
# Initialize with JavaScript format
|
|
336
|
+
npx parseme init --format js
|
|
295
337
|
|
|
296
338
|
# Use custom config file
|
|
297
339
|
npx parseme --config custom.config.js
|
|
298
340
|
|
|
341
|
+
# If added to package.json scripts, use npm run
|
|
342
|
+
npm run parseme
|
|
343
|
+
|
|
344
|
+
# Auto-generate context with git hooks (when configured)
|
|
345
|
+
# Runs automatically after each commit
|
|
346
|
+
|
|
299
347
|
# Override config with CLI flags
|
|
300
348
|
npx parseme --output custom.md --context-dir docs/context --root ./src --no-git
|
|
301
349
|
|
|
302
|
-
#
|
|
303
|
-
npx parseme --
|
|
350
|
+
# Specify file types and exclude patterns
|
|
351
|
+
npx parseme --file-types ts js --exclude "**/*.test.ts"
|
|
304
352
|
```
|
|
305
353
|
|
|
306
354
|
### CLI Options
|
|
307
355
|
|
|
356
|
+
#### Main Command (`parseme`)
|
|
357
|
+
|
|
308
358
|
- `-c, --config <path>` - Config file path
|
|
309
359
|
- `-o, --output <path>` - Output file path
|
|
310
360
|
- `-r, --root <path>` - Root directory to analyze
|
|
311
361
|
- `--context-dir <path>` - Context directory path (default: parseme-context)
|
|
312
|
-
- `--
|
|
362
|
+
- `--file-types <types...>` - File types to analyze (e.g., ts tsx js jsx)
|
|
313
363
|
- `--exclude <patterns...>` - Exclude patterns (glob)
|
|
314
364
|
- `--no-git` - Disable git information
|
|
315
365
|
- `--max-depth <number>` - Maximum directory depth
|
|
316
|
-
- `--no-readme-suggestion` - Disable README.md section suggestion
|
|
317
|
-
|
|
318
|
-
### Interactive Configuration
|
|
319
366
|
|
|
320
|
-
|
|
367
|
+
#### Init Command (`parseme init`)
|
|
321
368
|
|
|
322
|
-
-
|
|
369
|
+
- `-f, --force` - Overwrite existing config
|
|
370
|
+
- `--format <format>` - Config format: json, ts, or js (default: json)
|
|
323
371
|
|
|
324
|
-
|
|
372
|
+
### Interactive Configuration
|
|
325
373
|
|
|
326
|
-
|
|
327
|
-
- Non-interactive terminals (no TTY)
|
|
328
|
-
- When the value is explicitly provided via CLI flags or config files
|
|
374
|
+
When running `parseme init` interactively (TTY, not CI), you'll be prompted to configure:
|
|
329
375
|
|
|
330
|
-
|
|
376
|
+
- **Context directory** - Where to store context files (default: `parseme-context`)
|
|
377
|
+
- **Exclude patterns** - Comma-separated glob patterns (default: `node_modules/**`, `.git/**` - patterns from `.gitignore` will be ignored by default as well)
|
|
331
378
|
|
|
332
|
-
|
|
333
|
-
$ npx parseme
|
|
379
|
+
After initialization, setup tips are displayed:
|
|
334
380
|
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
```
|
|
381
|
+
- Package.json script suggestion
|
|
382
|
+
- Git hook integration suggestion
|
|
383
|
+
- README.md section suggestion for AI agents
|
|
339
384
|
|
|
340
385
|
## Framework Support
|
|
341
386
|
|
|
@@ -350,7 +395,7 @@ PARSEME automatically detects and provides specialized analysis for:
|
|
|
350
395
|
### NestJS
|
|
351
396
|
|
|
352
397
|
- Controller and decorator analysis
|
|
353
|
-
- Module structure detection
|
|
398
|
+
- Module structure detection w
|
|
354
399
|
- Dependency injection mapping
|
|
355
400
|
|
|
356
401
|
### Fastify
|
|
@@ -364,44 +409,6 @@ PARSEME automatically detects and provides specialized analysis for:
|
|
|
364
409
|
- Route and middleware detection
|
|
365
410
|
- Framework-specific patterns
|
|
366
411
|
|
|
367
|
-
## Integration Examples
|
|
368
|
-
|
|
369
|
-
### Basic Express Project
|
|
370
|
-
|
|
371
|
-
```javascript
|
|
372
|
-
// parseme.config.js
|
|
373
|
-
export default {
|
|
374
|
-
includePatterns: ['src/**/*.js', 'routes/**/*.js', 'middleware/**/*.js'],
|
|
375
|
-
frameworks: {
|
|
376
|
-
express: {
|
|
377
|
-
detectMiddleware: true,
|
|
378
|
-
documentRoutes: true,
|
|
379
|
-
},
|
|
380
|
-
},
|
|
381
|
-
};
|
|
382
|
-
```
|
|
383
|
-
|
|
384
|
-
### TypeScript NestJS Project
|
|
385
|
-
|
|
386
|
-
```javascript
|
|
387
|
-
// parseme.config.js
|
|
388
|
-
export default {
|
|
389
|
-
includePatterns: ['src/**/*.ts', '!src/**/*.spec.ts'],
|
|
390
|
-
frameworks: {
|
|
391
|
-
nestjs: {
|
|
392
|
-
includeDecorators: true,
|
|
393
|
-
documentModules: true,
|
|
394
|
-
},
|
|
395
|
-
},
|
|
396
|
-
sections: {
|
|
397
|
-
overview: true,
|
|
398
|
-
architecture: true,
|
|
399
|
-
routes: true,
|
|
400
|
-
dependencies: true,
|
|
401
|
-
},
|
|
402
|
-
};
|
|
403
|
-
```
|
|
404
|
-
|
|
405
412
|
## Programmatic API
|
|
406
413
|
|
|
407
414
|
You can also use PARSEME programmatically:
|
|
@@ -424,7 +431,7 @@ Keep your AI context automatically updated by adding parseme as a post-commit ho
|
|
|
424
431
|
|
|
425
432
|
```bash
|
|
426
433
|
# Create and make executable
|
|
427
|
-
echo '#!/bin/sh\
|
|
434
|
+
echo '#!/bin/sh\npx parseme' > .git/hooks/post-commit
|
|
428
435
|
chmod +x .git/hooks/post-commit
|
|
429
436
|
```
|
|
430
437
|
|