1 | var QRCode = require('./../vendor/QRCode'),
|
2 | QRErrorCorrectLevel = require('./../vendor/QRCode/QRErrorCorrectLevel'),
|
3 | black = " ",
|
4 | white = "\033[47m \033[0m",
|
5 | toCell = function (isBlack) {
|
6 | return isBlack ? black : white;
|
7 | },
|
8 | repeat = function (color) {
|
9 | return {
|
10 | times: function (count) {
|
11 | return new Array(count).join(color);
|
12 | }
|
13 | };
|
14 | };
|
15 |
|
16 | module.exports = {
|
17 | generate: function (input, cb) {
|
18 | var qrcode = new QRCode(-1, QRErrorCorrectLevel.H);
|
19 | qrcode.addData(input);
|
20 | qrcode.make();
|
21 |
|
22 | var output = '',
|
23 | border = repeat(white).times(qrcode.getModuleCount() + 3);
|
24 |
|
25 | output += border + '\n';
|
26 | qrcode.modules.forEach(function (row) {
|
27 | output += white;
|
28 | output += row.map(toCell).join('');
|
29 | output += white + '\n';
|
30 | });
|
31 | output += border;
|
32 |
|
33 | if (cb) cb(output);
|
34 | else console.log(output);
|
35 | }
|
36 | };
|