Merge pull request #3 from dukefirehawk/feature/v8

Feature/v8
This commit is contained in:
Thomas Hii 2023-10-08 11:16:01 +08:00 committed by GitHub
commit 4154deface
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 333 additions and 66 deletions

BIN
.DS_Store vendored

Binary file not shown.

1
.gitignore vendored
View file

@ -7,6 +7,7 @@
## File-based project format: ## File-based project format:
*.iws *.iws
.DS_Store
## Plugin-specific files: ## Plugin-specific files:

View file

@ -1,27 +1,24 @@
# Change Log # Change Log
## 7.1.0 ## 8.1.0
* Required Dart >= 2.18.x * Updated README
* Updated `analyzer` to 5.x.x * Updated logo
* Updated to `analyzer` 6.2.x
* Updated to support Dart SDK 3.1.3
## 8.0.0
* Required Dart SDK > 3.0.x
* Updated to `analyzer` 5.0.x
## 7.0.0 ## 7.0.0
* Required Dart >= 2.17.x * Skipped release
* Updated packages versions
## 6.1.0
* Updated to `analyzer` 4.x.x
* Updated to `lints` 2.x.x
## 6.0.1
* Added `angel3-orm-mysql` template for ORM support for MariaDB and MySQL
## 6.0.0 ## 6.0.0
* Required Dart >= 2.16.x * Updated Dart SDK to 2.16.x
## 5.0.0 ## 5.0.0
@ -31,7 +28,7 @@
* Changed `pub` to `dart pub` * Changed `pub` to `dart pub`
* Changed `pub build` to `dart build` * Changed `pub build` to `dart build`
* Updated SDK to 2.14.0 * Updated Dart SDK to 2.14.0
## 3.2.0 ## 3.2.0
@ -43,7 +40,7 @@
## 3.1.0 ## 3.1.0
* Upgraded to support `analyzer` 2.0.0 major release * Upgraded to support `analyzer` 2.0.0
## 3.0.1 ## 3.0.1

View file

