87 lines
1.9 KiB
JavaScript
87 lines
1.9 KiB
JavaScript
/*
|
|
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;
|