diff --git a/examples/rainbow.js b/examples/rainbow.js deleted file mode 100644 index fc086fa..0000000 --- a/examples/rainbow.js +++ /dev/null @@ -1,38 +0,0 @@ -'use strict'; -const chalk = require('..'); - -const ignoreChars = /[^!-~]/g; - -function rainbow(str, offset) { - if (!str || str.length === 0) { - return str; - } - - const hueStep = 360 / str.replace(ignoreChars, '').length; - - let hue = offset % 360; - const chars = []; - for (const c of str) { - if (c.match(ignoreChars)) { - chars.push(c); - } else { - chars.push(chalk.hsl(hue, 100, 50)(c)); - hue = (hue + hueStep) % 360; - } - } - - return chars.join(''); -} - -const sleep = ms => new Promise(resolve => setTimeout(resolve, ms)); - -async function animateString(str) { - console.log(); - for (let i = 0; i < 360 * 5; i++) { - console.log('\u001B[1F\u001B[G ', rainbow(str, i)); - await sleep(2); // eslint-disable-line no-await-in-loop - } -} - -console.log(); -animateString('We hope you enjoy the new version of Chalk 2! <3').then(() => console.log()); diff --git a/examples/rainbow.ts b/examples/rainbow.ts new file mode 100644 index 0000000..caec1f0 --- /dev/null +++ b/examples/rainbow.ts @@ -0,0 +1,38 @@ +'use strict'; + chalk = require('..'); + + ignoreChars = /[^!-~]/g; + + rainbow(str, offset) { + (!str || str.length === 0) { + str; + } + + hueStep = 360 / str.replace(ignoreChars, '').length; + + hue = offset % 360; + chars = []; + ( c str) { + (c.match(ignoreChars)) { + chars.push(c); + } { + chars.push(chalk.hsl(hue, 100, 50)(c)); + hue = (hue + hueStep) % 360; + } + } + + chars.join(''); +} + +sleep = ms => new Promise(resolve => setTimeout(resolve, ms)); + + M animateString(str) { + console.log(); + ( i = 0; i < 360 * 5; i++) { + console.log('\u001B[1F\u001B[G ', rainbow(str, i)); + sleep(2); // eslint-disable-line no-await-in-loop + } +} + +console.log(); +animateString('We hope you enjoy the new version of Chalk 2! <3').then(() => console.log());