Skip to content

Latest commit

 

History

History
129 lines (94 loc) · 2.7 KB

README.md

File metadata and controls

129 lines (94 loc) · 2.7 KB

✨ coloid

Beautiful console logger

npm version npm downloads bundle size license

Install

# npm
npm install -D coloid

# yarn
yarn add -D coloid

# pnpm
pnpm install -D coloid

# bun
bun install -D coloid

Usage

Import and use coloid or createColoid function to create new instance.

import { coloid, createColoid } from "coloid";

const newColoid = createColoid({
  // options
});

coloid.info("Hello, world!");

newColoid.info("Hello, world!");

Levels

  • fatal, error, warn, box, log, info, success, fail, ready, debug, trace

Boxes

coloid.box(`New version available: 1.0.0`);

coloid.box({
  title: "New version available",
  message: `You can update to 1.0.0`,
  style: {
    borderColor: "brightYellow",
  },
});

Options

export type BoxStyle = {
  type: BoxTypes;
  borderColor: typeof foregroundColorNames;
  verticalAlign: "top" | "center" | "bottom";
  padding: number;
  marginTop: number;
  marginBottom: number;
  marginLeft: number;
};

export type BoxOptions = {
  title?: string;
  content: string;
  style: Partial<BoxStyle>;
};

These are border styles available:

  • single, double, round, bold, singleDouble, doubleSingle, classic, arrow

Prompts

Prompts are based on @clack/prompts package from https://github.com/natemoo-re/clack

coloid.intro("Welcome to the project setup!");

const projectType = await coloid.select({
  message: "Pick a project type.",
  options: [
    { value: "ts", label: "TypeScript" },
    { value: "js", label: "JavaScript" },
    { value: "coffee", label: "CoffeeScript", hint: "oh no" },
  ],
});

coloid.outro("Project setup completed!");

Custom presets

Presets are responsible for logging object to the console.

export const customPreset: Preset = {
  log: (obj, coloid) => {
    console.log(obj.type, obj.message);
  },
};

const newColoid = createColoid({
  presets: [customPreset],
});

Published under the MIT license. Made by @malezjaa and community 💛