NyCustomCommand class abstract

Base class for custom commands

Available extensions

Constructors

NyCustomCommand(List<String> arguments)
Creates a new command with the given arguments.

Properties

arguments ↔ List<String>
The command-line arguments passed to the command.
getter/setter pair
commandsPath → String
Path to commands directory
no setter
configPath → String
Path to config directory
no setter
controllersPath → String
Path to controllers directory
no setter
eventsPath → String
Path to events directory
no setter
hashCode → int
The hash code for this object.
no setterinherited
isLinux → bool
Check if running on Linux
no setter
isMacOS → bool
Check if running on macOS
no setter
isWindows → bool
Check if running on Windows
no setter
modelsPath → String
Path to models directory
no setter
networkingPath → String
Path to networking directory
no setter
pagesPath → String
Path to pages directory
no setter
providersPath → String
Path to providers directory
no setter
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
themesPath → String
Path to themes directory
no setter
widgetsPath → String
Path to widgets directory
no setter
workingDirectory → String
Get the current working directory
no setter

Methods

abort([String? message, int exitCode = 1]) → Never
Exit the command with an error message and exit code
addImport(String filePath, String importStatement) → Future<void>
Add an import statement to a Dart file The import will be added after the last existing import
addPackage(String package, {String? version, bool dev = false}) → Future<void>
Add a package to the pubspec.yaml file
addPackages(List<String> packages, {bool dev = false}) → Future<void>
Add multiple packages to the pubspec.yaml file
alert(String message) → void
Prints a prominent alert box with a message
api<T>(Future<T?> request(ApiService)) → Future<T?>
A simplified API wrapper function that doesn't require type parameter
appendFile(String path, String content) → Future<void>
Append content to a file (creates the file if it doesn't exist)
appendToJsonArray(String path, Map<String, dynamic> item, {String? uniqueKey}) → Future<void>
Append an item to a JSON array file
ask(String question, {String defaultValue = ''}) → String
Alias for prompt for brevity.
builder(CommandBuilder commandBuilder) → CommandBuilder
Define the command configuration
camelCase(String input) → String
Convert a string to camelCase Example: "my_component" -> "myComponent"
cleanClassName(String name, {List<String> removeSuffixes = const []}) → String
Clean and validate a class name Removes common suffixes and converts to PascalCase
cleanFileName(String name, {String extension = '.dart'}) → String
Clean a file name (converts to snake_case and adds .dart extension if missing)
comment(String message) → void
Prints a message in gray/muted color
confirm(String question, {bool defaultValue = false}) → bool
Asks the user a yes/no question and returns a boolean
constantCase(String input) → String
Convert a string to CONSTANT_CASE Example: "myComponent" -> "MY_COMPONENT"
copyDirectory(String source, String destination) → Future<void>
Copy a directory and all its contents to a new location
copyFile(String source, String destination) → Future<void>
Copy a file from source to destination
createSpinner(String message) → ConsoleSpinner

Available on NyCustomCommand, provided by the SpinnerExtension extension

Create and return a spinner instance for manual control
dartAnalyze([String? path]) → Future<int>
Run dart analyze on a path (defaults to current directory)
dartFormat(String path) → Future<int>
Run dart format on a file or directory
deleteDirectory(String path) → Future<void>
Delete a directory and all its contents
deleteFile(String path) → Future<void>
Delete a file if it exists
directoryExists(String path) → bool
Check if a directory exists at the given path
ensureDirectory(String path) → Future<void>
Ensure a directory exists, creating it if necessary
env(String key, [String defaultValue = '']) → String
Get an environment variable value with optional default
error(String message) → void
Prints a message in red color
fileContains(String filePath, String identifier) → Future<bool>
Check if a file contains a specific string or pattern
fileContainsPattern(String filePath, Pattern pattern) → Future<bool>
Check if a file contains a pattern (regex)
fileExists(String path) → bool
Check if a file exists at the given path
findFiles(String directory, {String? extension, Pattern? namePattern, bool recursive = true}) → List<File>
Find files matching criteria in a directory
flutterBuild(String target, {List<String> args = const []}) → Future<int>
Run flutter build with a target
flutterClean() → Future<int>
Run flutter clean
flutterPubGet() → Future<int>
Run flutter pub get
flutterTest([String? path]) → Future<int>
Run flutter test
handle(CommandResult result) → Future<void>
Execute the command with parsed results
info(String message) → void
Prints a message in blue color
insertBeforeClosingBrace(String filePath, String code) → Future<void>
Insert code before the closing brace of the last class in a file Useful for adding methods to a class
isValidDartIdentifier(String name) → bool
Check if a string is a valid Dart identifier
kebabCase(String input) → String
Convert a string to kebab-case Example: "MyComponent" -> "my-component"
line(String message) → void
Prints a message without any color formatting
listDirectory(String path, {bool recursive = false}) → List<FileSystemEntity>
List all entities in a directory
multiSelect(String question, List<String> options) → List<String>
Multi-select - allows user to select multiple options
newLine([int count = 1]) → void
Prints one or more blank lines
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
pascalCase(String input) → String
Convert a string to PascalCase Example: "my_component" -> "MyComponent"
progressBar(int total, {String? message}) → ConsoleProgressBar
Create a progress bar for manual control
projectPath(String relativePath) → String
Build a path within the project Example: projectPath('app/models/user.dart') -> 'lib/app/models/user.dart'
prompt(String question, {String defaultValue = ''}) → String
Asks the user a question and returns their response
promptSecret(String question) → String
Asks the user for sensitive input (password, tokens, etc.) Input is hidden from display
readFile(String path) → Future<String>
Read the contents of a file as a string
readFileSync(String path) → String
Read the contents of a file synchronously
readJson(String path) → Future<Map<String, dynamic>>
Read a JSON file and return its contents as a Map
readJsonArray(String path) → Future<List>
Read a JSON file and return its contents as a List
readYaml(String path) → Future<Map<String, dynamic>>
Read a YAML file and return its contents as a Map
requireArgument(CommandResult result, {String? message}) → String
Require a non-empty first argument from the command result Exits with an error if no argument is provided
run() → Future<void>
Run the command
runProcess(String command, {String? workingDirectory, bool? runInShell, bool silent = false}) → Future<int>
Run a process with the given command
runTasks(List<CommandTask> tasks) → Future<void>
Run a list of named tasks with status output
runTasksWithSpinner(List<CommandTask> tasks) → Future<void>
Run tasks with a spinner animation
scaffold({required String path, required String content, bool force = false, String? successMessage}) → Future<bool>
Create a file with common scaffolding patterns Returns true if the file was created successfully
scaffoldMany(List<ScaffoldFile> files, {bool force = false}) → Future<void>
Create multiple files at once
select(String question, List<String> options, {String? defaultOption}) → String
Asks the user to select an option from a list
sleep(int seconds, [int microseconds = 0]) → Future<void>
Sleeps for a specified number of seconds.
snakeCase(String input) → String
Convert a string to snake_case Example: "MyComponent" -> "my_component"
success(String message) → void
Prints a message in green color
table(List<String> headers, List<List<String>> rows) → void
Display data in a formatted table
titleCase(String input) → String
Convert a string to Title Case Example: "my_component" -> "My Component"
toString() → String
A string representation of this object.
inherited
warning(String message) → void
Prints a message in yellow color
withProgress<T, R>({required List<T> items, required Future<R> process(T item, int index), String? message, String? completionMessage}) → Future<List<R>>

Available on NyCustomCommand, provided by the SpinnerExtension extension

Process a list of items with a progress bar Returns a list of results from processing each item
withProgressSync<T, R>({required List<T> items, required R process(T item, int index), String? message, String? completionMessage}) → List<R>

Available on NyCustomCommand, provided by the SpinnerExtension extension

Process items synchronously with a progress bar
withSpinner<T>({required Future<T> task(), required String message, String? successMessage, String? errorMessage}) → Future<T>

Available on NyCustomCommand, provided by the SpinnerExtension extension

Run a task with a spinner animation
writeFile(String path, String content) → Future<void>
Write content to a file (creates the file if it doesn't exist)
writeFileSync(String path, String content) → void
Write content to a file synchronously
writeJson(String path, dynamic data, {bool pretty = true}) → Future<void>
Write data to a JSON file

Operators

operator ==(Object other) → bool
The equality operator.
inherited