UNPKG

2.66 kBJavaScriptView Raw
1/**
2 * A fur context.
3 * @memberof module:fur/lib
4 * @inner
5 * @constructor Fur
6 */
7
8"use strict";
9
10var argx = require('argx'),
11 extend = require('extend'),
12 async = require('async'),
13 furLogger = require('fur-logger'),
14 BannerGenerator = require('./generators/banner_generator'),
15 FaviconGenerator = require('./generators/favicon_generator');
16
17
18/** @lends Fur **/
19function Fur(config) {
20 var s = this;
21 extend(s, config);
22}
23
24Fur.prototype = {
25 /**
26 * Generate banner
27 * @param {string} filename - Filename to generate
28 * @param {object} options - Optional settings.
29 * @param {function} callback - Callback when done.
30 */
31 banner: function (filename, options, callback) {
32 var args = argx(arguments);
33 callback = args.pop('function') || argx.noop;
34 filename = args.shift('string');
35 options = args.pop('object') || {};
36
37 var logger = furLogger(options.verbose);
38 var generator = new BannerGenerator({
39 width: options.width,
40 height: options.height,
41 shape: options.shape,
42 color: options.color,
43 font: options.font,
44 text: options.text,
45 format: options.format,
46 fontSize: options.fontSize
47 });
48 async.series([
49 function (callback) {
50 generator.generate(filename, callback);
51 },
52 function (callback) {
53 logger.logImageGenerated(filename);
54 callback(null);
55 }
56 ], callback);
57 },
58 /**
59 * Generate favicon
60 * @param {string} filename - Filename to generate
61 * @param {object} options - Optional settings.
62 * @param {function} callback - Callback when done.
63 */
64 favicon: function (filename, options, callback) {
65 var args = argx(arguments);
66 callback = args.pop('function') || argx.noop;
67 filename = args.shift('string');
68 options = args.pop('object') || {};
69
70 var logger = furLogger(options.verbose);
71
72 var generator = new FaviconGenerator({
73 size: options.size,
74 shape: options.shape,
75 color: options.color,
76 font: options.font,
77 text: options.text,
78 format: options.format,
79 fontSize: options.fontSize
80 });
81 async.series([
82 function (callback) {
83 generator.generate(filename, callback);
84 },
85 function (callback) {
86 logger.logImageGenerated(filename);
87 callback(null);
88 }
89 ], callback);
90 }
91};
92module.exports = Fur;