Skip to content

Commit

Permalink
feat: version 1.1.1
Browse files Browse the repository at this point in the history
  • Loading branch information
santi100a committed Apr 1, 2023
1 parent 55041dc commit e62e15a
Show file tree
Hide file tree
Showing 3 changed files with 91 additions and 14 deletions.
81 changes: 67 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,27 +1,80 @@
# Santi's Coloring Library (JavaScript)
[![Build Status](https://github.com/santi100a/coloring-lib/actions/workflows/main.yml/badge.svg)](https://github.com/santi100a/coloring-lib/actions)
# Santi's Coloring Library
[![Build Status](https://github.com/santi100a/coloring-lib/actions/workflows/test.yml/badge.svg)](https://github.com/santi100a/coloring-lib/actions)
[![npm homepage](https://img.shields.io/npm/v/@santi100/coloring-lib)](https://npmjs.org/package/@santi100/coloring-lib)
[![GitHub stars](https://img.shields.io/github/stars/santi100a/coloring-lib.svg)](https://github.com/santi100a/coloring-lib)
[![License](https://img.shields.io/github/license/santi100a/coloring-lib.svg)](https://github.com/santi100a/coloring-lib)
[![Bundlephobia stats](https://img.shields.io/bundlephobia/min/@santi100/coloring-lib)](https://bundlephobia.com/package/@santi100/coloring-lib@latest)

- 🚀 Lightweight and fast^
- 👴 ES3-compliant*
- 💻 Portable between the browser and Node.js

**Hasn't been tested in an actual ES3 environment. Feel free to open an issue or pull request if you find any non-ES3 thing. See "Contribute" for instructions on how to do so.*

*^The source code is about 2 kilobytes.*

## What's this?
This is a coloring library that uses ANSI sequences to color text on a terminal.
Be aware there might be bugs hidden in this code. Pull requests and issues are welcome!

## Contribute

Wanna contribute? [File an issue](https://github.com/santi100a/coloring-lib/issues) or [pull request](https://github.com/santi100a/coloring-lib/pulls)!
Make sure you follow the [contribution Code of Conduct](https://github.com/santi100a/coloring-lib/blob/main/CODE_OF_CONDUCT.md).
## Installation
- Via NPM: `npm install @santi100/coloring-lib`
- Via Yarn: `yarn add @santi100/coloring-lib`
- Via PNPM: `pnpm install @santi100/coloring-lib`

## API


### Functions
- `coloring(str: string, color: ColorOrEffect): string;`
Color `str` with color `color`.

| Parameter | Type | Description |
|-----------|-----------------|-------------------------------------|
| str | `string` | The string to paint in color. |
| color | `ColorOrEffect` | The color to paint the string in. |

Returns a string of the colored text.

- `coloring(str: string, colors: ArrayOfColorsOrEffects): string;`
Color `str` with colors `colors`.

| Parameter | Type | Description |
|-----------|--------------------------|-----------------------------------------------|
| `str` | `string` | The string to paint in color. |
| `colors` | `ArrayOfColorsOrEffects` | The colors to paint the string in. |

Returns a string of the colored text.

- Run ```npm install @santi100/coloring-lib```, ```yarn add @santi100/coloring-lib```, or ```pnpm install @santi100/coloring-lib```, depending on what package manager you use in your project.
- `rainbowify(str: string): string;`
Colors `str` in a rainbow pattern.

## Usage
Be aware this library uses a subdirectory called `cjs/` for the CommonJS version of the code. The `index.js` file is just an ESM wrapper for it. Keep in mind we ship our own TypeScript definitions. You can import
`@santi100/coloring-lib` (for an ESM project), or `@santi100/coloring-lib/cjs` (for a CJS project or an ESM project that uses default imports).
### Exported Members
| Parameter | Type | Description |
|-----------|-------------------------|----------------------------------------------|
| `str` | `string` | The string to paint in color.

- ```coloring(string: string, color: Color): string;``` This function takes in a string to color, and one of 11 colors/effects: red, yellow, green, black, blue, magenta, cyan, white, bold, conceal and blink.
Returns a string of the rainbow colored text.

- ```coloring(string: string, color: Color[]): string;``` This function takes in a string to color, and an array of the aforementioned colors/effects. If you put two or more colors, the latter one/s will override the former/s.
### Classes
- `class Colorizer`: This is a colorizer object class.
Its instance methods are called the same as the colors/effects, and you can chain them.
To convert the object to a string, call the `Colorizer.prototype.toString()` method.

- ```class Colorizer```: This is a colorizer object class. Its instance methods are called the same as the
colors/effects, and you can chain them. To convert the object to a string, call the ```Colorizer.prototype.toString()``` method.
`Colorizer.prototype.resolve()` **is a deprecated alias for** `Colorizer.prototype.toString()`.
**Use** `Colorizer.prototype.toString()` **instead.**

```Colorizer.prototype.resolve()``` **is a deprecated alias for** `Colorizer.prototype.toString()`. Use ```Colorizer.prototype.toString()``` **instead.**
**The** `Coloring` **class is a deprecated alias for the** `Colorizer` **class.**
**Use** `Colorizer` **instead.**
**The** `Coloring` **class is a deprecated alias for the** `Colorizer` **class.**
**Use** `Colorizer` **instead.**
## Types
- `type Color = 'black' | 'red' | 'green' | 'yellow' | 'blue' | 'magenta' | 'cyan' | 'white' | 'bold' | 'blink' | 'conceal';`
A color to paint a string in.
- `type Effect = 'bold' | 'blink' | 'conceal';`
An effect you can give to a string.
- `type ColorOrEffect = Color | Effect;`
A valid color or effect.
- `type ArrayOfColorsOrEffects = ColorOrEffect[];`
An array of valid colors or effects.
12 changes: 12 additions & 0 deletions cjs/index.d.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,18 @@
/**
* A color to paint a string in.
*/
declare type Color = 'black' | 'red' | 'green' | 'yellow' | 'blue' | 'magenta' | 'cyan' | 'white' | 'bold' | 'blink' | 'conceal';
/**
* An effect you can give to a string.
*/
declare type Effect = 'bold' | 'blink' | 'conceal';
/**
* A valid color or effect.
*/
declare type ColorOrEffect = Color | Effect;
/**
* An array of valid colors or effects.
*/
declare type ArrayOfColorsOrEffects = ColorOrEffect[];
/**
* Color `str` with color `color`.
Expand Down
12 changes: 12 additions & 0 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ const COLORS = {
blink: '\x1b[5m',
conceal: '\x1b[8m'
};
/**
* A color to paint a string in.
*/
type Color =
| 'black'
| 'red'
Expand All @@ -24,8 +27,17 @@ type Color =
| 'bold'
| 'blink'
| 'conceal';
/**
* An effect you can give to a string.
*/
type Effect = 'bold' | 'blink' | 'conceal';
/**
* A valid color or effect.
*/
type ColorOrEffect = Color | Effect;
/**
* An array of valid colors or effects.
*/
type ArrayOfColorsOrEffects = ColorOrEffect[];
function __keys(o: Record<any, any>) {
if (Object?.keys) return Object.keys(o);
Expand Down

0 comments on commit e62e15a

Please sign in to comment.