Skip to content
/ picospin Public

Bare minimum spinner for CLI apps (using picocolors)

License

Notifications You must be signed in to change notification settings

alloc/picospin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

picospin

Bare minimum spinner for CLI apps.

pnpm add picospin

API

Spinner Control

getSpinner()

Returns the current spinner string with applied color.

import { getSpinner } from 'picospin'

console.log(getSpinner()) // Returns colored spinner character

setSpinner(config: Partial<Spinner>)

Customizes the spinner used for active tasks.

import { setSpinner } from 'picospin'

// Customize spinner with different frames and color
setSpinner({
  frames: ['◐', '◓', '◑', '◒'],
  interval: 100,
  color: input => `\x1b[35m${input}\x1b[0m`, // Purple color
})

spin(enabled: boolean)

Enables or disables the spin interval. When enabled, the spinner will animate by cycling through its frames.

import { spin } from 'picospin'

// Start spinning
spin(true)

// Later, stop spinning
spin(false)

spinListeners

A Set of functions that are called when the spinner updates. You can add your own listeners to react to spinner updates.

import { spinListeners } from 'picospin'

// Add a listener to react to spinner updates
spinListeners.add(() => {
  // Do something when spinner updates
  console.clear()
  console.log('Spinner updated!')
})

Spinner Interface

interface Spinner {
  interval: number // Time in ms between frame updates
  frames: string[] // Characters to cycle through
  color: (input: string) => string // Function to apply color
}

Environment Detection

isInteractive

A boolean that is true when the process is running in an interactive terminal (TTY) and not in a CI environment.

import { isInteractive } from 'picospin'

if (isInteractive) {
  // Show fancy spinner
} else {
  // Use simpler output for non-interactive environments
}

About

Bare minimum spinner for CLI apps (using picocolors)

Resources

License

Stars

Watchers

Forks

Packages

No packages published