createController method
Implementation
Future<void> createController(
String name, {
String withArgument = '',
String onCommand = '',
}) async {
final isServer = PubspecUtils.isServerProject;
final extraFolder = PubspecUtils.extraFolder ?? true;
final useState = PubspecUtilsExt.useState;
String? stateDir;
if (useState) {
var stateSample = StateSample(
'',
name,
isServer,
);
if (PubspecUtilsTemplates.stateTemplate.isNotEmpty) {
stateSample.customContent =
await loadContent(PubspecUtilsTemplates.stateTemplate, name);
}
final stateFile = handleFileCreate(
name,
'state',
onCommand,
onCommand.isNotEmpty ? extraFolder : true,
stateSample,
'states',
);
stateDir = Structure.pathToDirImport(stateFile.path);
}
var sample = ControllerSample(
'',
name,
stateDir,
isServer,
);
if (withArgument.isNotEmpty) {
sample.customContent =
await loadContent(withArgument, name, dir: stateDir);
}
var controllerFile = handleFileCreate(
name,
'controller',
onCommand,
onCommand.isNotEmpty ? extraFolder : true,
sample,
'controllers',
);
final isVersion5 = PubspecUtilsExt.getxVersion == 5;
var binindingPath =
findBindingFromName(controllerFile.path, basename(onCommand));
var pathSplit = Structure.safeSplitPath(controllerFile.path);
pathSplit.remove('.');
pathSplit.remove('lib');
if (binindingPath.isNotEmpty) {
await addDependencyToBinding(
binindingPath,
name,
pathSplit.join('/'),
isVersion5,
);
}
}