|
- /*
- Node plugin for figlet.js
- */
-
- var figlet = require('./figlet.js'),
- fs = require('fs'),
- path = require('path'),
- fontDir = path.join(__dirname, '/../fonts/');
-
- /*
- Loads a font into the figlet object.
-
- Parameters:
- - name (string): Name of the font to load.
- - next (function): Callback function.
- */
- figlet.loadFont = function(name, next) {
- if (figlet.figFonts[name]) {
- next(null, figlet.figFonts[name].options);
- return;
- }
-
- fs.readFile( path.join(fontDir, name + '.flf'), {encoding: 'utf-8'}, function(err, fontData) {
- if (err) {
- return next(err);
- }
-
- fontData = fontData + '';
- try {
- next(null, figlet.parseFont(name, fontData));
- } catch(error) {
- next(error);
- }
- });
- };
-
- /*
- Loads a font synchronously into the figlet object.
-
- Parameters:
- - name (string): Name of the font to load.
- */
- figlet.loadFontSync = function(name) {
- if (figlet.figFonts[name]) {
- return figlet.figFonts[name].options;
- }
-
- var fontData = fs.readFileSync( path.join(fontDir, name + '.flf'), {encoding: 'utf-8'});
-
- fontData = fontData + '';
- return figlet.parseFont(name, fontData);
- };
-
- /*
- Returns an array containing all of the font names
- */
- figlet.fonts = function(next) {
- var fontList = [];
- fs.readdir(fontDir, function (err, files) { // '/' denotes the root folder
- if (err) {
- return next(err);
- }
-
- files.forEach( function (file) {
- if ( /\.flf$/.test(file) ) {
- fontList.push( file.replace(/\.flf$/,'') );
- }
- });
-
- next(null, fontList);
- });
-
- };
-
- figlet.fontsSync = function() {
- var fontList = [];
- fs.readdirSync(fontDir).forEach(function(file) {
- if ( /\.flf$/.test(file) ) {
- fontList.push( file.replace(/\.flf$/,'') );
- }
- });
-
- return fontList;
- };
-
- module.exports = figlet;
|