@sammons/code-outline-cli 2.0.3 → 2.1.1
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 +60 -9
- package/dist/cli-argument-parser.d.ts +4 -0
- package/dist/cli-argument-parser.d.ts.map +1 -1
- package/dist/cli-argument-parser.js +56 -22
- package/dist/cli-argument-parser.js.map +1 -1
- package/dist/cli-orchestrator.d.ts +10 -3
- package/dist/cli-orchestrator.d.ts.map +1 -1
- package/dist/cli-orchestrator.js +20 -18
- package/dist/cli-orchestrator.js.map +1 -1
- package/dist/cli-output-handler.d.ts +4 -3
- package/dist/cli-output-handler.d.ts.map +1 -1
- package/dist/cli-output-handler.js +7 -9
- package/dist/cli-output-handler.js.map +1 -1
- package/dist/cli.js +2 -4
- package/dist/cli.js.map +1 -1
- package/dist/file-processor.d.ts +5 -2
- package/dist/file-processor.d.ts.map +1 -1
- package/dist/file-processor.js +12 -18
- package/dist/file-processor.js.map +1 -1
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +36 -0
- package/dist/index.js.map +1 -0
- package/package.json +19 -11
- package/dist/cli-orchestrator.unit.test.d.ts +0 -2
- package/dist/cli-orchestrator.unit.test.d.ts.map +0 -1
- package/dist/cli-orchestrator.unit.test.js +0 -139
- package/dist/cli-orchestrator.unit.test.js.map +0 -1
- package/dist/cli.integration.test.d.ts +0 -2
- package/dist/cli.integration.test.d.ts.map +0 -1
- package/dist/cli.integration.test.js +0 -308
- package/dist/cli.integration.test.js.map +0 -1
- package/dist/cli.unit.test.d.ts +0 -2
- package/dist/cli.unit.test.d.ts.map +0 -1
- package/dist/cli.unit.test.js +0 -349
- package/dist/cli.unit.test.js.map +0 -1
- package/dist/test.d.ts +0 -25
- package/dist/test.d.ts.map +0 -1
- package/dist/test.js +0 -41
- package/dist/test.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,12 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sammons/code-outline-cli",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.1",
|
|
4
|
+
"type": "module",
|
|
4
5
|
"description": "CLI tool to parse and provide concise output for JavaScript/TypeScript files",
|
|
5
6
|
"publishConfig": {
|
|
6
7
|
"access": "public",
|
|
7
8
|
"registry": "https://registry.npmjs.org/"
|
|
8
9
|
},
|
|
9
10
|
"main": "dist/index.js",
|
|
11
|
+
"types": "dist/index.d.ts",
|
|
12
|
+
"exports": {
|
|
13
|
+
".": {
|
|
14
|
+
"types": "./dist/index.d.ts",
|
|
15
|
+
"default": "./dist/index.js"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
10
18
|
"bin": {
|
|
11
19
|
"code-outline": "./dist/cli.js"
|
|
12
20
|
},
|
|
@@ -25,20 +33,20 @@
|
|
|
25
33
|
],
|
|
26
34
|
"dependencies": {
|
|
27
35
|
"fast-glob": "3.3.3",
|
|
28
|
-
"
|
|
29
|
-
"@sammons/code-outline-formatter": "2.
|
|
30
|
-
"@sammons/code-outline-parser": "2.0.1"
|
|
36
|
+
"@sammons/code-outline-parser": "2.1.1",
|
|
37
|
+
"@sammons/code-outline-formatter": "2.1.1"
|
|
31
38
|
},
|
|
32
39
|
"devDependencies": {
|
|
33
|
-
"@types/node": "24.
|
|
34
|
-
"
|
|
35
|
-
|
|
40
|
+
"@types/node": "24.10.2",
|
|
41
|
+
"typescript": "5.9.3"
|
|
42
|
+
},
|
|
43
|
+
"engines": {
|
|
44
|
+
"node": ">=26.0.0"
|
|
36
45
|
},
|
|
37
46
|
"scripts": {
|
|
38
47
|
"build": "tsc",
|
|
39
|
-
"dev": "
|
|
40
|
-
"test": "
|
|
41
|
-
"
|
|
42
|
-
"clean": "rm -rf dist"
|
|
48
|
+
"dev": "node src/cli.ts",
|
|
49
|
+
"test": "node --test \"src/*.test.ts\"",
|
|
50
|
+
"clean": "rm -rf dist *.tsbuildinfo"
|
|
43
51
|
}
|
|
44
52
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli-orchestrator.unit.test.d.ts","sourceRoot":"","sources":["../src/cli-orchestrator.unit.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const vitest_1 = require("vitest");
|
|
4
|
-
// Mock the CLI components before importing
|
|
5
|
-
vitest_1.vi.mock('./cli-argument-parser.js', () => ({
|
|
6
|
-
CLIArgumentParser: vitest_1.vi.fn(),
|
|
7
|
-
CLIArgumentError: class extends Error {
|
|
8
|
-
name = 'CLIArgumentError';
|
|
9
|
-
},
|
|
10
|
-
}));
|
|
11
|
-
vitest_1.vi.mock('./file-processor.js', () => ({
|
|
12
|
-
FileProcessor: vitest_1.vi.fn(),
|
|
13
|
-
FileProcessorError: class extends Error {
|
|
14
|
-
name = 'FileProcessorError';
|
|
15
|
-
},
|
|
16
|
-
}));
|
|
17
|
-
vitest_1.vi.mock('./cli-output-handler.js', () => ({
|
|
18
|
-
CLIOutputHandler: vitest_1.vi.fn(),
|
|
19
|
-
}));
|
|
20
|
-
// Mock console methods
|
|
21
|
-
const mockConsoleError = vitest_1.vi
|
|
22
|
-
.spyOn(console, 'error')
|
|
23
|
-
.mockImplementation(() => { });
|
|
24
|
-
// Import after mocking
|
|
25
|
-
const cli_orchestrator_js_1 = require("./cli-orchestrator.js");
|
|
26
|
-
const cli_argument_parser_js_1 = require("./cli-argument-parser.js");
|
|
27
|
-
const file_processor_js_1 = require("./file-processor.js");
|
|
28
|
-
const cli_output_handler_js_1 = require("./cli-output-handler.js");
|
|
29
|
-
(0, vitest_1.describe)('CLIOrchestrator', () => {
|
|
30
|
-
let orchestrator;
|
|
31
|
-
let mockArgumentParser;
|
|
32
|
-
let mockFileProcessor;
|
|
33
|
-
let mockOutputHandler;
|
|
34
|
-
(0, vitest_1.beforeEach)(() => {
|
|
35
|
-
// Create mock instances
|
|
36
|
-
mockArgumentParser = {
|
|
37
|
-
parse: vitest_1.vi.fn(),
|
|
38
|
-
printHelp: vitest_1.vi.fn(),
|
|
39
|
-
};
|
|
40
|
-
mockFileProcessor = {
|
|
41
|
-
findFiles: vitest_1.vi.fn(),
|
|
42
|
-
processFiles: vitest_1.vi.fn(),
|
|
43
|
-
};
|
|
44
|
-
mockOutputHandler = {
|
|
45
|
-
formatAndOutput: vitest_1.vi.fn(),
|
|
46
|
-
};
|
|
47
|
-
// Mock the constructors to return our mocked instances
|
|
48
|
-
vitest_1.vi.mocked(cli_argument_parser_js_1.CLIArgumentParser).mockImplementation(() => mockArgumentParser);
|
|
49
|
-
vitest_1.vi.mocked(file_processor_js_1.FileProcessor).mockImplementation(() => mockFileProcessor);
|
|
50
|
-
vitest_1.vi.mocked(cli_output_handler_js_1.CLIOutputHandler).mockImplementation(() => mockOutputHandler);
|
|
51
|
-
orchestrator = new cli_orchestrator_js_1.CLIOrchestrator();
|
|
52
|
-
vitest_1.vi.clearAllMocks();
|
|
53
|
-
// Mock process.exit
|
|
54
|
-
vitest_1.vi.spyOn(process, 'exit').mockImplementation(() => undefined);
|
|
55
|
-
});
|
|
56
|
-
(0, vitest_1.describe)('run', () => {
|
|
57
|
-
(0, vitest_1.it)('should orchestrate the entire CLI flow successfully', async () => {
|
|
58
|
-
const mockOptions = {
|
|
59
|
-
format: 'json',
|
|
60
|
-
depth: 5,
|
|
61
|
-
namedOnly: true,
|
|
62
|
-
help: false,
|
|
63
|
-
version: false,
|
|
64
|
-
};
|
|
65
|
-
const mockPattern = 'src/**/*.ts';
|
|
66
|
-
const mockFiles = ['/path/file1.ts', '/path/file2.ts'];
|
|
67
|
-
const mockResults = [
|
|
68
|
-
{ file: '/path/file1.ts', outline: { type: 'program' } },
|
|
69
|
-
{ file: '/path/file2.ts', outline: { type: 'program' } },
|
|
70
|
-
];
|
|
71
|
-
mockArgumentParser.parse.mockReturnValue({
|
|
72
|
-
options: mockOptions,
|
|
73
|
-
pattern: mockPattern,
|
|
74
|
-
});
|
|
75
|
-
mockFileProcessor.findFiles.mockResolvedValue(mockFiles);
|
|
76
|
-
mockFileProcessor.processFiles.mockResolvedValue(mockResults);
|
|
77
|
-
await orchestrator.run();
|
|
78
|
-
(0, vitest_1.expect)(mockArgumentParser.parse).toHaveBeenCalled();
|
|
79
|
-
(0, vitest_1.expect)(mockFileProcessor.findFiles).toHaveBeenCalledWith(mockPattern);
|
|
80
|
-
(0, vitest_1.expect)(mockFileProcessor.processFiles).toHaveBeenCalledWith(mockFiles, mockOptions.depth, mockOptions.namedOnly);
|
|
81
|
-
(0, vitest_1.expect)(cli_output_handler_js_1.CLIOutputHandler).toHaveBeenCalledWith(mockOptions.format);
|
|
82
|
-
(0, vitest_1.expect)(mockOutputHandler.formatAndOutput).toHaveBeenCalledWith(mockResults);
|
|
83
|
-
});
|
|
84
|
-
(0, vitest_1.it)('should handle CLIArgumentError', async () => {
|
|
85
|
-
mockArgumentParser.parse.mockImplementation(() => {
|
|
86
|
-
throw new cli_argument_parser_js_1.CLIArgumentError('Invalid arguments');
|
|
87
|
-
});
|
|
88
|
-
await orchestrator.run();
|
|
89
|
-
(0, vitest_1.expect)(mockConsoleError).toHaveBeenCalledWith('Error: Invalid arguments');
|
|
90
|
-
(0, vitest_1.expect)(mockArgumentParser.printHelp).toHaveBeenCalled();
|
|
91
|
-
(0, vitest_1.expect)(process.exit).toHaveBeenCalledWith(1);
|
|
92
|
-
});
|
|
93
|
-
(0, vitest_1.it)('should handle FileProcessorError', async () => {
|
|
94
|
-
mockArgumentParser.parse.mockReturnValue({
|
|
95
|
-
options: {
|
|
96
|
-
format: 'json',
|
|
97
|
-
depth: 5,
|
|
98
|
-
namedOnly: true,
|
|
99
|
-
help: false,
|
|
100
|
-
version: false,
|
|
101
|
-
},
|
|
102
|
-
pattern: 'invalid/**/*.js',
|
|
103
|
-
});
|
|
104
|
-
mockFileProcessor.findFiles.mockImplementation(() => {
|
|
105
|
-
throw new file_processor_js_1.FileProcessorError('No files found');
|
|
106
|
-
});
|
|
107
|
-
await orchestrator.run();
|
|
108
|
-
(0, vitest_1.expect)(mockConsoleError).toHaveBeenCalledWith('No files found');
|
|
109
|
-
(0, vitest_1.expect)(process.exit).toHaveBeenCalledWith(1);
|
|
110
|
-
});
|
|
111
|
-
(0, vitest_1.it)('should re-throw unexpected errors', async () => {
|
|
112
|
-
const unexpectedError = new Error('Unexpected error');
|
|
113
|
-
mockArgumentParser.parse.mockImplementation(() => {
|
|
114
|
-
throw unexpectedError;
|
|
115
|
-
});
|
|
116
|
-
await (0, vitest_1.expect)(orchestrator.run()).rejects.toThrow('Unexpected error');
|
|
117
|
-
});
|
|
118
|
-
(0, vitest_1.it)('should handle async file processing errors', async () => {
|
|
119
|
-
mockArgumentParser.parse.mockReturnValue({
|
|
120
|
-
options: {
|
|
121
|
-
format: 'json',
|
|
122
|
-
depth: 5,
|
|
123
|
-
namedOnly: true,
|
|
124
|
-
help: false,
|
|
125
|
-
version: false,
|
|
126
|
-
},
|
|
127
|
-
pattern: 'src/**/*.js',
|
|
128
|
-
});
|
|
129
|
-
mockFileProcessor.findFiles.mockResolvedValue(['/path/file1.js']);
|
|
130
|
-
mockFileProcessor.processFiles.mockImplementation(() => {
|
|
131
|
-
throw new file_processor_js_1.FileProcessorError('Processing failed');
|
|
132
|
-
});
|
|
133
|
-
await orchestrator.run();
|
|
134
|
-
(0, vitest_1.expect)(mockConsoleError).toHaveBeenCalledWith('Processing failed');
|
|
135
|
-
(0, vitest_1.expect)(process.exit).toHaveBeenCalledWith(1);
|
|
136
|
-
});
|
|
137
|
-
});
|
|
138
|
-
});
|
|
139
|
-
//# sourceMappingURL=cli-orchestrator.unit.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli-orchestrator.unit.test.js","sourceRoot":"","sources":["../src/cli-orchestrator.unit.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli.integration.test.d.ts","sourceRoot":"","sources":["../src/cli.integration.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,308 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const vitest_1 = require("vitest");
|
|
4
|
-
const node_child_process_1 = require("node:child_process");
|
|
5
|
-
const node_path_1 = require("node:path");
|
|
6
|
-
const node_fs_1 = require("node:fs");
|
|
7
|
-
// Test utilities
|
|
8
|
-
function runCLI(args) {
|
|
9
|
-
return new Promise((resolve) => {
|
|
10
|
-
const cliPath = require.resolve('./cli.ts');
|
|
11
|
-
const child = (0, node_child_process_1.spawn)('tsx', [cliPath, ...args], {
|
|
12
|
-
stdio: 'pipe',
|
|
13
|
-
});
|
|
14
|
-
let stdout = '';
|
|
15
|
-
let stderr = '';
|
|
16
|
-
child.stdout?.on('data', (data) => {
|
|
17
|
-
stdout += data.toString();
|
|
18
|
-
});
|
|
19
|
-
child.stderr?.on('data', (data) => {
|
|
20
|
-
stderr += data.toString();
|
|
21
|
-
});
|
|
22
|
-
child.on('close', (code) => {
|
|
23
|
-
resolve({ stdout, stderr, exitCode: code });
|
|
24
|
-
});
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
(0, vitest_1.describe)('CLI', () => {
|
|
28
|
-
const testDir = (0, node_path_1.resolve)(__dirname, '../../../test/temp');
|
|
29
|
-
const testFile = (0, node_path_1.resolve)(testDir, 'test.js');
|
|
30
|
-
(0, vitest_1.beforeEach)(() => {
|
|
31
|
-
// Create temp directory and test file
|
|
32
|
-
(0, node_fs_1.mkdirSync)(testDir, { recursive: true });
|
|
33
|
-
(0, node_fs_1.writeFileSync)(testFile, `
|
|
34
|
-
function greet(name) {
|
|
35
|
-
return \`Hello, \${name}!\`;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
class Person {
|
|
39
|
-
constructor(name) {
|
|
40
|
-
this.name = name;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
getName() {
|
|
44
|
-
return this.name;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
export { greet, Person };
|
|
49
|
-
`.trim());
|
|
50
|
-
});
|
|
51
|
-
(0, vitest_1.afterEach)(() => {
|
|
52
|
-
// Cleanup
|
|
53
|
-
(0, node_fs_1.rmSync)(testDir, { recursive: true, force: true });
|
|
54
|
-
});
|
|
55
|
-
(0, vitest_1.describe)('argument parsing', () => {
|
|
56
|
-
(0, vitest_1.it)('should show help when --help flag is used', async () => {
|
|
57
|
-
const result = await runCLI(['--help']);
|
|
58
|
-
(0, vitest_1.expect)(result.exitCode).toBe(0);
|
|
59
|
-
(0, vitest_1.expect)(result.stdout).toContain('glance-with-tree-sitter');
|
|
60
|
-
(0, vitest_1.expect)(result.stdout).toContain('Usage:');
|
|
61
|
-
(0, vitest_1.expect)(result.stdout).toContain('Options:');
|
|
62
|
-
(0, vitest_1.expect)(result.stdout).toContain('--format');
|
|
63
|
-
(0, vitest_1.expect)(result.stdout).toContain('--depth');
|
|
64
|
-
(0, vitest_1.expect)(result.stdout).toContain('--named-only');
|
|
65
|
-
});
|
|
66
|
-
(0, vitest_1.it)('should show version when --version flag is used', async () => {
|
|
67
|
-
const result = await runCLI(['--version']);
|
|
68
|
-
(0, vitest_1.expect)(result.exitCode).toBe(0);
|
|
69
|
-
(0, vitest_1.expect)(result.stdout).toMatch(/\d+\.\d+\.\d+/); // Version number pattern
|
|
70
|
-
});
|
|
71
|
-
(0, vitest_1.it)('should show error when no pattern is provided', async () => {
|
|
72
|
-
const result = await runCLI([]);
|
|
73
|
-
(0, vitest_1.expect)(result.exitCode).toBe(1);
|
|
74
|
-
(0, vitest_1.expect)(result.stderr).toContain('No file pattern provided');
|
|
75
|
-
});
|
|
76
|
-
(0, vitest_1.it)('should accept valid format options', async () => {
|
|
77
|
-
const formats = ['json', 'yaml', 'ascii'];
|
|
78
|
-
for (const format of formats) {
|
|
79
|
-
const result = await runCLI([testFile, '--format', format]);
|
|
80
|
-
(0, vitest_1.expect)(result.exitCode).toBe(0);
|
|
81
|
-
}
|
|
82
|
-
});
|
|
83
|
-
(0, vitest_1.it)('should reject invalid format options', async () => {
|
|
84
|
-
const result = await runCLI([testFile, '--format', 'invalid']);
|
|
85
|
-
(0, vitest_1.expect)(result.exitCode).toBe(1);
|
|
86
|
-
(0, vitest_1.expect)(result.stderr).toContain('Invalid format');
|
|
87
|
-
});
|
|
88
|
-
(0, vitest_1.it)('should accept valid depth options', async () => {
|
|
89
|
-
const depths = ['1', '5', '10', 'Infinity'];
|
|
90
|
-
for (const depth of depths) {
|
|
91
|
-
const result = await runCLI([testFile, '--depth', depth]);
|
|
92
|
-
(0, vitest_1.expect)(result.exitCode).toBe(0);
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
(0, vitest_1.it)('should reject invalid depth options', async () => {
|
|
96
|
-
const invalidDepths = ['0', '-1', 'invalid'];
|
|
97
|
-
for (const depth of invalidDepths) {
|
|
98
|
-
const result = await runCLI([testFile, '--depth', depth]);
|
|
99
|
-
(0, vitest_1.expect)(result.exitCode).toBe(1);
|
|
100
|
-
// The error message might vary depending on the invalid input
|
|
101
|
-
(0, vitest_1.expect)(result.stderr.length).toBeGreaterThan(0);
|
|
102
|
-
}
|
|
103
|
-
});
|
|
104
|
-
(0, vitest_1.it)('should handle named-only and all flags correctly', async () => {
|
|
105
|
-
// Test --named-only (default behavior)
|
|
106
|
-
const namedOnlyResult = await runCLI([testFile, '--named-only']);
|
|
107
|
-
(0, vitest_1.expect)(namedOnlyResult.exitCode).toBe(0);
|
|
108
|
-
// Test --all flag
|
|
109
|
-
const allResult = await runCLI([testFile, '--all']);
|
|
110
|
-
(0, vitest_1.expect)(allResult.exitCode).toBe(0);
|
|
111
|
-
// Both should work, but --all should generally produce more output
|
|
112
|
-
// (though this depends on the specific file content)
|
|
113
|
-
});
|
|
114
|
-
});
|
|
115
|
-
(0, vitest_1.describe)('file parsing', () => {
|
|
116
|
-
(0, vitest_1.it)('should parse a single JavaScript file correctly', async () => {
|
|
117
|
-
const result = await runCLI([testFile, '--format', 'json']);
|
|
118
|
-
(0, vitest_1.expect)(result.exitCode).toBe(0);
|
|
119
|
-
(0, vitest_1.expect)(() => JSON.parse(result.stdout)).not.toThrow();
|
|
120
|
-
const output = JSON.parse(result.stdout);
|
|
121
|
-
(0, vitest_1.expect)(Array.isArray(output)).toBe(true);
|
|
122
|
-
(0, vitest_1.expect)(output).toHaveLength(1);
|
|
123
|
-
(0, vitest_1.expect)(output[0].file).toContain('test.js');
|
|
124
|
-
(0, vitest_1.expect)(output[0].outline).toBeTruthy();
|
|
125
|
-
(0, vitest_1.expect)(output[0].outline.type).toBe('program');
|
|
126
|
-
});
|
|
127
|
-
(0, vitest_1.it)('should handle glob patterns correctly', async () => {
|
|
128
|
-
// Create additional test files
|
|
129
|
-
const testDir2 = (0, node_path_1.resolve)(testDir, 'subdir');
|
|
130
|
-
(0, node_fs_1.mkdirSync)(testDir2, { recursive: true });
|
|
131
|
-
(0, node_fs_1.writeFileSync)((0, node_path_1.resolve)(testDir2, 'another.js'), 'const x = 1;');
|
|
132
|
-
(0, node_fs_1.writeFileSync)((0, node_path_1.resolve)(testDir, 'index.js'), 'function main() {}');
|
|
133
|
-
const pattern = (0, node_path_1.resolve)(testDir, '**/*.js');
|
|
134
|
-
const result = await runCLI([pattern, '--format', 'json']);
|
|
135
|
-
(0, vitest_1.expect)(result.exitCode).toBe(0);
|
|
136
|
-
const output = JSON.parse(result.stdout);
|
|
137
|
-
(0, vitest_1.expect)(output.length).toBeGreaterThanOrEqual(2);
|
|
138
|
-
});
|
|
139
|
-
(0, vitest_1.it)('should handle non-existent file patterns gracefully', async () => {
|
|
140
|
-
const result = await runCLI(['nonexistent/*.js']);
|
|
141
|
-
(0, vitest_1.expect)(result.exitCode).toBe(1);
|
|
142
|
-
(0, vitest_1.expect)(result.stderr).toContain('No files found matching pattern');
|
|
143
|
-
});
|
|
144
|
-
(0, vitest_1.it)('should handle files that cannot be parsed', async () => {
|
|
145
|
-
// Create an invalid JavaScript file
|
|
146
|
-
const invalidFile = (0, node_path_1.resolve)(testDir, 'invalid.js');
|
|
147
|
-
(0, node_fs_1.writeFileSync)(invalidFile, 'this is not valid javascript {{{');
|
|
148
|
-
const result = await runCLI([invalidFile, '--format', 'json']);
|
|
149
|
-
// Should still exit with 0 but might log parsing errors
|
|
150
|
-
(0, vitest_1.expect)(result.exitCode).toBe(0);
|
|
151
|
-
// The output should still be valid JSON, possibly with null outline
|
|
152
|
-
(0, vitest_1.expect)(() => JSON.parse(result.stdout)).not.toThrow();
|
|
153
|
-
});
|
|
154
|
-
});
|
|
155
|
-
(0, vitest_1.describe)('output formats', () => {
|
|
156
|
-
(0, vitest_1.it)('should produce valid JSON output', async () => {
|
|
157
|
-
const result = await runCLI([testFile, '--format', 'json']);
|
|
158
|
-
(0, vitest_1.expect)(result.exitCode).toBe(0);
|
|
159
|
-
(0, vitest_1.expect)(() => JSON.parse(result.stdout)).not.toThrow();
|
|
160
|
-
const output = JSON.parse(result.stdout);
|
|
161
|
-
(0, vitest_1.expect)(Array.isArray(output)).toBe(true);
|
|
162
|
-
(0, vitest_1.expect)(output[0]).toHaveProperty('file');
|
|
163
|
-
(0, vitest_1.expect)(output[0]).toHaveProperty('outline');
|
|
164
|
-
});
|
|
165
|
-
(0, vitest_1.it)('should produce YAML output', async () => {
|
|
166
|
-
const result = await runCLI([testFile, '--format', 'yaml']);
|
|
167
|
-
(0, vitest_1.expect)(result.exitCode).toBe(0);
|
|
168
|
-
(0, vitest_1.expect)(result.stdout).toContain('file:');
|
|
169
|
-
(0, vitest_1.expect)(result.stdout).toContain('outline:');
|
|
170
|
-
(0, vitest_1.expect)(result.stdout).toMatch(/^-/m); // YAML array indicator
|
|
171
|
-
});
|
|
172
|
-
(0, vitest_1.it)('should produce ASCII tree output', async () => {
|
|
173
|
-
const result = await runCLI([testFile, '--format', 'ascii']);
|
|
174
|
-
(0, vitest_1.expect)(result.exitCode).toBe(0);
|
|
175
|
-
(0, vitest_1.expect)(result.stdout).toContain('📁');
|
|
176
|
-
(0, vitest_1.expect)(result.stdout).toContain('test.js');
|
|
177
|
-
(0, vitest_1.expect)(result.stdout).toContain('function_declaration'); // program is now implicit as the file root
|
|
178
|
-
});
|
|
179
|
-
});
|
|
180
|
-
(0, vitest_1.describe)('depth control', () => {
|
|
181
|
-
(0, vitest_1.it)('should limit parsing depth when specified', async () => {
|
|
182
|
-
// Test with depth 1
|
|
183
|
-
const shallowResult = await runCLI([
|
|
184
|
-
testFile,
|
|
185
|
-
'--format',
|
|
186
|
-
'json',
|
|
187
|
-
'--depth',
|
|
188
|
-
'1',
|
|
189
|
-
]);
|
|
190
|
-
(0, vitest_1.expect)(shallowResult.exitCode).toBe(0);
|
|
191
|
-
// Test with depth 3
|
|
192
|
-
const deepResult = await runCLI([
|
|
193
|
-
testFile,
|
|
194
|
-
'--format',
|
|
195
|
-
'json',
|
|
196
|
-
'--depth',
|
|
197
|
-
'3',
|
|
198
|
-
]);
|
|
199
|
-
(0, vitest_1.expect)(deepResult.exitCode).toBe(0);
|
|
200
|
-
const shallowOutput = JSON.parse(shallowResult.stdout);
|
|
201
|
-
const deepOutput = JSON.parse(deepResult.stdout);
|
|
202
|
-
// Both should be valid
|
|
203
|
-
(0, vitest_1.expect)(shallowOutput).toHaveLength(1);
|
|
204
|
-
(0, vitest_1.expect)(deepOutput).toHaveLength(1);
|
|
205
|
-
});
|
|
206
|
-
(0, vitest_1.it)('should handle infinite depth', async () => {
|
|
207
|
-
const result = await runCLI([
|
|
208
|
-
testFile,
|
|
209
|
-
'--format',
|
|
210
|
-
'json',
|
|
211
|
-
'--depth',
|
|
212
|
-
'Infinity',
|
|
213
|
-
]);
|
|
214
|
-
(0, vitest_1.expect)(result.exitCode).toBe(0);
|
|
215
|
-
(0, vitest_1.expect)(() => JSON.parse(result.stdout)).not.toThrow();
|
|
216
|
-
});
|
|
217
|
-
});
|
|
218
|
-
(0, vitest_1.describe)('filtering modes', () => {
|
|
219
|
-
(0, vitest_1.it)('should work in named-only mode by default', async () => {
|
|
220
|
-
const result = await runCLI([testFile, '--format', 'json']);
|
|
221
|
-
(0, vitest_1.expect)(result.exitCode).toBe(0);
|
|
222
|
-
const output = JSON.parse(result.stdout);
|
|
223
|
-
(0, vitest_1.expect)(output[0].outline).toBeTruthy();
|
|
224
|
-
});
|
|
225
|
-
(0, vitest_1.it)('should work with --all flag', async () => {
|
|
226
|
-
const result = await runCLI([testFile, '--format', 'json', '--all']);
|
|
227
|
-
(0, vitest_1.expect)(result.exitCode).toBe(0);
|
|
228
|
-
const output = JSON.parse(result.stdout);
|
|
229
|
-
(0, vitest_1.expect)(output[0].outline).toBeTruthy();
|
|
230
|
-
});
|
|
231
|
-
(0, vitest_1.it)('should respect explicit --named-only flag', async () => {
|
|
232
|
-
const result = await runCLI([
|
|
233
|
-
testFile,
|
|
234
|
-
'--format',
|
|
235
|
-
'json',
|
|
236
|
-
'--named-only',
|
|
237
|
-
]);
|
|
238
|
-
(0, vitest_1.expect)(result.exitCode).toBe(0);
|
|
239
|
-
const output = JSON.parse(result.stdout);
|
|
240
|
-
(0, vitest_1.expect)(output[0].outline).toBeTruthy();
|
|
241
|
-
});
|
|
242
|
-
});
|
|
243
|
-
(0, vitest_1.describe)('error handling', () => {
|
|
244
|
-
(0, vitest_1.it)('should handle file system errors gracefully', async () => {
|
|
245
|
-
const result = await runCLI(['/nonexistent/path/*.js']);
|
|
246
|
-
(0, vitest_1.expect)(result.exitCode).toBe(1);
|
|
247
|
-
(0, vitest_1.expect)(result.stderr).toContain('No files found');
|
|
248
|
-
});
|
|
249
|
-
(0, vitest_1.it)('should handle permission errors gracefully', async () => {
|
|
250
|
-
// This test might be platform-specific and hard to create reliably
|
|
251
|
-
// For now, just ensure the CLI doesn't crash on non-existent files
|
|
252
|
-
const result = await runCLI(['/root/protected/*.js']);
|
|
253
|
-
// Should exit with error but not crash
|
|
254
|
-
(0, vitest_1.expect)(typeof result.exitCode).toBe('number');
|
|
255
|
-
});
|
|
256
|
-
(0, vitest_1.it)('should continue processing other files if one fails', async () => {
|
|
257
|
-
// Create one valid and one invalid file
|
|
258
|
-
const validFile = (0, node_path_1.resolve)(testDir, 'valid.js');
|
|
259
|
-
const invalidFile = (0, node_path_1.resolve)(testDir, 'invalid.js');
|
|
260
|
-
(0, node_fs_1.writeFileSync)(validFile, 'function test() {}');
|
|
261
|
-
(0, node_fs_1.writeFileSync)(invalidFile, 'invalid syntax {{{');
|
|
262
|
-
const pattern = (0, node_path_1.resolve)(testDir, '*.js');
|
|
263
|
-
const result = await runCLI([pattern, '--format', 'json']);
|
|
264
|
-
(0, vitest_1.expect)(result.exitCode).toBe(0);
|
|
265
|
-
const output = JSON.parse(result.stdout);
|
|
266
|
-
// Should have results for files that could be parsed
|
|
267
|
-
(0, vitest_1.expect)(output.length).toBeGreaterThan(0);
|
|
268
|
-
});
|
|
269
|
-
});
|
|
270
|
-
(0, vitest_1.describe)('integration with other packages', () => {
|
|
271
|
-
(0, vitest_1.it)('should correctly integrate parser and formatter', async () => {
|
|
272
|
-
const result = await runCLI([testFile, '--format', 'json']);
|
|
273
|
-
(0, vitest_1.expect)(result.exitCode).toBe(0);
|
|
274
|
-
const output = JSON.parse(result.stdout);
|
|
275
|
-
// Should have valid structure from parser
|
|
276
|
-
(0, vitest_1.expect)(output[0].outline.type).toBe('program');
|
|
277
|
-
(0, vitest_1.expect)(output[0].outline.children).toBeDefined();
|
|
278
|
-
// Should have proper formatting
|
|
279
|
-
(0, vitest_1.expect)(output[0].file).toContain('test.js');
|
|
280
|
-
});
|
|
281
|
-
(0, vitest_1.it)('should work with different TypeScript file types', async () => {
|
|
282
|
-
// Create TypeScript files
|
|
283
|
-
const tsFile = (0, node_path_1.resolve)(testDir, 'test.ts');
|
|
284
|
-
const tsxFile = (0, node_path_1.resolve)(testDir, 'test.tsx');
|
|
285
|
-
(0, node_fs_1.writeFileSync)(tsFile, `
|
|
286
|
-
interface User {
|
|
287
|
-
name: string;
|
|
288
|
-
}
|
|
289
|
-
class UserService {
|
|
290
|
-
getUser(): User { return { name: 'test' }; }
|
|
291
|
-
}
|
|
292
|
-
`);
|
|
293
|
-
(0, node_fs_1.writeFileSync)(tsxFile, `
|
|
294
|
-
import React from 'react';
|
|
295
|
-
const Button: React.FC = () => <button>Click</button>;
|
|
296
|
-
export default Button;
|
|
297
|
-
`);
|
|
298
|
-
for (const file of [tsFile, tsxFile]) {
|
|
299
|
-
const result = await runCLI([file, '--format', 'json']);
|
|
300
|
-
(0, vitest_1.expect)(result.exitCode).toBe(0);
|
|
301
|
-
const output = JSON.parse(result.stdout);
|
|
302
|
-
(0, vitest_1.expect)(output).toHaveLength(1);
|
|
303
|
-
(0, vitest_1.expect)(output[0].outline.type).toBe('program');
|
|
304
|
-
}
|
|
305
|
-
});
|
|
306
|
-
});
|
|
307
|
-
});
|
|
308
|
-
//# sourceMappingURL=cli.integration.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli.integration.test.js","sourceRoot":"","sources":["../src/cli.integration.test.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.unit.test.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli.unit.test.d.ts","sourceRoot":"","sources":["../src/cli.unit.test.ts"],"names":[],"mappings":""}
|