Skip to content

v6.0.0

Compare
Choose a tag to compare
@cenk1cenk2 cenk1cenk2 released this 07 Apr 15:35
· 610 commits to master since this release

6.0.0 (2023-04-07)

Bug Fixes

  • comply with breaking changes on types (23d1855)
  • expose colorrette and some more utils (d9e0812)
  • handle non string values (04c583c)
  • issue with empty skips from before (5c04f19)
  • issue with test coverage (1bd74d9)
  • missing stuff (9d442f8)
  • move wrong dependency type to dev (d93f135)
  • refactor some of the api for work (4bce0c0)
  • task: update naming scheme and hide taskfn (1b19a89)
  • the issue with rendering, make default renderer method naming scheme similar to logger (6c5c172)
  • update ci configuration for codecov and semantic-release pushback (4f94de6)
  • update dependencies and configuration (ee07b2a)
  • update deps (8140f28)
  • update jsdocs, change default renderer option (2d99b67)
  • update logger to be more flexible (3b76139)
  • update option name (9ddfea3)
  • update splat from logger (142be8c)
  • update typescript path and the import paths accordingly (0d3afcb)

Features

  • add new options for base listr (1a41939)
  • add possiblity to force unicode on all systems (08ba157)
  • add process hooks to hook terminal to obstruct anything while rendering (db7398d), closes #662
  • add splat util.format to output, title and skip (02e5432)
  • add task retry delay (b72eaf3), closes #668
  • adds new test renderer (6098586)
  • ditch rxjs completely and use event emitter based approach (213bc76)
  • expose and alias more of the interfaces since they can be used outside (38479b0)
  • expose more api for pending tasks (a7b1981)
  • expose path from task directly (5c393d0)
  • expose spinner through its own stateful class (99bd97d)
  • process-output: ability to overwrite streams on process output (474e096)
  • process-output: hide cursor as before when hijacking output (a0e150c)
  • renderer: simplify and add eager option (5248c78)

Performance Improvements

  • bump node version to 16 since 14 dies in less than 1 month (36dde30)
  • change field name (91f6fda)
  • change naming scheme for renderer tasks to make it singular (cbcdfe2)
  • change the default behavior for error collection (4785730)
  • change the exposed API of the application (513ed76)
  • changes and reuses logger component and pluggable plugins for renderers (cbf668c), closes #651 #646 #613
  • constants: changes names of listr states (cf9c19d)
  • default fallback renderer changed to simple renderer (67b5b62)
  • deps: ditch-pmap instead of a basic implementation (eb7cfdc)
  • go full esm on jest/ts-node, use dynamic imports for esm modules on default renderer (9cc01c0)
  • handle prompts properly, rename loglevels to listrloglevels (73cad76)
  • logger: move splat to logger as well and refactor multiline message handling (fea0227)
  • logger: unify the logger field input (30a2658)
  • logger: use logger prototype instead of instance for initiating, always pass default (1fc7ef9)
  • move prompt to own instance (7cacdbd)
  • refactor and simplify default renderer (a9ec3c4)
  • refactor the name to shorten it, since it is still understandable (acfe5bd)
  • rename error field of listr and share through parent tasks (88eb34e)
  • rename field (aa831bd)
  • rename for consistency (0530c22)
  • rename nonttyrenderer and its related settings (f29bb12)
  • rename property (5e8a7be)
  • renderer: change the default (796826a)
  • update api and rename for consistency (ffbe9f2)
  • update documentation, rename presets (4041410)
  • update how bottom bar is handled through process output buffer (1729962)
  • update how logger is implemented and injected (3146082)
  • update how test renderer logs and use a serializer instead of constantly creating objects (5859ac4)
  • update naming scheme (acc1f9d)

BREAKING CHANGES

  • renames default renderer options collapse to
    collapseSubtasks
  • On the main Listr task list, conditions for fallback and silent renderer have been
    renamed.
  • rendererSilent has been renamed to silentRendererCondition.
  • rendererFallback has been renamed to fallbackRendererCondition.
  • Default fallback renderer has been changed from verbose to simple, since
    simple can mostly handle non-tty at this point.
  • Changes default error collection behavior to false from minimal, since this is
    the most hidden feature of them all, and it should be opt-in.
  • err field in manager has been renamed to errors as well
  • renames retry property withError to basically error
  • renderer: The default behavior of handling longer output has been changed to wrap.
  • nonTTYRenderer, nonTTYRendererOptions in Listr tasks has been renamed to
    fallbackRenderer and fallbackRendererOptions respectively.

To be honest this was staying for the original Listr compatability but since so much is refactored,
it made sense to change it to match where the others are used.

  • Minimum node version usable is increased to node16 since node14 has been put out of
    the maintenance circle.
  • Moves prompt to another channel and avoids using the output channel for prompts.

Properly uses the ProcessOutputHook for Simpler Renderer. Hooks on prompts.

Moves the ProcessOutputBuffer logic in to its own class, where streams can be recorded.

Deprecated through has been ditched by using a basic WritableStream, idk why i did use it in the
first place,
I guess it was coming from the original Listr implementation.

Still uses ansi escape parsing to properly render the output, still limited by mostly the log-update
but
buffering output for bells and clear line or hide cursor charachters breaks stuff too much, so it is
the safe
way.

  • Renames the err field to errors in Listr class. So error collection is shared
    instead of injected.
  • This completely breaks old behavior with the renderers, even the basic
    parameters are changed.

Now the renderers for things like timer and timestamps takes in
pluggable components through the shared constants, which makes them user
configurable.

The logger interface and logger itself has changed to handle all the
common cases for any kind of renderer, eventhough it does not use all of
them at the same time.

This is a big change that might make the user checkout the new README.

  • constants: State names has been changed, which might break backwards compatability.