scaffold method
Create the DDD layer directories for this feature.
Returns a map of layer names → Directory instances:
'application''domain''infrastructure''test_application''presentation'(only whenwithDebugViewistrue)
Throws DddFileSystemException if any directory cannot be created.
Implementation
Map<String, Directory> scaffold({bool withDebugView = false}) {
final snakeFeatureName = StringUtils.toSnakeCase(featureName);
final featurePath = p.join(
Directory.current.path,
'lib',
'features',
snakeFeatureName,
);
final appDir = Directory(p.join(featurePath, 'application'));
final domainDir = Directory(p.join(featurePath, 'domain'));
final infraDir = Directory(p.join(featurePath, 'infrastructure'));
_createDir(appDir);
_createDir(domainDir);
_createDir(infraDir);
final testAppPath = p.join(
Directory.current.path,
'test',
'features',
snakeFeatureName,
'application',
);
final testAppDir = Directory(testAppPath);
_createDir(testAppDir);
final dirs = <String, Directory>{
'application': appDir,
'domain': domainDir,
'infrastructure': infraDir,
'test_application': testAppDir,
};
if (withDebugView) {
final presentationDir = Directory(p.join(featurePath, 'presentation'));
_createDir(presentationDir);
dirs['presentation'] = presentationDir;
}
return dirs;
}