1.6.0 • Published 1 year ago

cowsay v1.6.0

Weekly downloads
9,366
License
MIT
Repository
github
Last release
1 year ago

cowsay

 __________________
< srsly dude, why? >
 ------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

cowsay is a configurable talking cow, originally written in Perl by Tony Monroe

This project is a translation in JavaScript of the original program and an attempt to bring the same silliness to node.js.

Install

npm install -g cowsay

Usage

cowsay JavaScript FTW!

or

cowthink node.js is cool

It acts in the same way as the original cowsay, so consult cowsay(1) or run cowsay -h

 ________
< indeed >
 --------
    \
     \
                                   .::!!!!!!!:.
  .!!!!!:.                        .:!!!!!!!!!!!!
  ~~~~!!!!!!.                 .:!!!!!!!!!UWWW$$$
      :$$NWX!!:           .:!!!!!!XUWW$$$$$$$$$P
      $$$$$##WX!:      .<!!!!UW$$$$"  $$$$$$$$#
      $$$$$  $$$UX   :!!UW$$$$$$$$$   4$$$$$*
      ^$$$B  $$$$\     $$$$$$$$$$$$   d$$R"
        "*$bd$$$$      '*$$$$$$$$$$$o+#"
             """"          """""""

Usage as a module

cowsay can be used as any other npm dependency

const cowsay = require("cowsay");

console.log(cowsay.say({
    text : "I'm a moooodule",
    e : "oO",
    T : "U "
}));

// or cowsay.think()
 _________________
( I'm a moooodule )
 -----------------
        o   ^__^
         o  (oO)\_______
            (__)\       )\/\
             U  ||----w |
                ||     ||

getting a list of cow names:

function get_cows(error, cow_names) {
    if (error) {
        console.log(error)
    }
    else if (cow_names) {
        console.log(`Number of cows available: ${cow_names.length}`);
    }
}

cowsay.list(get_cows);

Typescript examples:

import * as cowsay from "cowsay"

let output: string = cowsay.say({ text: 'Hello from typescript!' });

console.log(output);

getting a list of cow names:

function get_cows(error: NodeJS.ErrnoException, cow_names: Array<string>): void {
    if (error) {
        console.log(`Error getting cow names: ${error.message}`)
    }
    else if (cow_names) {
        console.log(`Number of cows available: ${cow_names.length}`);
    }
}

cowsay.list(get_cows);

importing the IOptions interface directly:

import { IOptions } from "cowsay" // optional

let opts: IOptions = {
    text: "Hello from TypeScript!",
    e: '^^',
    r: true,
};

console.log(cowsay.say(opts));

Pipe from standard input

echo please repeat | cowsay

Usage in the browser

cowsay works in your browser too with rollup / webpack / browserify / you name it.

import { say } from 'cowsay';

console.log(say({ text: 'grazing in the browser' }));

You can customize the cow by importing the relevant one

import { think, SQUIRREL } from 'cowsay';

console.log(think({
  text: 'grazing in the browser',
  cow: SQUIRREL,
  eyes: 'pp',
  tongue: ';;',
}));

All cows are included in the bundle, but you can use rollup / webpack tree-shake feature to reduce the final bundle size.

Browser options

say({
  text: 'hello',
  cow: '', // Template for a cow, get inspiration from `./cows`
  eyes: 'oo', // Select the appearance of the cow's eyes, equivalent to cowsay -e
  tongue: 'L|', // The tongue is configurable similarly to the eyes through -T and tongue_string, equivalent to cowsay -T
  wrap: false, // If it is specified, the given message will not be word-wrapped. equivalent to cowsay -n
  wrapLength: 40, // Specifies roughly where the message should be wrapped. equivalent to cowsay -W
  mode: 'b', // One of 	"b", "d", "g", "p", "s", "t", "w", "y"
});
goo_node_studycoincowsimpomatictest-elliot-clihelloiamelliot-cligustavoalbuquerqebr-yarncodeit_node_studyutil-functions-jsyuzaim-my-studycodeit_node_stuylib1-dragoljub-bogicevicdavidchudy-clisalut_gongjang_first_modulemeomeomeonode_packages_mjavad_mahtewlibpublish_test_package_parsablagues-npm@everything-registry/sub-chunk-1393astracli.jstaylorsturtztang-plugin-cowsaytea-gymtea-hello-armadillotea-hello-bananatea-hello-bearfacetea-hello-beestea-hello-biohazardtea-hello-bishoptea-hello-boxtea-hello-bunnytea-hello-caketea-hello-cattea-hello-cat2tea-hello-charlietea-hello-cheesetea-hello-chessmentea-hello-chitotea-hello-clippytea-hello-cowertea-hello-cubetea-hello-daemontea-hello-dalektea-hello-lightbulbtea-hello-lobstertea-hello-lollerskatestea-hello-meowtea-hello-milktea-hello-minotaurtea-hello-moofasatea-hello-moosetea-hello-muletea-hello-nyantea-hello-octopustea-hello-okazutea-hello-owltea-hello-pawntea-hello-queentea-hello-radiotea-hello-rentea-hello-rengetea-hello-robottea-hello-roflcoptertea-hello-rooktea-hello-dogetea-hello-dolphintea-hello-dragontea-hello-elephanttea-hello-explosiontea-hello-eyestea-hello-fencetea-hello-firetea-hello-foxtea-hello-ghosttea-hello-gladostea-hello-goattea-hello-handtea-hello-hedgehogtea-hello-hellokittytea-hello-hippietea-hello-hiyatea-hello-homertea-hello-hypnotea-hello-iwashitea-hello-jellyfishtea-hello-kilroytea-hello-kingtea-hello-kisstea-hello-kittentea-hello-knighttea-hello-koalatea-hello-koshtea-hello-lambtea-character-graphtea-introducetest-ahmad-alarezitest-fatemeteadotea-test-threetea-test-two
1.6.0

1 year ago

1.5.0

4 years ago

1.4.0

7 years ago

1.3.1

7 years ago

1.3.0

7 years ago

1.2.1

8 years ago

1.2.0

8 years ago

1.1.9

9 years ago

1.1.8

9 years ago

1.1.7

9 years ago

1.1.6

9 years ago

1.1.5

9 years ago

1.1.4

9 years ago

1.1.3

10 years ago

1.1.2

10 years ago

1.1.1

10 years ago

1.1.0

10 years ago

1.0.3

12 years ago

1.0.2

12 years ago

1.0.1

12 years ago

1.0.0

13 years ago