50 lines
1.2 KiB
JavaScript
50 lines
1.2 KiB
JavaScript
|
// let Utils = require('./utils')
|
||
|
|
||
|
exports.render = function (qrData, options, cb) {
|
||
|
const size = qrData.modules.size
|
||
|
const data = qrData.modules.data
|
||
|
|
||
|
// let opts = Utils.getOptions(options)
|
||
|
|
||
|
// use same scheme as https://github.com/gtanner/qrcode-terminal because it actually works! =)
|
||
|
const black = '\x1b[40m \x1b[0m'
|
||
|
const white = '\x1b[47m \x1b[0m'
|
||
|
|
||
|
let output = ''
|
||
|
const hMargin = Array(size + 3).join(white)
|
||
|
const vMargin = Array(2).join(white)
|
||
|
|
||
|
output += hMargin + '\n'
|
||
|
for (let i = 0; i < size; ++i) {
|
||
|
output += white
|
||
|
for (let j = 0; j < size; j++) {
|
||
|
// let topModule = data[i * size + j]
|
||
|
// let bottomModule = data[(i + 1) * size + j]
|
||
|
|
||
|
output += data[i * size + j] ? black : white// getBlockChar(topModule, bottomModule)
|
||
|
}
|
||
|
// output += white+'\n'
|
||
|
output += vMargin + '\n'
|
||
|
}
|
||
|
|
||
|
output += hMargin + '\n'
|
||
|
|
||
|
if (typeof cb === 'function') {
|
||
|
cb(null, output)
|
||
|
}
|
||
|
|
||
|
return output
|
||
|
}
|
||
|
/*
|
||
|
exports.renderToFile = function renderToFile (path, qrData, options, cb) {
|
||
|
if (typeof cb === 'undefined') {
|
||
|
cb = options
|
||
|
options = undefined
|
||
|
}
|
||
|
|
||
|
let fs = require('fs')
|
||
|
let utf8 = exports.render(qrData, options)
|
||
|
fs.writeFile(path, utf8, cb)
|
||
|
}
|
||
|
*/
|