File Explorer

/var/lang/lib/node_modules/npm/node_modules/qrcode-terminal/lib

This explorer reads the filesystem of the server it runs on, so /workspace/user isn't present here. Browsing and the terminal still work against this server's own disk from /.

main.js3.0 KB · 101 lines
var QRCode = require('./../vendor/QRCode'),    QRErrorCorrectLevel = require('./../vendor/QRCode/QRErrorCorrectLevel'),    black = "\033[40m  \033[0m",    white = "\033[47m  \033[0m",    toCell = function (isBlack) {        return isBlack ? black : white;    },    repeat = function (color) {        return {            times: function (count) {                return new Array(count).join(color);            }        };    },    fill = function(length, value) {        var arr = new Array(length);        for (var i = 0; i < length; i++) {            arr[i] = value;        }        return arr;    }; module.exports = {     error: QRErrorCorrectLevel.L,     generate: function (input, opts, cb) {        if (typeof opts === 'function') {            cb = opts;            opts = {};        }         var qrcode = new QRCode(-1, this.error);        qrcode.addData(input);        qrcode.make();         var output = '';        if (opts && opts.small) {            var BLACK = true, WHITE = false;            var moduleCount = qrcode.getModuleCount();            var moduleData = qrcode.modules.slice();             var oddRow = moduleCount % 2 === 1;            if (oddRow) {                moduleData.push(fill(moduleCount, WHITE));            }             var platte= {                WHITE_ALL: '\u2588',                WHITE_BLACK: '\u2580',                BLACK_WHITE: '\u2584',                BLACK_ALL: ' ',            };             var borderTop = repeat(platte.BLACK_WHITE).times(moduleCount + 3);            var borderBottom = repeat(platte.WHITE_BLACK).times(moduleCount + 3);            output += borderTop + '\n';             for (var row = 0; row < moduleCount; row += 2) {                output += platte.WHITE_ALL;                 for (var col = 0; col < moduleCount; col++) {                    if (moduleData[row][col] === WHITE && moduleData[row + 1][col] === WHITE) {                        output += platte.WHITE_ALL;                    } else if (moduleData[row][col] === WHITE && moduleData[row + 1][col] === BLACK) {                        output += platte.WHITE_BLACK;                    } else if (moduleData[row][col] === BLACK && moduleData[row + 1][col] === WHITE) {                        output += platte.BLACK_WHITE;                    } else {                        output += platte.BLACK_ALL;                    }                }                 output += platte.WHITE_ALL + '\n';            }             if (!oddRow) {                output += borderBottom;            }        } else {            var border = repeat(white).times(qrcode.getModuleCount() + 3);             output += border + '\n';            qrcode.modules.forEach(function (row) {                output += white;                output += row.map(toCell).join('');                 output += white + '\n';            });            output += border;        }         if (cb) cb(output);        else console.log(output);    },     setErrorLevel: function (error) {        this.error = QRErrorCorrectLevel[error] || this.error;    } };