@ -1,6 +1,6 @@
# Angel3 CLI # Angel3 Command Line Interface
[![Screenshot of Terminal](screenshots/angel3-screenshot.png)](https://github.com/dukefirehawk/angel3-cli) [![Angel3 Logo](angel3_logo.svg)](https://github.com/dukefirehawk/angel3-cli)
![Pub Version (including pre-releases)](https://img.shields.io/pub/v/angel3_cli?include_prereleases) ![Pub Version (including pre-releases)](https://img.shields.io/pub/v/angel3_cli?include_prereleases)
[![Null Safety](https://img.shields.io/badge/null-safety-brightgreen)](https://dart.dev/null-safety) [![Null Safety](https://img.shields.io/badge/null-safety-brightgreen)](https://dart.dev/null-safety)
@ -22,12 +22,6 @@ Release version:
dart pub global activate angel3_cli dart pub global activate angel3_cli
``` ```
Development version:
```bash
dart pub global activate --source git https://github.com/dukefirehawk/angel3-cli
```
## Help ## Help
For information on the available options: For information on the available options:
@ -35,3 +29,5 @@ For information on the available options:
```bash ```bash
angel3 help angel3 help
``` ```
[![Screenshot of Terminal](screenshots/angel3-screenshot.png)](https://github.com/dukefirehawk/angel3-cli)

148
angel3_logo.svg Normal file
View file

@ -0,0 +1,148 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="128"
height="128"
viewBox="0 0 128 128"
version="1.1"
id="svg1"
inkscape:version="1.3 (0e150ed, 2023-07-21)"
sodipodi:docname="angel3_logo128.svg"
inkscape:export-filename="logo_icon_128.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="px"
showgrid="true"
inkscape:zoom="1.5862247"
inkscape:cx="58.314563"
inkscape:cy="90.466376"
inkscape:window-width="1312"
inkscape:window-height="738"
inkscape:window-x="128"
inkscape:window-y="89"
inkscape:window-maximized="0"
inkscape:current-layer="layer1">
<inkscape:grid
id="grid1"
units="px"
originx="0"
originy="0"
spacingx="1"
spacingy="1"
empcolor="#0099e5"
empopacity="0.30196078"
color="#0099e5"
opacity="0.14901961"
empspacing="5"
dotted="false"
gridanglex="30"
gridanglez="30"
visible="true" />
</sodipodi:namedview>
<defs
id="defs1">
<linearGradient
id="swatch6">
<stop
style="stop-color:#d81c1c;stop-opacity:1;"
offset="0"
id="stop6" />
</linearGradient>
<linearGradient
id="linearGradient15"
inkscape:collect="always">
<stop
style="stop-color:#d81c1c;stop-opacity:1;"
offset="0"
id="stop15" />
<stop
style="stop-color:#d81c1c;stop-opacity:0;"
offset="1"
id="stop16" />
</linearGradient>
<linearGradient
id="swatch13"
inkscape:swatch="solid">
<stop
style="stop-color:#d81c1c;stop-opacity:1;"
offset="0"
id="stop14" />
</linearGradient>
<linearGradient
id="swatch7"
inkscape:swatch="solid">
<stop
style="stop-color:#d81c1c;stop-opacity:1;"
offset="0"
id="stop7" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#swatch13"
id="linearGradient14"
x1="76.307388"
y1="264.40897"
x2="425.84061"
y2="264.40897"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient15"
id="linearGradient16"
x1="185.07693"
y1="354.51111"
x2="296.18161"
y2="354.51111"
gradientUnits="userSpaceOnUse" />
</defs>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:137.557px;font-family:'Comic Sans MS';-inkscape-font-specification:'Comic Sans MS, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;opacity:1;fill:#000000;fill-opacity:1;stroke-width:0.716443"
x="-115.63483"
y="107.96973"
id="text1"
transform="matrix(-0.01157892,-1.0160496,0.98407611,-0.01121455,0,0)"><tspan
sodipodi:role="line"
id="tspan1"
x="-115.63483"
y="107.96973"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:137.557px;font-family:'Comic Sans MS';-inkscape-font-specification:'Comic Sans MS, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#000000;fill-opacity:1;stroke-width:0.716443">A</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:74.3369px;font-family:'Comic Sans MS';-inkscape-font-specification:'Comic Sans MS, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;opacity:1;fill:#d81c1c;fill-opacity:1;stroke:#ffffff;stroke-width:0.980329;stroke-dasharray:none;stroke-opacity:1"
x="-100.58853"
y="107.32352"
id="text2"
transform="matrix(-1.1771598,0.04030269,0.03112649,0.84843667,0,0)"><tspan
sodipodi:role="line"
id="tspan2"
x="-100.58853"
y="107.32352"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:74.3369px;font-family:'Comic Sans MS';-inkscape-font-specification:'Comic Sans MS, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#d81c1c;fill-opacity:1;stroke:#ffffff;stroke-width:0.980329;stroke-dasharray:none;stroke-opacity:1">3</tspan></text>
<circle
style="fill:#d81c1c;fill-opacity:1;stroke:#ffffff;stroke-width:3.00094488;stroke-dasharray:none"
id="path6"
cx="25.217106"
cy="52.325504"
r="3.7825663" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.4 KiB

135
archived/logo128.svg Normal file
View file

@ -0,0 +1,135 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="128"
height="128"
viewBox="0 0 128 128"
version="1.1"
id="svg1"
inkscape:version="1.3 (0e150ed, 2023-07-21)"
sodipodi:docname="logo128.svg"
inkscape:export-filename="logo_icon_128.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="px"
showgrid="true"
inkscape:zoom="1.5862247"
inkscape:cx="58.629776"
inkscape:cy="90.466375"
inkscape:window-width="1312"
inkscape:window-height="738"
inkscape:window-x="128"
inkscape:window-y="111"
inkscape:window-maximized="0"
inkscape:current-layer="layer1">
<inkscape:grid
id="grid1"
units="px"
originx="0"
originy="0"
spacingx="1"
spacingy="1"
empcolor="#0099e5"
empopacity="0.30196078"
color="#0099e5"
opacity="0.14901961"
empspacing="5"
dotted="false"
gridanglex="30"
gridanglez="30"
visible="true" />
</sodipodi:namedview>
<defs
id="defs1">
<linearGradient
id="linearGradient15"
inkscape:collect="always">
<stop
style="stop-color:#d81c1c;stop-opacity:1;"
offset="0"
id="stop15" />
<stop
style="stop-color:#d81c1c;stop-opacity:0;"
offset="1"
id="stop16" />
</linearGradient>
<linearGradient
id="swatch13"
inkscape:swatch="solid">
<stop
style="stop-color:#d81c1c;stop-opacity:1;"
offset="0"
id="stop14" />
</linearGradient>
<linearGradient
id="swatch7"
inkscape:swatch="solid">
<stop
style="stop-color:#d81c1c;stop-opacity:1;"
offset="0"
id="stop7" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#swatch13"
id="linearGradient14"
x1="76.307388"
y1="264.40897"
x2="425.84061"
y2="264.40897"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient15"
id="linearGradient16"
x1="185.07693"
y1="354.51111"
x2="296.18161"
y2="354.51111"
gradientUnits="userSpaceOnUse" />
</defs>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:137.557px;font-family:'Comic Sans MS';-inkscape-font-specification:'Comic Sans MS, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;opacity:1;fill:#d81c1c;fill-opacity:1;stroke-width:0.716443"
x="13.382875"
y="114.63321"
id="text1"
transform="scale(1.0161156,0.98414)"><tspan
sodipodi:role="line"
id="tspan1"
x="13.382875"
y="114.63321"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:137.557px;font-family:'Comic Sans MS';-inkscape-font-specification:'Comic Sans MS, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#d81c1c;fill-opacity:1;stroke-width:0.716443">A</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:54.9757px;font-family:'Comic Sans MS';-inkscape-font-specification:'Comic Sans MS, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;opacity:1;fill:#d81c1c;fill-opacity:1;stroke:#ffffff;stroke-width:0.725;stroke-dasharray:none;stroke-opacity:1"
x="44.028919"
y="108.3848"
id="text2"
transform="scale(1.1577238,0.86376387)"><tspan
sodipodi:role="line"
id="tspan2"
x="44.028919"
y="108.3848"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:54.9757px;font-family:'Comic Sans MS';-inkscape-font-specification:'Comic Sans MS, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#d81c1c;fill-opacity:1;stroke:#ffffff;stroke-width:0.725;stroke-dasharray:none;stroke-opacity:1">3</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.9 KiB

BIN
archived/logo3.xcf Normal file

Binary file not shown.

View file

@ -7,8 +7,6 @@ import 'package:args/command_runner.dart';
import 'package:angel3_cli/angel3_cli.dart'; import 'package:angel3_cli/angel3_cli.dart';
import 'package:io/ansi.dart'; import 'package:io/ansi.dart';
//const String doctor = 'doctor';
void main(List<String> args) async { void main(List<String> args) async {
var runner = CommandRunner('angel3', var runner = CommandRunner('angel3',
'$asciiArt\n\nCommand-line tools for the Angel3 framework.\n\nhttps://angel3-framework.web.app'); '$asciiArt\n\nCommand-line tools for the Angel3 framework.\n\nhttps://angel3-framework.web.app');

View file

@ -243,9 +243,10 @@ class InitCommand extends Command {
var gitDir = Directory.fromUri(projectDir.uri.resolve('.git')); var gitDir = Directory.fromUri(projectDir.uri.resolve('.git'));
if (await gitDir.exists()) await gitDir.delete(recursive: true); if (await gitDir.exists()) await gitDir.delete(recursive: true);
} catch (e) { } catch (e) {
await boilerplateDir.delete(recursive: true).catchError((e) { await boilerplateDir.delete(recursive: true);
print('Got error: ${e.error}'); //await boilerplateDir.delete(recursive: true).catchError((e) {
}); // print('Got error: ${e.error}');
//});
if (e is! String) { if (e is! String) {
print(red.wrap('$ballot Could not initialize Angel3 project.')); print(red.wrap('$ballot Could not initialize Angel3 project.'));

View file

@ -225,15 +225,13 @@ class RenamingVisitor extends RecursiveAstVisitor {
@override @override
void visitLibraryDirective(LibraryDirective node) { void visitLibraryDirective(LibraryDirective node) {
var name = node.name2?.name; var name = node.name2?.name ?? '';
if (name != null) {
if (name.startsWith(oldName)) { if (name.startsWith(oldName)) {
replace[[node.offset, node.end]] = replace[[node.offset, node.end]] =
'library ${name.replaceFirst(oldName, newName)};'; 'library ${name.replaceFirst(oldName, newName)};';
} }
} }
}
@override @override
void visitPartOfDirective(PartOfDirective node) { void visitPartOfDirective(PartOfDirective node) {

View file

@ -2,6 +2,10 @@ import 'package:code_builder/code_builder.dart';
import 'generator.dart'; import 'generator.dart';
class CustomServiceGenerator extends ServiceGenerator { class CustomServiceGenerator extends ServiceGenerator {
bool get createsModel => false;
bool get createsValidator => false;
const CustomServiceGenerator() : super('Custom'); const CustomServiceGenerator() : super('Custom');
@override @override

View file

@ -8,23 +8,6 @@ class ServiceGenerator {
List<MakerDependency> get dependencies => []; List<MakerDependency> get dependencies => [];
/*
@deprecated
bool get createsModel => true;
@deprecated
bool get createsValidator => true;
@deprecated
bool get exportedInServiceLibrary => true;
@deprecated
bool get injectsSingleton => false;
@deprecated
bool get shouldRunBuild => false;
*/
bool get goesFirst => false; bool get goesFirst => false;
void applyToLibrary(LibraryBuilder library, String name, String lower) {} void applyToLibrary(LibraryBuilder library, String name, String lower) {}

View file

@ -4,6 +4,8 @@ import 'package:code_builder/code_builder.dart';
class MapServiceGenerator extends ServiceGenerator { class MapServiceGenerator extends ServiceGenerator {
const MapServiceGenerator() : super('In-Memory'); const MapServiceGenerator() : super('In-Memory');
bool get createsModel => false;
@override @override
Expression createInstance(LibraryBuilder library, MethodBuilder methodBuilder, Expression createInstance(LibraryBuilder library, MethodBuilder methodBuilder,
String name, String lower) { String name, String lower) {

View file

@ -8,7 +8,9 @@ class MongoServiceGenerator extends ServiceGenerator {
@override @override
List<MakerDependency> get dependencies => List<MakerDependency> get dependencies =>
const [MakerDependency('angel3_mongo', '^7.0.0')]; const [MakerDependency('angel3_mongo', '^4.0.0')];
bool get createsModel => false;
@override @override
void applyToConfigureServer( void applyToConfigureServer(

View file

@ -10,6 +10,8 @@ class RethinkServiceGenerator extends ServiceGenerator {
List<MakerDependency> get dependencies => List<MakerDependency> get dependencies =>
const [MakerDependency('angel3_rethink', '^4.0.0')]; const [MakerDependency('angel3_rethink', '^4.0.0')];
bool get createsModel => false;
@override @override
void applyToConfigureServer( void applyToConfigureServer(
LibraryBuilder library, LibraryBuilder library,

View file

@ -1,27 +1,27 @@
name: angel3_cli name: angel3_cli
version: 7.1.0 version: 8.1.0
description: Command line tools for the Angel3 framework, including scaffolding. description: Command line tools for the Angel3 framework, including scaffolding.
homepage: https://angel3-framework.web.app/ homepage: https://angel3-framework.web.app/
repository: https://github.com/dukefirehawk/angel3-cli repository: https://github.com/dukefirehawk/angel3-cli
environment: environment:
sdk: '>=2.18.0 <3.0.0' sdk: '>=3.0.0 <4.0.0'
dependencies: dependencies:
analyzer: ^5.2.0 analyzer: ^6.2.0
args: ^2.1.1 args: ^2.4.0
code_builder: ^4.0.0 code_builder: ^4.5.0
dart_style: ^2.0.1 dart_style: ^2.3.0
glob: ^2.0.1 glob: ^2.1.0
http: ^0.13.3 http: ^1.0.0
io: ^1.0.0 io: ^1.0.0
inflection3: ^0.5.3+2 inflection3: ^0.5.3+2
mustache_template: ^2.0.0 mustache_template: ^2.0.0
path: ^1.8.0 path: ^1.8.0
prompts: ^2.0.0 prompts: ^2.0.0
pubspec_parse: ^1.0.0 pubspec_parse: ^1.2.0
quiver: ^3.0.1 quiver: ^3.2.0
recase: ^4.0.0 recase: ^4.1.0
shutdown: ^0.4.3 shutdown: ^0.4.3
watcher: ^1.0.0 watcher: ^1.1.0
yaml: ^3.1.0 yaml: ^3.1.0
dev_dependencies: dev_dependencies:
lints: ^2.0.0 lints: ^2.0.0

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB