Boilerplate updates
This commit is contained in:
parent
ac36ba8318
commit
4324d80acc
8 changed files with 49 additions and 51 deletions
4
.vscode/launch.json
vendored
4
.vscode/launch.json
vendored
|
@ -3,14 +3,14 @@
|
||||||
"configurations": [
|
"configurations": [
|
||||||
{
|
{
|
||||||
"name": "Development Server",
|
"name": "Development Server",
|
||||||
"type": "dart-cli",
|
"type": "dart",
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
"program": "${workspaceRoot}/bin/dev.dart",
|
"program": "${workspaceRoot}/bin/dev.dart",
|
||||||
"checkedMode": true
|
"checkedMode": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Production Server",
|
"name": "Production Server",
|
||||||
"type": "dart-cli",
|
"type": "dart",
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
"program": "${workspaceRoot}/bin/prod.dart",
|
"program": "${workspaceRoot}/bin/prod.dart",
|
||||||
"checkedMode": true
|
"checkedMode": true
|
||||||
|
|
14
Dockerfile
14
Dockerfile
|
@ -1,14 +1,20 @@
|
||||||
FROM ubuntu:14.04
|
FROM ubuntu:16.04
|
||||||
MAINTAINER Tobe O <thosakwe@gmail.com>
|
MAINTAINER Tobe O <thosakwe@gmail.com>
|
||||||
|
|
||||||
# Install Dart SDK 1.24.2
|
# Install Dart SDK.
|
||||||
RUN sudo apt-get update
|
RUN sudo apt-get update
|
||||||
RUN sudo apt-get install -y apt-transport-https
|
RUN sudo apt-get install -y apt-transport-https
|
||||||
RUN sudo apt-get install -y curl
|
RUN sudo apt-get install -y curl
|
||||||
RUN sudo sh -c 'curl https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -'
|
RUN sudo sh -c 'curl https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -'
|
||||||
RUN sudo sh -c 'curl https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list > /etc/apt/sources.list.d/dart_stable.list'
|
|
||||||
|
# Uncomment this for Dart 1.24.x
|
||||||
|
# RUN sudo sh -c 'curl https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list > /etc/apt/sources.list.d/dart_stable.list'
|
||||||
|
|
||||||
|
# Comment this out if not installing Dart 2.x
|
||||||
|
RUN sudo sh -c 'curl https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_unstable.list > /etc/apt/sources.list.d/dart_unstable.list'
|
||||||
|
|
||||||
RUN sudo apt-get update
|
RUN sudo apt-get update
|
||||||
RUN sudo apt-get install -y dart=1.24.2-1
|
RUN sudo apt-get install -y dart
|
||||||
RUN export PATH="/usr/lib/dart/bin:$PATH"
|
RUN export PATH="/usr/lib/dart/bin:$PATH"
|
||||||
|
|
||||||
# Copy necessary files
|
# Copy necessary files
|
||||||
|
|
|
@ -2,6 +2,8 @@
|
||||||
|
|
||||||
[![Gitter](https://img.shields.io/gitter/room/nwjs/nw.js.svg)](https://gitter.im/angel_dart/discussion)
|
[![Gitter](https://img.shields.io/gitter/room/nwjs/nw.js.svg)](https://gitter.im/angel_dart/discussion)
|
||||||
[![Pub](https://img.shields.io/pub/v/angel_framework.svg)](https://pub.dartlang.org/packages/angel_framework)
|
[![Pub](https://img.shields.io/pub/v/angel_framework.svg)](https://pub.dartlang.org/packages/angel_framework)
|
||||||
|
[![Build status](https://travis-ci.org/angel-dart/framework.svg?branch=master)](https://travis-ci.org/angel-dart/framework)
|
||||||
|
![License](https://img.shields.io/github/license/angel-dart/framework.svg)
|
||||||
|
|
||||||
**Fill out the [v1.0.0 survey](https://docs.google.com/forms/d/e/1FAIpQLSfEgBNsOoi_nYZMmg2IAGyMv1nNaa6B3kUk3QdNJU5987ucVA/viewform?usp=sf_link) now!!!**
|
**Fill out the [v1.0.0 survey](https://docs.google.com/forms/d/e/1FAIpQLSfEgBNsOoi_nYZMmg2IAGyMv1nNaa6B3kUk3QdNJU5987ucVA/viewform?usp=sf_link) now!!!**
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
import 'dart:io';
|
import 'dart:io' hide FileMode;
|
||||||
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';
|
||||||
|
import 'package:dart2_constant/io.dart';
|
||||||
import 'package:logging/logging.dart';
|
import 'package:logging/logging.dart';
|
||||||
|
|
||||||
const String hostname = '127.0.0.1';
|
const String hostname = '127.0.0.1';
|
||||||
|
@ -25,8 +26,11 @@ void isolateMain(int id) {
|
||||||
app.logger = new Logger('angel')
|
app.logger = new Logger('angel')
|
||||||
..onRecord.listen((rec) {
|
..onRecord.listen((rec) {
|
||||||
if (rec.error != null) {
|
if (rec.error != null) {
|
||||||
var sink =
|
var err = rec.error;
|
||||||
new File('server_log.txt').openWrite(mode: FileMode.APPEND);
|
if (err is AngelHttpException && err.statusCode != 500) return;
|
||||||
|
var now = new DateTime.now().toUtc();
|
||||||
|
var filename = 'server_log_' + now.toString() + '.txt';
|
||||||
|
var sink = new File(filename).openWrite(mode: FileMode.append);
|
||||||
sink
|
sink
|
||||||
..writeln(rec.error)
|
..writeln(rec.error)
|
||||||
..writeln(rec.stackTrace)
|
..writeln(rec.stackTrace)
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
import 'package:angel_http_exception/angel_http_exception.dart';
|
||||||
import 'package:console/console.dart';
|
import 'package:console/console.dart';
|
||||||
import 'package:logging/logging.dart';
|
import 'package:logging/logging.dart';
|
||||||
|
|
||||||
|
@ -5,13 +6,17 @@ import 'package:logging/logging.dart';
|
||||||
void prettyLog(LogRecord record) {
|
void prettyLog(LogRecord record) {
|
||||||
var pen = new TextPen();
|
var pen = new TextPen();
|
||||||
chooseLogColor(pen.reset(), record.level);
|
chooseLogColor(pen.reset(), record.level);
|
||||||
pen(record.toString());
|
|
||||||
|
if (record.error == null) pen(record.toString());
|
||||||
if (record.error != null)
|
|
||||||
pen(record.error.toString());
|
if (record.error != null) {
|
||||||
if (record.stackTrace != null)
|
var err = record.error;
|
||||||
pen(record.stackTrace.toString());
|
if (err is AngelHttpException && err.statusCode != 500) return;
|
||||||
|
pen(record.toString() + '\n');
|
||||||
|
pen(err.toString());
|
||||||
|
if (record.stackTrace != null) pen(record.stackTrace.toString());
|
||||||
|
}
|
||||||
|
|
||||||
pen();
|
pen();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -27,6 +32,5 @@ void chooseLogColor(TextPen pen, Level level) {
|
||||||
pen.magenta();
|
pen.magenta();
|
||||||
else if (level == Level.FINER)
|
else if (level == Level.FINER)
|
||||||
pen.blue();
|
pen.blue();
|
||||||
else if (level == Level.FINEST)
|
else if (level == Level.FINEST) pen.darkBlue();
|
||||||
pen.darkBlue();
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,13 +43,19 @@ AngelConfigurer configureServer(FileSystem fileSystem) {
|
||||||
//
|
//
|
||||||
// Read the following for documentation:
|
// Read the following for documentation:
|
||||||
// * https://github.com/angel-dart/angel/wiki/Error-Handling
|
// * https://github.com/angel-dart/angel/wiki/Error-Handling
|
||||||
app.errorHandler = (e, req, res) async {
|
|
||||||
if (e.statusCode == 404) {
|
|
||||||
return await res
|
|
||||||
.render('error', {'message': 'No file exists at ${req.path}.'});
|
|
||||||
}
|
|
||||||
|
|
||||||
return await res.render('error', {'message': e.message});
|
var oldErrorHandler = app.errorHandler;
|
||||||
|
app.errorHandler = (e, req, res) async {
|
||||||
|
if (!req.accepts('text/html'))
|
||||||
|
return await oldErrorHandler(e, req, res);
|
||||||
|
else {
|
||||||
|
if (e.statusCode == 404) {
|
||||||
|
return await res
|
||||||
|
.render('error', {'message': 'No file exists at ${req.path}.'});
|
||||||
|
}
|
||||||
|
|
||||||
|
return await res.render('error', {'message': e.message});
|
||||||
|
}
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@ name: angel
|
||||||
description: An easily-extensible web server framework in Dart.
|
description: An easily-extensible web server framework in Dart.
|
||||||
publish_to: none # Ensure we don't accidentally publish our private code! ;)
|
publish_to: none # Ensure we don't accidentally publish our private code! ;)
|
||||||
environment:
|
environment:
|
||||||
sdk: '>=2.0.0-dev <2.0.0'
|
sdk: '>=2.0.0-dev <3.0.0'
|
||||||
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
|
||||||
|
@ -10,14 +10,11 @@ dependencies:
|
||||||
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
|
||||||
angel_serialize: ^2.0.0 # Model definition metadata.
|
|
||||||
angel_static: ^1.3.0 # Static file server
|
angel_static: ^1.3.0 # Static file server
|
||||||
angel_validate: ^1.0.0 # Allows for validation of input data
|
angel_validate: ^1.0.0 # Allows for validation of input data
|
||||||
|
dart2_constant: ^1.0.0 # For backwards compatibility.
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
angel_hot: ^1.1.0-alpha # Hot-reloading support. :)
|
angel_hot: ^1.1.0 # Hot-reloading support. :)
|
||||||
angel_serialize_generator: ^2.0.0 # Generates serialization code for models.
|
|
||||||
angel_test: ^1.1.0 # Utilities for testing Angel servers.
|
angel_test: ^1.1.0 # Utilities for testing Angel servers.
|
||||||
build_runner: ^0.7.0
|
|
||||||
console: ^2.2.4
|
console: ^2.2.4
|
||||||
grinder: ^0.8.0
|
|
||||||
test: ^0.12.13
|
test: ^0.12.13
|
|
@ -1,21 +0,0 @@
|
||||||
// Grinder is not part of Angel, but you may consider using it
|
|
||||||
// to run tasks, a la Gulp.
|
|
||||||
//
|
|
||||||
// See its documentation here:
|
|
||||||
// https://github.com/google/grinder.dart
|
|
||||||
|
|
||||||
import 'package:grinder/grinder.dart';
|
|
||||||
|
|
||||||
main(args) => grind(args);
|
|
||||||
|
|
||||||
@Task()
|
|
||||||
test() => new TestRunner().testAsync();
|
|
||||||
|
|
||||||
@DefaultTask()
|
|
||||||
@Depends(test)
|
|
||||||
build() {
|
|
||||||
Pub.build();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Task()
|
|
||||||
clean() => defaultClean();
|
|
Loading…
Reference in a new issue