UNPKG

nodebook

Version:

Node.js — Apprendre par l'exemple • Devenez autonome avec JavaScript, l'écosystème npm, le développement frontend, les applications web et en ligne de commande.

44 lines (35 loc) 929 B
'use strict'; const { waterfall } = require('async'); const uppercaseAsync = (message, callback) => { process.nextTick(() => { callback(null, message.toLocaleUpperCase ? message.toLocaleUpperCase() : message); }); } const splitWordsAsync = (message, callback) => { process.nextTick(() => { if (typeof message !== 'string'){ return callback(new TypeError('message is not a String')); } return callback(null, message.split(' ')); }); } const abbreviateAsync = (words, callback) => { process.nextTick(() => { try { const abbr = words.reduce((abbr, word) => abbr + word[0], ''); return callback(null, abbr); } catch (err){ return callback(err); } }); } const messageAbbr = (message, callback) => { waterfall([ (done) => done(null, message), uppercaseAsync, splitWordsAsync, abbreviateAsync ], callback); }; module.exports = messageAbbr;