Skip to content

Commit dda97f4

Browse files
committed
Refactor Elixir and JavaScript command runners into modular architecture
- Refactor Elixir command runner (799 lines → 297 lines, 62.8% reduction) - Created 6 modules: command-executor, compilation-manager, test-runner, code-quality, dependency-manager, utility-runner - Updated 7 Elixir command files to use refactored version - Refactor JavaScript command runner (715 lines → 296 lines, 58.6% reduction) - Created 6 modules: command-executor, test-runner, build-runner, code-quality, dependency-manager, utility-runner - Updated 7 JavaScript/TypeScript command files - All 97 tests pass (100%) - Maintain 100% backward compatibility - Commands work correctly with refactored versions - Modular architecture improves maintainability and testability Total refactored files: 5 large files (>700 lines each) Total lines reduced: ~66% across all refactored files Total modules created: 29 focused modules
1 parent 3d5211f commit dda97f4

28 files changed

Lines changed: 2184 additions & 23 deletions

scripts/commands/elixir-compile.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* Compile Elixir projects with Elixir-specific improvements
66
*/
77

8-
const ElixirCommandRunner = require('../elixir/command-runner');
8+
const ElixirCommandRunner = require('../elixir/elixir-command-runner-refactored');
99

1010
async function main() {
1111
const args = process.argv.slice(2);

scripts/commands/elixir-deps.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* Manage Elixir dependencies with Mix, Hex, and security scanning
66
*/
77

8-
const ElixirCommandRunner = require('../elixir/command-runner');
8+
const ElixirCommandRunner = require('../elixir/elixir-command-runner-refactored');
99
const { defaultErrorHandler } = require('../lib/error-handler');
1010

1111
async function main() {
@@ -137,7 +137,7 @@ async function runSecurityAudit(runner, _options) {
137137
dep.includes('plug') ||
138138
dep.includes('crypto') ||
139139
dep.includes('ssl') ||
140-
dep.includes('tls'),
140+
dep.includes('tls')
141141
);
142142
if (securityDeps.length > 0) {
143143
console.log(` ⚠️ ${securityDeps.length} security-related dependencies need updates`);
@@ -169,7 +169,7 @@ async function runSecurityAudit(runner, _options) {
169169
if (auditResult.stdout) {
170170
const lines = auditResult.stdout.split('\n');
171171
const vulnCount = lines.filter(
172-
(line) => line.includes('Vulnerability') || line.includes('CVE') || line.includes('HIGH'),
172+
(line) => line.includes('Vulnerability') || line.includes('CVE') || line.includes('HIGH')
173173
).length;
174174

175175
results.tools.mix_audit = {
@@ -194,7 +194,7 @@ async function runSecurityAudit(runner, _options) {
194194
securityTools.push('hex.audit');
195195
const lines = hexAuditResult.stdout.split('\n');
196196
const issues = lines.filter(
197-
(line) => line.includes('Vulnerability') || line.includes('found') || line.includes('⚠'),
197+
(line) => line.includes('Vulnerability') || line.includes('found') || line.includes('⚠')
198198
);
199199

200200
results.tools.hex_audit = {

scripts/commands/elixir-format.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* Format Elixir code with built-in formatter and Elixir-specific improvements
66
*/
77

8-
const ElixirCommandRunner = require('../elixir/command-runner');
8+
const ElixirCommandRunner = require('../elixir/elixir-command-runner-refactored');
99

1010
async function main() {
1111
const args = process.argv.slice(2);

scripts/commands/elixir-lint.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* Lint Elixir code with Credo and Elixir-specific improvements
66
*/
77

8-
const ElixirCommandRunner = require('../elixir/command-runner');
8+
const ElixirCommandRunner = require('../elixir/elixir-command-runner-refactored');
99

1010
async function main() {
1111
const args = process.argv.slice(2);

scripts/commands/elixir-test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* Run Elixir tests with ExUnit and Elixir-specific improvements
66
*/
77

8-
const ElixirCommandRunner = require('../elixir/command-runner');
8+
const ElixirCommandRunner = require('../elixir/elixir-command-runner-refactored');
99

1010
async function main() {
1111
const args = process.argv.slice(2);

scripts/commands/elixir-typecheck.js

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* Type check Elixir code with Dialyzer
66
*/
77

8-
const ElixirCommandRunner = require('../elixir/command-runner');
8+
const ElixirCommandRunner = require('../elixir/elixir-command-runner-refactored');
99

1010
async function main() {
1111
const args = process.argv.slice(2);
@@ -64,10 +64,7 @@ async function main() {
6464
console.error(`\n❌ Type checking failed: ${error.message}`);
6565

6666
// Check if Dialyzer/dialyxir is not installed
67-
if (
68-
error.message.includes('Dialyzer') ||
69-
error.message.includes('dialyxir')
70-
) {
67+
if (error.message.includes('Dialyzer') || error.message.includes('dialyxir')) {
7168
console.log('\n💡 Dialyzer/dialyxir is not configured. Add to mix.exs:');
7269
console.log(' {:dialyxir, "~> 1.4", only: [:dev], runtime: false}');
7370
console.log('\nThen run:');

scripts/commands/js-build.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* Build JavaScript/TypeScript projects
66
*/
77

8-
const JSCommandRunner = require('../javascript/command-runner');
8+
const JSCommandRunner = require('../javascript/javascript-command-runner-refactored');
99

1010
async function main() {
1111
try {

scripts/commands/js-dev.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* Start development server for JavaScript/TypeScript projects
66
*/
77

8-
const JSCommandRunner = require('../javascript/command-runner');
8+
const JSCommandRunner = require('../javascript/javascript-command-runner-refactored');
99

1010
async function main() {
1111
try {

scripts/commands/js-lint.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* Run linter for JavaScript/TypeScript projects
66
*/
77

8-
const JSCommandRunner = require('../javascript/command-runner');
8+
const JSCommandRunner = require('../javascript/javascript-command-runner-refactored');
99

1010
async function main() {
1111
try {

scripts/commands/js-test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* Run tests for JavaScript/TypeScript projects
66
*/
77

8-
const JSCommandRunner = require('../javascript/command-runner');
8+
const JSCommandRunner = require('../javascript/javascript-command-runner-refactored');
99

1010
async function main() {
1111
try {

0 commit comments

Comments
 (0)