cc-led
Version:
Universal CLI for controlling Arduino board LEDs and managing sketches
56 lines (51 loc) • 1.54 kB
JavaScript
/**
* @fileoverview Process Executor Interface
*
* Abstract interface for child process execution operations.
* Enables dependency injection and testable design following Clean Architecture.
*/
/**
* Abstract interface for process execution operations
*/
export class ProcessExecutorInterface {
/**
* Spawn a child process
* @param {string} command - Command to execute
* @param {string[]} args - Command arguments
* @param {object} options - Spawn options
* @returns {object} Child process object
*/
spawn(command, args, options) {
throw new Error('ProcessExecutorInterface.spawn() must be implemented');
}
/**
* Execute a command synchronously
* @param {string} command - Command to execute
* @param {object} options - Execution options
* @returns {object} Execution result
*/
execSync(command, options) {
throw new Error('ProcessExecutorInterface.execSync() must be implemented');
}
/**
* Get process arguments
* @returns {string[]} Process arguments array
*/
getProcessArgv() {
throw new Error('ProcessExecutorInterface.getProcessArgv() must be implemented');
}
/**
* Set process arguments (for testing)
* @param {string[]} argv - Process arguments array
*/
setProcessArgv(argv) {
throw new Error('ProcessExecutorInterface.setProcessArgv() must be implemented');
}
/**
* Exit the process
* @param {number} code - Exit code
*/
exit(code) {
throw new Error('ProcessExecutorInterface.exit() must be implemented');
}
}