UNPKG

2.17 kBJavaScriptView Raw
1/**
2 * A fur context.
3 * @memberof module:fur/lib
4 * @inner
5 * @constructor Fur
6 */
7
8'use strict'
9
10const argx = require('argx')
11const co = require('co')
12const furLogger = require('fur-logger')
13const BannerGenerator = require('./generators/banner_generator')
14const FaviconGenerator = require('./generators/favicon_generator')
15
16let noMoreCallbackError = () => new Error('Callback is no longer supported. Use promise interface instead.')
17
18/** @lends Fur **/
19function Fur (config) {
20 const s = this;
21 Object.assign(s, config)
22}
23
24Fur.prototype = {
25 /**
26 * Generate banner
27 * @param {string} filename - Filename to generate
28 * @param {object} options - Optional settings.
29 * @returns {Promise}
30 */
31 banner (filename, options) {
32 let args = argx(arguments)
33 if (args.pop('function')) {
34 throw noMoreCallbackError()
35 }
36 filename = args.shift('string')
37 options = args.pop('object') || {}
38
39 let logger = furLogger(options.verbose)
40 let generator = new BannerGenerator({
41 width: options.width,
42 height: options.height,
43 shape: options.shape,
44 color: options.color,
45 font: options.font,
46 text: options.text,
47 format: options.format,
48 fontSize: options.fontSize
49 })
50 return co(function * () {
51 yield generator.generate(filename)
52 logger.logImageGenerated(filename)
53 })
54 },
55 /**
56 * Generate favicon
57 * @param {string} filename - Filename to generate
58 * @param {object} options - Optional settings.
59 * @returns {Promise}
60 */
61 favicon (filename, options) {
62 let args = argx(arguments)
63 if (args.pop('function')) {
64 throw noMoreCallbackError()
65 }
66 filename = args.shift('string')
67 options = args.pop('object') || {}
68
69 let logger = furLogger(options.verbose)
70 let generator = new FaviconGenerator({
71 size: options.size,
72 shape: options.shape,
73 color: options.color,
74 font: options.font,
75 text: options.text,
76 format: options.format,
77 fontSize: options.fontSize
78 })
79 return co(function * () {
80 yield generator.generate(filename)
81 logger.logImageGenerated(filename)
82 })
83 }
84}
85
86module.exports = Fur