ASync CLasses + ASync ITerators
This is public-ready spin off from related internal experiments of ClAsync. Advantages of this module:
- 100% test coverage;
- More project files, less file sizes;
- Thin: has no external dependency modules, only core essentials taken from
ClAsync
and improved; - Utilizes up-to-date Node.js features;
- Targetting serverless/stateless environments;
- Despite the missing documentation, test cases describe the usage.
There are architectural differences listed below:
Item | ClAsync |
AsClAsIt |
---|---|---|
Instance co-op | Dependency tree | State isolation |
Life cycle | Once (init ->final ) |
Muplitle (...->wake ->sleep ->...) |
Lifetime Methods | init() , final() |
(Async) Generator *[$]() depicting whole lifetime |
Instance state | Non-configurable [$.inst] |
Configurable [$] via static [$] : options object or custom $.Inst subclass |
Async Events | Special class (emitter.js ) |
Automatic for each instance; methods of instance state [$] |
Instance Shutdown | Supported (via final ) |
Not supported (global shutdown handler only for non-stateless environments) |
Item | ClAsync |
AsClAsIt |
---|---|---|
Helpers | Functions: $.<name>[Iter|Async](it, ...) |
Wrapped chain: $[.Iter|.AsIt|](it).<name>(...).<name>(...) |
Extensible Classes | Not supported | Supported for sync ($.Iter ) and async ($.AsIt ) iterator classes |
Tests and coverage powered by Jest