Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

87 linhas
1.9KB

  1. /*
  2. Node plugin for figlet.js
  3. */
  4. var figlet = require('./figlet.js'),
  5. fs = require('fs'),
  6. path = require('path'),
  7. fontDir = path.join(__dirname, '/../fonts/');
  8. /*
  9. Loads a font into the figlet object.
  10. Parameters:
  11. - name (string): Name of the font to load.
  12. - next (function): Callback function.
  13. */
  14. figlet.loadFont = function(name, next) {
  15. if (figlet.figFonts[name]) {
  16. next(null, figlet.figFonts[name].options);
  17. return;
  18. }
  19. fs.readFile( path.join(fontDir, name + '.flf'), {encoding: 'utf-8'}, function(err, fontData) {
  20. if (err) {
  21. return next(err);
  22. }
  23. fontData = fontData + '';
  24. try {
  25. next(null, figlet.parseFont(name, fontData));
  26. } catch(error) {
  27. next(error);
  28. }
  29. });
  30. };
  31. /*
  32. Loads a font synchronously into the figlet object.
  33. Parameters:
  34. - name (string): Name of the font to load.
  35. */
  36. figlet.loadFontSync = function(name) {
  37. if (figlet.figFonts[name]) {
  38. return figlet.figFonts[name].options;
  39. }
  40. var fontData = fs.readFileSync( path.join(fontDir, name + '.flf'), {encoding: 'utf-8'});
  41. fontData = fontData + '';
  42. return figlet.parseFont(name, fontData);
  43. };
  44. /*
  45. Returns an array containing all of the font names
  46. */
  47. figlet.fonts = function(next) {
  48. var fontList = [];
  49. fs.readdir(fontDir, function (err, files) { // '/' denotes the root folder
  50. if (err) {
  51. return next(err);
  52. }
  53. files.forEach( function (file) {
  54. if ( /\.flf$/.test(file) ) {
  55. fontList.push( file.replace(/\.flf$/,'') );
  56. }
  57. });
  58. next(null, fontList);
  59. });
  60. };
  61. figlet.fontsSync = function() {
  62. var fontList = [];
  63. fs.readdirSync(fontDir).forEach(function(file) {
  64. if ( /\.flf$/.test(file) ) {
  65. fontList.push( file.replace(/\.flf$/,'') );
  66. }
  67. });
  68. return fontList;
  69. };
  70. module.exports = figlet;