xico2k / termwind-plugin-live
The live plugin for Termwind.
Fund package maintenance!
nunomaduro
xiCO2k
Installs: 2 785
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 1
Forks: 0
Open Issues: 0
Requires
- php: ^8.0
- nunomaduro/termwind: ^1.15
Requires (Dev)
- ergebnis/phpstan-rules: ^1.0
- laravel/pint: ^1.6
- mockery/mockery: ^1.5
- pestphp/pest: ^2.0.0
- phpstan/phpstan: ^1.10
- phpstan/phpstan-strict-rules: ^1.5
- rector/rector: ^0.15.19
- symfony/var-dumper: ^6.2
- thecodingmachine/phpstan-strict-rules: ^1.0
This package is auto-updated.
Last update: 2024-11-06 20:40:26 UTC
README
Termwind Live Plugin
Termwind Live Plugin allows you to make your cli content live.
Installation
Requires PHP 8.0+
Require Termwind Live Plugin using Composer:
composer require xico2k/termwind-plugin-live
Usage
use function Termwind\Live\live; live(function () { static $total = 0; return sprintf('The content was refreshed %d times.', ++$total); })->refreshEvery(seconds: 1);
refreshEvery()
The refreshEvery
methods may be used to update the content by
certain amount of time.
Methods available:
refreshEvery(milliseconds: 0, seconds: 0)
refreshEverySeconds($seconds)
refreshEveryMilliseconds($seconds)
// Seconds live(fn () => 'foo')->refreshEverySeconds(1); // or live(fn () => 'foo')->refreshEvery(seconds: 1); // Milliseconds live(fn () => 'foo')->refreshEveryMilliseconds(250); // or live(fn () => 'foo')->refreshEvery(milliseconds: 1);
while(Closure $condition)
The while()
method may be used to update the content
while the condition is true
.
live(fn () => 'Loading...') ->while(fn () => $process->running());
showCursor()
and hideCursor()
The showCursor()
and hideCursor()
methods may be used to
show/hide the cursor on your cli.
live('Loading...') ->hideCursor() ->while(fn () => $process->running()) ->showCursor();
clear()
The clear()
method may be used to clear the live output.
live('Loading...') ->while(fn () => $process->running()) ->clear();
RefreshEvent
The RefreshEvent
is passed to the Closure
and provides a way
to stop the execution.
use Termwind\Live\Events\RefreshEvent; live(function (RefreshEvent $event) { $shouldStop = true; // Call to check something... if ($shouldStop) { $event->stop(); } return 'foo'; })->refreshEvery(seconds: 1);
Termwind Live Plugin is an open-sourced software licensed under the MIT license.