createDatasourceFile method

void createDatasourceFile(
  1. String featureName,
  2. 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');
  }
}