diff --git a/README.md b/README.md index 7e1ffa6..b263db5 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,14 @@ ``` npm install --save parrotsay-api ``` +## Compile +Using node@v5 + +``` +npm install -g gulp@3.9.0 +gulp +``` ## Usage ```js diff --git a/example.js b/example.js index 2e1172f..249f11e 100644 --- a/example.js +++ b/example.js @@ -1,6 +1,6 @@ // example.js const parrotSay = require('./dist') -parrotSay('yaaay') +parrotSay('yaaay','random') .then(console.log) .catch(console.error) diff --git a/src/index.js b/src/index.js index e4b335a..e00aa66 100644 --- a/src/index.js +++ b/src/index.js @@ -1,18 +1,34 @@ import {join as joinPath} from 'path' -import {readFile} from 'fs' +import {readFile,readdir,statSync} from 'fs' import boxen from 'boxen' const borderStyle = 'classic' -function say(string) { +function say(string, parrot) { return new Promise((resolve, reject) => { - readFile(joinPath(__dirname, 'default-parrot.txt'), 'utf-8', (err, data) => { - if (err) { - reject(err) + parrot = new Promise((resolve, reject) => { + if (parrot===undefined) { + resolve('default-parrot.txt'); + } else if (parrot==='random') { + readdir(__dirname, (err, files) => { + const fileNames = files.filter(file => statSync(joinPath(__dirname, file)).isFile()); + const parrots = fileNames.filter(file => file.endsWith('.txt')); + resolve(parrots[Math.floor(Math.random()*parrots.length)]); + }); + } else { + parrot = parrot + '.txt'; + resolve(parrot); } - resolve(boxen(string, {borderStyle}) + data) - }) + }); + parrot.then((parrot) => { + readFile(joinPath(__dirname, parrot), 'utf-8', (err, data) => { + if (err) { + reject(err) + } + resolve(boxen(string, {borderStyle}) + data) + }) + }); }) } diff --git a/src/parrots/white-eyed-conure.txt b/src/parrots/white-eyed-conure.txt new file mode 100644 index 0000000..0f74389 --- /dev/null +++ b/src/parrots/white-eyed-conure.txt @@ -0,0 +1,19 @@ + + \ + \ ▄▄▄▄▄▄▄▄ + \ ▄ ▄ ▄▄ ▄ + ▄ ▄    ▄ +  ▄    ▄▄▄▄▄     +  ▄     ▄ ▄ +  ▄       +    ▄     +      ▄ ▄    +  ▄ ▄ ▄   ▄▄ ▄ +  ▄ ▄▄ ▄ +   ▄ ▄▄▄▄     ▄▄ ▄ +   ▄▄▄▄ ▄▄  + ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ + +  + +   \ No newline at end of file