createFeatureStructure method
void
createFeatureStructure(
- String feature
)
Implementation
void createFeatureStructure(String feature) {
final base = Directory(feature);
if (!base.existsSync()) base.createSync();
final directories = [
'domain/entity',
'domain/repo',
'data/endpoints',
'data/model/request',
'data/model/response',
'data/repo_impl',
'data/sources',
'presentation/bloc',
'presentation/screens',
'presentation/utils',
'presentation/widgets',
];
for (final dir in directories) {
Directory('${base.path}/$dir').createSync(recursive: true);
}
// Create boilerplate files
createFile(
'${base.path}/domain/repo/${feature}_repository.dart',
featureRepositoryTemplate(feature),
);
createFile(
'${base.path}/data/repo_impl/${feature}_repo_impl.dart',
repoImplTemplate(feature),
);
createFile(
'${base.path}/data/sources/${feature}_remote_source.dart',
remoteSourceTemplate(feature),
);
createFile(
'${base.path}/presentation/bloc/${feature}_bloc.dart',
blocTemplate(feature),
);
createFile(
'${base.path}/presentation/bloc/${feature}_event.dart',
blocEventTemplate(feature),
);
createFile(
'${base.path}/presentation/bloc/${feature}_state.dart',
blocStateTemplate(feature),
);
createFile(
'${base.path}/data/model/request/${feature}_request.dart',
requestTemplate(feature),
);
createFile(
'${base.path}/data/endpoints/${feature}_endpoints.dart',
endpointTemplate(feature),
);
print('✅ Feature $feature created successfully!');
}