merge
This commit is contained in:
commit
40fcfe9ab2
6 changed files with 26 additions and 19 deletions
|
@ -1,4 +1,3 @@
|
||||||
analyzer:
|
analyzer:
|
||||||
strong-mode: true
|
strong-mode:
|
||||||
exclude:
|
implicit-casts: false
|
||||||
- .scripts-bin/**/*.dart
|
|
||||||
|
|
|
@ -10,6 +10,7 @@ main() async {
|
||||||
var hot = new HotReloader(() async {
|
var hot = new HotReloader(() async {
|
||||||
var app = new Angel()..lazyParseBodies = true;
|
var app = new Angel()..lazyParseBodies = true;
|
||||||
await app.configure(configureServer);
|
await app.configure(configureServer);
|
||||||
|
hierarchicalLoggingEnabled = true;
|
||||||
app.logger = new Logger('angel');
|
app.logger = new Logger('angel');
|
||||||
var sub = app.logger.onRecord.listen(prettyLog);
|
var sub = app.logger.onRecord.listen(prettyLog);
|
||||||
app.shutdownHooks.add((_) => sub.cancel());
|
app.shutdownHooks.add((_) => sub.cancel());
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import 'dart:io' hide FileMode;
|
import 'dart:io';
|
||||||
import 'dart:isolate';
|
import 'dart:isolate';
|
||||||
import 'package:angel/angel.dart';
|
import 'package:angel/angel.dart';
|
||||||
import 'package:angel_framework/angel_framework.dart';
|
import 'package:angel_framework/angel_framework.dart';
|
||||||
|
@ -23,6 +23,7 @@ void isolateMain(int id) {
|
||||||
app.configure(configureServer).then((_) async {
|
app.configure(configureServer).then((_) async {
|
||||||
// In production, we'll want to log errors to a file.
|
// In production, we'll want to log errors to a file.
|
||||||
// Alternatives include sending logs to a service like Sentry.
|
// Alternatives include sending logs to a service like Sentry.
|
||||||
|
hierarchicalLoggingEnabled = true;
|
||||||
app.logger = new Logger('angel')
|
app.logger = new Logger('angel')
|
||||||
..onRecord.listen((rec) {
|
..onRecord.listen((rec) {
|
||||||
if (rec.error == null) {
|
if (rec.error == null) {
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
library angel;
|
library angel;
|
||||||
|
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
import 'package:angel_cors/angel_cors.dart';
|
|
||||||
import 'package:angel_framework/angel_framework.dart';
|
import 'package:angel_framework/angel_framework.dart';
|
||||||
import 'package:file/local.dart';
|
import 'package:file/local.dart';
|
||||||
import 'src/config/config.dart' as configuration;
|
import 'src/config/config.dart' as configuration;
|
||||||
|
@ -11,11 +10,12 @@ import 'src/services/services.dart' as services;
|
||||||
|
|
||||||
/// Configures the server instance.
|
/// Configures the server instance.
|
||||||
Future configureServer(Angel app) async {
|
Future configureServer(Angel app) async {
|
||||||
// Enable CORS
|
// Grab a handle to the file system, so that we can do things like
|
||||||
app.use(cors());
|
// serve static files.
|
||||||
|
var fs = const LocalFileSystem();
|
||||||
|
|
||||||
// Set up our application, using the plug-ins defined with this project.
|
// Set up our application, using the plug-ins defined with this project.
|
||||||
await app.configure(configuration.configureServer(const LocalFileSystem()));
|
await app.configure(configuration.configureServer(fs));
|
||||||
await app.configure(services.configureServer);
|
await app.configure(services.configureServer);
|
||||||
await app.configure(routes.configureServer(const LocalFileSystem()));
|
await app.configure(routes.configureServer(fs));
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
/// This app's route configuration.
|
/// This app's route configuration.
|
||||||
library angel.src.routes;
|
library angel.src.routes;
|
||||||
|
|
||||||
|
import 'package:angel_cors/angel_cors.dart';
|
||||||
import 'package:angel_framework/angel_framework.dart';
|
import 'package:angel_framework/angel_framework.dart';
|
||||||
import 'package:angel_static/angel_static.dart';
|
import 'package:angel_static/angel_static.dart';
|
||||||
import 'package:file/file.dart';
|
import 'package:file/file.dart';
|
||||||
|
@ -13,6 +14,9 @@ import 'controllers/controllers.dart' as controllers;
|
||||||
/// * https://github.com/angel-dart/angel/wiki/Requests-&-Responses
|
/// * https://github.com/angel-dart/angel/wiki/Requests-&-Responses
|
||||||
AngelConfigurer configureServer(FileSystem fileSystem) {
|
AngelConfigurer configureServer(FileSystem fileSystem) {
|
||||||
return (Angel app) async {
|
return (Angel app) async {
|
||||||
|
// Enable CORS
|
||||||
|
app.use(cors());
|
||||||
|
|
||||||
// Typically, you want to mount controllers first, after any global middleware.
|
// Typically, you want to mount controllers first, after any global middleware.
|
||||||
await app.configure(controllers.configureServer);
|
await app.configure(controllers.configureServer);
|
||||||
|
|
||||||
|
@ -21,7 +25,7 @@ AngelConfigurer configureServer(FileSystem fileSystem) {
|
||||||
'/', (RequestContext req, ResponseContext res) => res.render('hello'));
|
'/', (RequestContext req, ResponseContext res) => res.render('hello'));
|
||||||
|
|
||||||
// Mount static server at web in development.
|
// Mount static server at web in development.
|
||||||
// This variant of `VirtualDirectory` also sends `Cache-Control` headers.
|
// The `CachingVirtualDirectory` variant of `VirtualDirectory` also sends `Cache-Control` headers.
|
||||||
//
|
//
|
||||||
// In production, however, prefer serving static files through NGINX or a
|
// In production, however, prefer serving static files through NGINX or a
|
||||||
// similar reverse proxy.
|
// similar reverse proxy.
|
||||||
|
@ -29,12 +33,14 @@ AngelConfigurer configureServer(FileSystem fileSystem) {
|
||||||
// Read the following two sources for documentation:
|
// Read the following two sources for documentation:
|
||||||
// * https://medium.com/the-angel-framework/serving-static-files-with-the-angel-framework-2ddc7a2b84ae
|
// * https://medium.com/the-angel-framework/serving-static-files-with-the-angel-framework-2ddc7a2b84ae
|
||||||
// * https://github.com/angel-dart/static
|
// * https://github.com/angel-dart/static
|
||||||
var vDir = new CachingVirtualDirectory(
|
if (!app.isProduction) {
|
||||||
app,
|
var vDir = new VirtualDirectory(
|
||||||
fileSystem,
|
app,
|
||||||
source: fileSystem.directory('web'),
|
fileSystem,
|
||||||
);
|
source: fileSystem.directory('web'),
|
||||||
app.use(vDir.handleRequest);
|
);
|
||||||
|
app.use(vDir.handleRequest);
|
||||||
|
}
|
||||||
|
|
||||||
// Throw a 404 if no route matched the request.
|
// Throw a 404 if no route matched the request.
|
||||||
app.use(() => throw new AngelHttpException.notFound());
|
app.use(() => throw new AngelHttpException.notFound());
|
||||||
|
|
|
@ -6,7 +6,7 @@ environment:
|
||||||
homepage: https://github.com/angel-dart/angel
|
homepage: https://github.com/angel-dart/angel
|
||||||
dependencies:
|
dependencies:
|
||||||
angel_auth: ^1.1.0 # Supports stateless authentication via JWT
|
angel_auth: ^1.1.0 # Supports stateless authentication via JWT
|
||||||
angel_configuration: ^1.1.0 # Loads application configuration, along with support for .env files.
|
angel_configuration: ^1.2.0 # Loads application configuration, along with support for .env files.
|
||||||
angel_cors: ^1.0.0 # CORS support
|
angel_cors: ^1.0.0 # CORS support
|
||||||
angel_framework: ^1.1.0 # The core server library.
|
angel_framework: ^1.1.0 # The core server library.
|
||||||
angel_jael: ^1.0.0 # Server-side templating engine
|
angel_jael: ^1.0.0 # Server-side templating engine
|
||||||
|
@ -16,5 +16,5 @@ dependencies:
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
angel_hot: ^1.1.0 # Hot-reloading support. :)
|
angel_hot: ^1.1.0 # Hot-reloading support. :)
|
||||||
angel_test: ^1.1.0 # Utilities for testing Angel servers.
|
angel_test: ^1.1.0 # Utilities for testing Angel servers.
|
||||||
console: ^2.2.4
|
console: ">=2.0.0 <4.0.0"
|
||||||
test: ^0.12.13
|
test: ^0.12.13
|
||||||
|
|
Loading…
Reference in a new issue