angel_hot 1.1.0

  • README.md
  • Installing
  • Versions
  • 49

hot

Pub

Supports hot reloading of Angel servers on file changes. This is faster and more reliable than merely reactively restarting a Process.

This package only works with the Angel framework.

Installation

In your pubspec.yaml:

dependencies:
  angel_hot: ^1.0.0

Usage

This package is dependent on the Dart VM service, so you must run Dart with the --enable-vm-service argument!!!

Usage is fairly simple. Pass a function that creates an Angel server, along with a collection of paths to watch, to the HotReloader constructor. The rest is history!!!

The recommended pattern is to only use hot-reloading in your application entry point. Create your Angel instance within a separate function, conventionally named createServer. Using this in production mode is pointless.

You can watch:

  • Files
  • Directories
  • Globs
  • URI's
  • package: URI's
import 'dart:async';
import 'dart:convert';
import 'dart:io';
import 'package:angel_compress/angel_compress.dart';
import 'package:angel_diagnostics/angel_diagnostics.dart';
import 'package:angel_framework/angel_framework.dart';
import 'package:angel_hot/angel_hot.dart';
import 'src/foo.dart';

main() async {
  var hot = new HotReloader(createServer, [
    new Directory('config'),
    new Directory('lib'),
    new Directory('web'),
    new Directory('src'),
    'bin/server.dart',
    Uri.parse('some_file.dart'),
    Uri.parse('package:angel_hot/angel_hot.dart')
  ]);
  
  var server = await hot.startServer(InternetAddress.LOOPBACK_IP_V4, 3000);
  print(
      'Hot server listening at http://${server.address.address}:${server.port}');
}

Future<Angel> createServer() async {
  var app = new Angel();

  app.lazyParseBodies = true;
  app.injectSerializer(JSON.encode);

  app.get('/', {'hello': 'hot world!'});
  
  app.post('/foo/bar', (req, res) async {
    var result = await someLengthyOperation();
    return {'status': result};
  });

  app.after.add(() => throw new AngelHttpException.notFound());

  app.responseFinalizers.add(gzip());
  await app.configure(logRequests());
  return app;
}

1. Depend on it

Add this to your package's pubspec.yaml file:


dependencies:
  angel_hot: "^1.1.0"

2. Install it

You can install packages from the command line:

with pub:


$ pub get

Alternatively, your editor might support pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:


import 'package:angel_hot/angel_hot.dart';
        
Version Uploaded Documentation Archive
1.1.0 Dec 7, 2017 Go to the documentation of angel_hot 1.1.0 Download angel_hot 1.1.0 archive
1.0.1 Jun 14, 2017 Go to the documentation of angel_hot 1.0.1 Download angel_hot 1.0.1 archive
1.0.0 Jun 12, 2017 Go to the documentation of angel_hot 1.0.0 Download angel_hot 1.0.0 archive
1.1.0-alpha Oct 19, 2017 Go to the documentation of angel_hot 1.1.0-alpha Download angel_hot 1.1.0-alpha archive
1.0.0-rc.3 Jun 6, 2017 Go to the documentation of angel_hot 1.0.0-rc.3 Download angel_hot 1.0.0-rc.3 archive
1.0.0-rc.2 Jun 6, 2017 Go to the documentation of angel_hot 1.0.0-rc.2 Download angel_hot 1.0.0-rc.2 archive
1.0.0-rc.1 Jun 6, 2017 Go to the documentation of angel_hot 1.0.0-rc.1 Download angel_hot 1.0.0-rc.1 archive

Analysis

This feature is new.
We welcome feedback.
More details: scoring.

We analyzed this package, and provided a score, details, and suggestions below.

  • tool failures on Feb 14, 2018
  • Dart: 2.0.0-dev.20.0
  • pana: 0.10.1

Scores

Popularity:
Describes how popular the package is relative to other packages. [more]
73 / 100
Health:
Code health derived from static analysis. [more]
0 / 100
Maintenance:
Reflects how tidy and up-to-date the package is. [more]
61 / 100
Overall score:
Weighted score of the above. [more]
49

Platforms

Detected platforms: unsure

Error(s) prevent platform classification.

Suggestions

  • Fix lib/angel_hot.dart.

    Strong-mode analysis of lib/angel_hot.dart failed with the following error:

    line: 8 col: 8
    Target of URI doesn't exist: 'package:glob/glob.dart'.

  • Fix platform conflicts.

    Make sure none of the libraries use mutually exclusive dependendencies.

  • Maintain CHANGELOG.md.

    Changelog entries help clients to follow the progress in your code.

  • Fix issues reported by dartanalyzer.

    dartanalyzer reported 1 error(s) and 0 warning(s).

  • The description is too short.

    Add more detail about the package, what it does and what is its target use case. Try to write at least 60 characters.

  • Maintain an example.

    None of the files in your example/ directory matches a known example patterns. Common file name patterns include: main.dart, example.dart or you could also use angel_hot.dart.

Dependencies

Package Constraint Resolved Available
Direct dependencies
Dart SDK >=1.19.0
angel_framework ^1.1.0-alpha 1.1.1
angel_websocket ^1.1.0-alpha 1.1.1
html_builder ^1.0.0 1.0.2
vm_service_lib 0.3.5 0.3.5 0.3.5+1
Transitive dependencies
angel_auth 1.1.0+2
angel_client 1.2.0+1
angel_http_exception 1.0.0
angel_model 1.0.0
angel_route 2.0.5
async 2.0.3 2.0.4
body_parser 1.0.3
charcode 1.1.1
collection 1.14.5
combinator 1.0.0-beta+7
container 0.1.2
convert 2.0.1
crypto 2.0.2+1
http_parser 3.1.1
http_server 0.9.7
json_god 2.0.0-beta+1
logging 0.11.3+1
matcher 0.12.1+4
merge_map 1.0.0
meta 1.1.2
mime 0.9.6
path 1.5.1
pool 1.3.4
quiver_hashcode 1.0.0
random_string 0.0.1
source_span 1.4.0
stack_trace 1.9.2
stream_channel 1.6.3
string_scanner 1.0.2
tuple 1.0.1
typed_data 1.1.5
uuid 0.5.3
web_socket_channel 1.0.6 1.0.7
Dev dependencies
angel_test ^1.0.0
http ^0.11.3 0.11.3+16
test ^0.12.15