createDatasourceFile method
void
createDatasourceFile(
- String featureName,
- String basePath
)
Implementation
void createDatasourceFile(String featureName, String basePath) {
final snakeCaseName = toSnakeCase(featureName);
final classNamePrefix =
featureName[0].toUpperCase() + featureName.substring(1);
final packageName = getPackageName(basePath);
final datasourceFile =
File('$basePath/data/datasources/${snakeCaseName}_datasource.dart');
if (!datasourceFile.existsSync()) {
datasourceFile.writeAsStringSync('''
import 'package:$packageName/features/$featureName/data/models/${snakeCaseName}_model.dart';
abstract class ${classNamePrefix}Datasource {
Future<${classNamePrefix}Model> get$classNamePrefix();
}
class ${classNamePrefix}DatasourceImpl implements ${classNamePrefix}Datasource {
@override
Future<${classNamePrefix}Model> get$classNamePrefix() async {
// TODO: implement actual data source logic
// This is just a placeholder implementation
return ${classNamePrefix}Model(
id: '1',
name: '$classNamePrefix Name',
);
}
}
''');
print('Created datasource file: ${snakeCaseName}_datasource.dart');
}
}