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.

49 lines (39 loc) 1.02 kB
'use strict'; const uppercaseAsync = (message, callback) => { process.nextTick(() => { callback(null, typeof message === 'string' ? 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) => { uppercaseAsync(message, (err, message) => { if (err) { return callback(err); } splitWordsAsync(message, (err, words) => { if (err) { return callback(err); } abbreviateAsync(words, callback); }); }); }; module.exports = messageAbbr;