platform-cli/lib/src/commands/service_generators/mongo.dart

38 lines
1.1 KiB
Dart
Raw Normal View History

2017-02-23 02:48:08 +00:00
import 'generator.dart';
import 'package:code_builder/code_builder.dart';
import 'package:inflection/inflection.dart';
2017-08-08 01:45:37 +00:00
import '../make/maker.dart';
2017-02-23 02:48:08 +00:00
class MongoServiceGenerator extends ServiceGenerator {
const MongoServiceGenerator() : super('MongoDB');
2017-08-08 01:45:37 +00:00
@override
List<MakerDependency> get dependencies =>
const [const MakerDependency('angel_mongo', '^1.0.0')];
2017-04-26 13:21:25 +00:00
@override
bool get createsModel => false;
2017-02-23 02:48:08 +00:00
@override
void applyToConfigureServer(
MethodBuilder configureServer, String name, String lower) {
configureServer.addPositional(parameter('db', [new TypeBuilder('Db')]));
}
@override
void applyToLibrary(LibraryBuilder library, String name, String lower) {
2017-10-20 01:06:15 +00:00
library.addMembers([
new ImportBuilder('package:angel_mongo/angel_mongo.dart'),
new ImportBuilder('package:mongo_dart/mongo_dart.dart'),
]);
2017-02-23 02:48:08 +00:00
}
@override
ExpressionBuilder createInstance(
MethodBuilder methodBuilder, String name, String lower) {
return new TypeBuilder('MongoService').newInstance([
reference('db').invoke('collection', [literal(pluralize(lower))])
]);
}
}