plexus 4.0.0+5

  • Readme
  • Changelog
  • Example
  • Installing
  • 64

Plexus #

Pub License GitHub code size in bytes GitHub stars

Plexus is an advanced logging framework and collection of classes, extensions and utilities to aid faster development

Some parts of the logging framework are not finalized and may change at any time.

There are probably some documentation comments that were copy-pasted early on and have not been update. If you come across these, please file a bug report

Changelog #

4.0.0+5 #

  • Fix formatting of some documentation

4.0.0+4 #

  • Run dartfmt on all files

4.0.0+3 #

  • Fix formatting of some documentation

4.0.0+2 #

  • Add test to regular dependency section due to use of TestFailure within RootModule
  • Update test dependency to 1.9.4

4.0.0+1 #

  • Add MarkdownLint configuration file
  • Remove boilerplate StreamQueueObservable code and reimplement directly in PatientStreamQueue
  • Refactor most Locale constants
  • Add a few more languages, countries and locales
  • Document entire library
  • Migrate to RXDart 0.23
  • Add DartX dependency
  • Add Mockito dependency for testing stdout
  • Add example along with a launch configuration for it
  • Remove deprecated echoPrompt and securePrompt
  • Add echo parameter to prompt amd promptSync
  • Refactor dtfmt to iso8601NoTZ
  • Refactor Level(...) to Level._(...)
  • Rename all documentation references of alpha package names including Flow and Ocean to Plexus
  • Remove KernelSignal
  • RootModule now watches for some process signals
  • RootModule internal initialization functions are now private
  • Refactor a bunch of typedef
  • Refactor basically everything else
  • Logging *works* (some things are still broken. queue many bug reports)

There are probably some documentation comments that were copy-pasted early on and have not been update. If you come across these, please file a bug report

3.0.0+1 #

  • Complete core localization implementation

2.1.2+2 #

  • Minor documentation and syntax updates

2.1.2+1 #

  • Fix type check in logging
  • Add log test

2.1.1+1 #

  • Add debug flag to prompts which prints input when true

2.1.0+1 #

  • Fix formatting in CHANGELOG.md
  • Change UnmodifiableMapMixin to be a mixin instead of abstract class

2.0.0+1 #

  • Yeah... just tons of changes. Sorry fellas.

1.0.0+2 #

  • Primarily use package:io instead of dart:io
  • Prompting is now asynchronous by default

1.0.0+1 #

  • Where it all began

example/lib/example.dart

import 'package:plexus/expose.dart';
import 'package:plexus/plexus.dart';

/// Example class with [HasModule]
class Calculator with HasModule {
  /// Returns the result of multiplying [a] with [b]
  num multiply(num a, num b) {
    final result = a * b;
    log(Level.FINEST, result);
    return result;
  }

  @override
  final UnmodifiableListView<String> package = const UnmodifiableListView(['plexus', 'example', 'calculator']);
}

Use this package as a library

1. Depend on it

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


dependencies:
  plexus: ^4.0.0+5

2. Install it

You can install packages from the command line:

with pub:


$ pub get

with Flutter:


$ flutter pub get

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

3. Import it

Now in your Dart code, you can use:


import 'package:plexus/plexus.dart';
  
Popularity:
Describes how popular the package is relative to other packages. [more]
36
Health:
Code health derived from static analysis. [more]
100
Maintenance:
Reflects how tidy and up-to-date the package is. [more]
80
Overall:
Weighted score of the above. [more]
64
Learn more about scoring.

We analyzed this package on Jun 4, 2020, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.8.2
  • pana: 0.13.8-dev

Health suggestions

Format lib/src/ansi.dart.

Run dartfmt to format lib/src/ansi.dart.

Format lib/src/event.dart.

Run dartfmt to format lib/src/event.dart.

Format lib/src/expose/list.dart.

Run dartfmt to format lib/src/expose/list.dart.

Fix additional 11 files with analysis or formatting issues.

Additional issues in the following files:

  • lib/src/expose/maps.dart (Run dartfmt to format lib/src/expose/maps.dart.)
  • lib/src/extension/iterable.dart (Run dartfmt to format lib/src/extension/iterable.dart.)
  • lib/src/extension/string.dart (Run dartfmt to format lib/src/extension/string.dart.)
  • lib/src/handler.dart (Run dartfmt to format lib/src/handler.dart.)
  • lib/src/lang.dart (Run dartfmt to format lib/src/lang.dart.)
  • lib/src/logging.dart (Run dartfmt to format lib/src/logging.dart.)
  • lib/src/module.dart (Run dartfmt to format lib/src/module.dart.)
  • lib/src/patient_stream_queue.dart (Run dartfmt to format lib/src/patient_stream_queue.dart.)
  • lib/src/prompt.dart (Run dartfmt to format lib/src/prompt.dart.)
  • lib/src/root_module.dart (Run dartfmt to format lib/src/root_module.dart.)
  • lib/src/util.dart (Run dartfmt to format lib/src/util.dart.)

Maintenance issues and suggestions

Support latest dependencies. (-20 points)

The version constraint in pubspec.yaml does not support the latest published versions for 2 dependencies (dartx, rxdart).

Dependencies

Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.6.0 <3.0.0
async ^2.4.0 2.4.1
collection ^1.14.12 1.14.12
dart_numerics ^0.0.5 0.0.5
dartx ^0.2.0 0.2.0 0.4.1
intl ^0.16.0 0.16.1
io ^0.3.3 0.3.4
logging ^0.11.3+2 0.11.4
meta ^1.1.7 1.1.8
mockito ^4.1.1 4.1.1
rxdart ^0.23.1 0.23.1 0.24.1
test ^1.9.4 1.14.6
tuple ^1.0.3 1.0.3
Transitive dependencies
_fe_analyzer_shared 4.0.0
analyzer 0.39.10
args 1.6.0
boolean_selector 2.0.0
characters 0.3.1 0.5.0
charcode 1.1.3
convert 2.1.1
coverage 0.13.10
crypto 2.1.5
csslib 0.16.1
glob 1.2.0
html 0.14.0+3
http 0.12.1
http_multi_server 2.2.0
http_parser 3.1.4
js 0.6.1+1
matcher 0.12.6
mime 0.9.6+3
multi_server_socket 1.0.2
node_interop 1.1.1
node_io 1.1.1
node_preamble 1.4.10
package_config 1.9.3
path 1.6.4 1.7.0
pedantic 1.9.0
pool 1.4.0
pub_semver 1.4.4
quiver 2.0.5 2.1.3
shelf 0.7.5
shelf_packages_handler 2.0.0
shelf_static 0.2.8
shelf_web_socket 0.2.3
source_map_stack_trace 2.0.0
source_maps 0.10.9
source_span 1.7.0
stack_trace 1.9.3
stream_channel 2.0.0
string_scanner 1.0.5
term_glyph 1.1.0
test_api 0.2.16
test_core 0.3.6
time 1.3.0
typed_data 1.1.6
vm_service 4.0.4
watcher 0.9.7+15
web_socket_channel 1.1.0
webkit_inspection_protocol 0.7.3
yaml 2.2.1