-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathindex.js
executable file
·87 lines (73 loc) · 2.43 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
'use strict';
var rfg = require('rfg-api').init();
var PluginError = require('plugin-error');
var colors = require('ansi-colors');
var fancyLog = require('fancy-log');
var fs = require('fs');
var through = require('through2');
var API_KEY = 'eabf77c98d6bd1eea81fb58be7895c42dafc2b21';
var PLUGIN_NAME = 'gulp-real-favicon';
module.exports = {
generateFavicon: function(params, callback) {
var request = rfg.createRequest({
apiKey: API_KEY,
masterPicture: params.masterPicture,
iconsPath: params.iconsPath,
design: params.design,
settings: params.settings,
versioning: params.versioning
});
rfg.generateFavicon(request, params.dest, function(err, data) {
if (err) {
throw new PluginError({
plugin: PLUGIN_NAME,
message: err
});
}
fs.writeFileSync(params.markupFile, JSON.stringify(data));
if (callback !== undefined) {
callback(err);
}
});
},
injectFaviconMarkups: function(htmlMarkups, options) {
var stream = through.obj(function(file, enc, cb) {
if (file.isBuffer()) {
rfg.injectFaviconMarkups(file.contents, htmlMarkups,
(typeof options !== undefined) ? options : {}, function(err, html) {
file.contents = new Buffer(html);
stream.push(file);
cb();
});
}
if (file.isStream()) {
this.emit('error', new PluginError(PLUGIN_NAME, 'Stream not supported'));
}
});
// returning the file stream
return stream;
},
checkForUpdates: function(currentVersion, callback) {
rfg.changeLog(currentVersion, function(err, versions) {
if ((err !== undefined) && (callback !== undefined)) {
callback(err, versions);
return;
}
if (versions.length > 0) {
var url = 'https://realfavicongenerator.net/change_log?since=' + currentVersion;
// Yep, override err so callback receives it as an error
err = "A new version is available for your favicon. Visit " + url + " for more information.";
fancyLog(colors.red(err));
}
else {
fancyLog(colors.green("Your favicon is up-to-date. Hurray!"));
}
if (callback !== undefined) {
callback(err, versions);
}
});
},
escapeJSONSpecialChars: function(json) {
return rfg.escapeJSONSpecialChars(json);
}
}