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 "
}));
_________________
( 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"
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: '',
eyes: 'oo',
tongue: 'L|',
wrap: false,
wrapLength: 40,
mode: 'b',
});