Update to 2.1.7
This commit is contained in:
parent
cf1b813578
commit
427f81ee49
13 changed files with 60 additions and 51 deletions
|
@ -1,3 +1,11 @@
|
||||||
|
# 2.1.7
|
||||||
|
* Fix a bug where `ArgResults.arguments` was used in `init` instead of the
|
||||||
|
intended `ArgResults.rest`.
|
||||||
|
* Stop including `package:angel_model` imports in `make model`.
|
||||||
|
* Update dependencies in `make` commands.
|
||||||
|
* Fix `make model` to generate ORM + migration by default.
|
||||||
|
* Fix `MakerDependency` logic to print missing dependencies.
|
||||||
|
|
||||||
# 2.1.6
|
# 2.1.6
|
||||||
* Fix a bug where models always defaulted to ORM.
|
* Fix a bug where models always defaulted to ORM.
|
||||||
* Add GraphQL boilerplate.
|
* Add GraphQL boilerplate.
|
||||||
|
|
|
@ -31,7 +31,7 @@ class InitCommand extends Command {
|
||||||
@override
|
@override
|
||||||
run() async {
|
run() async {
|
||||||
Directory projectDir = new Directory(
|
Directory projectDir = new Directory(
|
||||||
argResults.arguments.isEmpty ? "." : argResults.arguments[0]);
|
argResults.rest.isEmpty ? "." : argResults.rest[0]);
|
||||||
print("Creating new Angel project in ${projectDir.absolute.path}...");
|
print("Creating new Angel project in ${projectDir.absolute.path}...");
|
||||||
await _cloneRepo(projectDir);
|
await _cloneRepo(projectDir);
|
||||||
// await preBuild(projectDir);
|
// await preBuild(projectDir);
|
||||||
|
|
|
@ -40,7 +40,7 @@ class ControllerCommand extends Command {
|
||||||
}
|
}
|
||||||
|
|
||||||
List<MakerDependency> deps = [
|
List<MakerDependency> deps = [
|
||||||
const MakerDependency('angel_framework', '^1.0.0')
|
const MakerDependency('angel_framework', '^2.0.0')
|
||||||
];
|
];
|
||||||
|
|
||||||
// ${pubspec.name}.src.models.${rc.snakeCase}
|
// ${pubspec.name}.src.models.${rc.snakeCase}
|
||||||
|
@ -48,7 +48,7 @@ class ControllerCommand extends Command {
|
||||||
var rc = new ReCase(name);
|
var rc = new ReCase(name);
|
||||||
var controllerLib = new Library((controllerLib) {
|
var controllerLib = new Library((controllerLib) {
|
||||||
if (argResults['websocket'] as bool) {
|
if (argResults['websocket'] as bool) {
|
||||||
deps.add(const MakerDependency('angel_websocket', '^1.0.0'));
|
deps.add(const MakerDependency('angel_websocket', '^2.0.0'));
|
||||||
controllerLib.directives
|
controllerLib.directives
|
||||||
.add(new Directive.import('package:angel_websocket/server.dart'));
|
.add(new Directive.import('package:angel_websocket/server.dart'));
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -2,11 +2,14 @@ import 'dart:async';
|
||||||
import 'package:io/ansi.dart';
|
import 'package:io/ansi.dart';
|
||||||
import '../../util.dart';
|
import '../../util.dart';
|
||||||
|
|
||||||
class MakerDependency {
|
class MakerDependency implements Comparable<MakerDependency> {
|
||||||
final String name, version;
|
final String name, version;
|
||||||
final bool dev;
|
final bool dev;
|
||||||
|
|
||||||
const MakerDependency(this.name, this.version, {this.dev: false});
|
const MakerDependency(this.name, this.version, {this.dev: false});
|
||||||
|
|
||||||
|
@override
|
||||||
|
int compareTo(MakerDependency other) => name.compareTo(other.name);
|
||||||
}
|
}
|
||||||
|
|
||||||
Future depend(Iterable<MakerDependency> deps) async {
|
Future depend(Iterable<MakerDependency> deps) async {
|
||||||
|
@ -21,6 +24,7 @@ Future depend(Iterable<MakerDependency> deps) async {
|
||||||
isPresent = pubspec.dependencies.containsKey(dep.name);
|
isPresent = pubspec.dependencies.containsKey(dep.name);
|
||||||
|
|
||||||
if (!isPresent) {
|
if (!isPresent) {
|
||||||
|
missing.add(dep);
|
||||||
// TODO: https://github.com/dart-lang/pubspec_parse/issues/17:
|
// TODO: https://github.com/dart-lang/pubspec_parse/issues/17:
|
||||||
// print('Installing ${dep.name}@${dep.version}...');
|
// print('Installing ${dep.name}@${dep.version}...');
|
||||||
//
|
//
|
||||||
|
@ -36,34 +40,29 @@ Future depend(Iterable<MakerDependency> deps) async {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
missing.sort((a, b) {
|
var missingDeps = deps.where((d) => !d.dev).toList()..sort();
|
||||||
if (!a.dev) {
|
var missingDevDeps = deps.where((d) => d.dev).toList()..sort();
|
||||||
if (b.dev) {
|
|
||||||
return -1;
|
|
||||||
} else {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (b.dev) {
|
|
||||||
return 0;
|
|
||||||
} else {
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
if (missing.isNotEmpty) {
|
if (missingDeps.isNotEmpty || missingDevDeps.isNotEmpty) {
|
||||||
print(yellow.wrap(missing.length == 1
|
var totalCount = missingDeps.length + missingDevDeps.length;
|
||||||
? 'You are missing one dependency:'
|
print(yellow.wrap(totalCount == 1
|
||||||
: 'You are missing ${missing.length} dependencies:'));
|
? 'You are missing one dependency.'
|
||||||
print('\n');
|
: 'You are missing ${missing.length} dependencies.'));
|
||||||
|
print(yellow.wrap(
|
||||||
|
'Update your `pubspec.yaml` to add the following dependencies:\n'));
|
||||||
|
|
||||||
for (var dep in missing) {
|
void printMissing(String type, Iterable<MakerDependency> deps) {
|
||||||
var m = ' * ${dep.name}@${dep.version}';
|
if (deps.isNotEmpty) {
|
||||||
if (dep.dev) m += ' (dev dependency)';
|
print(yellow.wrap(' $type:'));
|
||||||
print(yellow.wrap(m));
|
for (var dep in deps) {
|
||||||
|
print(yellow.wrap(' ${dep.name}: ${dep.version}'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
printMissing('dependencies', missingDeps);
|
||||||
|
printMissing('dev_dependencies', missingDevDeps);
|
||||||
|
}
|
||||||
|
|
||||||
// if (isPresent) {
|
// if (isPresent) {
|
||||||
// TODO: https://github.com/dart-lang/pubspec_parse/issues/17
|
// TODO: https://github.com/dart-lang/pubspec_parse/issues/17
|
||||||
|
|
|
@ -35,7 +35,7 @@ class MigrationCommand extends Command {
|
||||||
name = prompts.get('Name of model class');
|
name = prompts.get('Name of model class');
|
||||||
}
|
}
|
||||||
|
|
||||||
var deps = [const MakerDependency('angel_migration', '^1.0.0-alpha')];
|
var deps = [const MakerDependency('angel_migration', '^2.0.0')];
|
||||||
var rc = new ReCase(name);
|
var rc = new ReCase(name);
|
||||||
|
|
||||||
var migrationLib = new Library((migrationLib) {
|
var migrationLib = new Library((migrationLib) {
|
||||||
|
|
|
@ -20,7 +20,7 @@ class ModelCommand extends Command {
|
||||||
..addFlag('migration',
|
..addFlag('migration',
|
||||||
abbr: 'm',
|
abbr: 'm',
|
||||||
help: 'Generate migrations when running `build_runner`.',
|
help: 'Generate migrations when running `build_runner`.',
|
||||||
negatable: false)
|
defaultsTo: true)
|
||||||
..addFlag('orm', help: 'Generate angel_orm code.', negatable: false)
|
..addFlag('orm', help: 'Generate angel_orm code.', negatable: false)
|
||||||
..addFlag('serializable',
|
..addFlag('serializable',
|
||||||
help: 'Generate angel_serialize annotations.', defaultsTo: true)
|
help: 'Generate angel_serialize annotations.', defaultsTo: true)
|
||||||
|
@ -47,33 +47,35 @@ class ModelCommand extends Command {
|
||||||
var rc = new ReCase(name);
|
var rc = new ReCase(name);
|
||||||
|
|
||||||
var modelLib = new Library((modelLib) {
|
var modelLib = new Library((modelLib) {
|
||||||
if (argResults['migration'] as bool) {
|
if (argResults['orm'] as bool && argResults['migration'] as bool) {
|
||||||
modelLib.directives.addAll([
|
modelLib.directives.addAll([
|
||||||
new Directive.import('package:angel_migration/angel_migration.dart'),
|
new Directive.import('package:angel_migration/angel_migration.dart'),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
var needsSerialize = argResults['serializable'] as bool ||
|
var needsSerialize =
|
||||||
argResults['orm'] as bool ||
|
argResults['serializable'] as bool || argResults['orm'] as bool;
|
||||||
argResults['migration'] as bool;
|
// argResults['migration'] as bool;
|
||||||
|
|
||||||
if (needsSerialize) {
|
if (needsSerialize) {
|
||||||
modelLib.directives.add(new Directive.import(
|
modelLib.directives.add(new Directive.import(
|
||||||
'package:angel_serialize/angel_serialize.dart'));
|
'package:angel_serialize/angel_serialize.dart'));
|
||||||
deps.add(const MakerDependency('angel_serialize', '^2.0.0'));
|
deps.add(const MakerDependency('angel_serialize', '^2.0.0'));
|
||||||
deps.add(const MakerDependency('angel_serialize_generator', '^2.0.0'));
|
deps.add(const MakerDependency('angel_serialize_generator', '^2.0.0'));
|
||||||
deps.add(const MakerDependency('build_runner', '">=0.7.0 <0.10.0"'));
|
deps.add(const MakerDependency('build_runner', '^1.0.0'));
|
||||||
} else {
|
|
||||||
modelLib.directives
|
|
||||||
.add(new Directive.import('package:angel_model/angel_model.dart'));
|
|
||||||
deps.add(const MakerDependency('angel_model', '^1.0.0'));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (argResults['orm'] as bool || argResults['migration'] as bool) {
|
// else {
|
||||||
|
// modelLib.directives
|
||||||
|
// .add(new Directive.import('package:angel_model/angel_model.dart'));
|
||||||
|
// deps.add(const MakerDependency('angel_model', '^1.0.0'));
|
||||||
|
// }
|
||||||
|
|
||||||
|
if (argResults['orm'] as bool) {
|
||||||
modelLib.directives.addAll([
|
modelLib.directives.addAll([
|
||||||
new Directive.import('package:angel_orm/angel_orm.dart'),
|
new Directive.import('package:angel_orm/angel_orm.dart'),
|
||||||
]);
|
]);
|
||||||
deps.add(const MakerDependency('angel_orm', '^1.0.0-alpha'));
|
deps.add(const MakerDependency('angel_orm', '^2.0.0'));
|
||||||
}
|
}
|
||||||
|
|
||||||
modelLib.body.addAll([
|
modelLib.body.addAll([
|
||||||
|
@ -91,7 +93,7 @@ class ModelCommand extends Command {
|
||||||
modelClazz.annotations.add(refer('serializable'));
|
modelClazz.annotations.add(refer('serializable'));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (argResults['orm'] as bool || argResults['migration'] as bool) {
|
if (argResults['orm'] as bool) {
|
||||||
if (argResults['migration'] as bool) {
|
if (argResults['migration'] as bool) {
|
||||||
modelClazz.annotations.add(refer('orm'));
|
modelClazz.annotations.add(refer('orm'));
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -35,7 +35,7 @@ class PluginCommand extends Command {
|
||||||
}
|
}
|
||||||
|
|
||||||
List<MakerDependency> deps = [
|
List<MakerDependency> deps = [
|
||||||
const MakerDependency('angel_framework', '^1.0.0')
|
const MakerDependency('angel_framework', '^2.0.0')
|
||||||
];
|
];
|
||||||
|
|
||||||
var rc = new ReCase(name);
|
var rc = new ReCase(name);
|
||||||
|
|
|
@ -42,7 +42,7 @@ class ServiceCommand extends Command {
|
||||||
}
|
}
|
||||||
|
|
||||||
List<MakerDependency> deps = [
|
List<MakerDependency> deps = [
|
||||||
const MakerDependency('angel_framework', '^1.0.0')
|
const MakerDependency('angel_framework', '^2.0.0')
|
||||||
];
|
];
|
||||||
|
|
||||||
// '${pubspec.name}.src.services.${rc.snakeCase}'
|
// '${pubspec.name}.src.services.${rc.snakeCase}'
|
||||||
|
|
|
@ -38,9 +38,9 @@ class TestCommand extends Command {
|
||||||
}
|
}
|
||||||
|
|
||||||
List<MakerDependency> deps = [
|
List<MakerDependency> deps = [
|
||||||
const MakerDependency('angel_framework', '^1.0.0'),
|
const MakerDependency('angel_framework', '^2.0.0'),
|
||||||
const MakerDependency('angel_test', '^1.0.0', dev: true),
|
const MakerDependency('angel_test', '^2.0.0', dev: true),
|
||||||
const MakerDependency('test', '^0.12.0', dev: true),
|
const MakerDependency('test', '^1.0.0', dev: true),
|
||||||
];
|
];
|
||||||
|
|
||||||
var rc = new ReCase(name);
|
var rc = new ReCase(name);
|
||||||
|
|
|
@ -8,7 +8,7 @@ class FileServiceGenerator extends ServiceGenerator {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
List<MakerDependency> get dependencies =>
|
List<MakerDependency> get dependencies =>
|
||||||
const [const MakerDependency('angel_file_service', '^1.0.0')];
|
const [const MakerDependency('angel_file_service', '^2.0.0')];
|
||||||
|
|
||||||
@override
|
@override
|
||||||
bool get goesFirst => true;
|
bool get goesFirst => true;
|
||||||
|
|
|
@ -8,7 +8,7 @@ class MongoServiceGenerator extends ServiceGenerator {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
List<MakerDependency> get dependencies =>
|
List<MakerDependency> get dependencies =>
|
||||||
const [const MakerDependency('angel_mongo', '^1.0.0')];
|
const [const MakerDependency('angel_mongo', '^2.0.0')];
|
||||||
|
|
||||||
@override
|
@override
|
||||||
bool get createsModel => false;
|
bool get createsModel => false;
|
||||||
|
|
|
@ -8,7 +8,7 @@ class RethinkServiceGenerator extends ServiceGenerator {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
List<MakerDependency> get dependencies =>
|
List<MakerDependency> get dependencies =>
|
||||||
const [const MakerDependency('angel_rethink', '^1.0.0')];
|
const [const MakerDependency('angel_rethink', '^2.0.0')];
|
||||||
|
|
||||||
@override
|
@override
|
||||||
bool get createsModel => false;
|
bool get createsModel => false;
|
||||||
|
|
|
@ -2,7 +2,7 @@ author: Tobe O <thosakwe@gmail.com>
|
||||||
description: Command-line tools for the Angel framework, including scaffolding.
|
description: Command-line tools for the Angel framework, including scaffolding.
|
||||||
homepage: https://github.com/angel-dart/angel_cli
|
homepage: https://github.com/angel-dart/angel_cli
|
||||||
name: angel_cli
|
name: angel_cli
|
||||||
version: 2.1.6
|
version: 2.1.7
|
||||||
dependencies:
|
dependencies:
|
||||||
analyzer: ">=0.32.0 <2.0.0"
|
analyzer: ">=0.32.0 <2.0.0"
|
||||||
args: ^1.0.0
|
args: ^1.0.0
|
||||||
|
|
Loading…
Reference in a new issue