Files
cloud-code/claude-code-source/node_modules/.ignored/qrcode/lib/renderer/utf8.js
janlaywss 6187147b74 reconstruct and build @anthropic-ai/claude-code source from source map
- Extract 4756 source files from cli.js.map (57MB)
- Set up Bun build system with bun:bundle feature flag shim
- Configure 90+ compile-time feature flags matching production defaults
- Inject MACRO constants (VERSION, BUILD_TIME, etc.)
- Create stubs for private packages (color-diff-napi, modifiers-napi, etc.)
- Install all public dependencies via pnpm
- Patch commander v14 to allow multi-char short flags (-d2e)
- Build output: dist/cli.js (22MB), verified working
2026-03-31 19:19:50 +08:00

72 lines
1.5 KiB
JavaScript

const Utils = require('./utils')
const BLOCK_CHAR = {
WW: ' ',
WB: '▄',
BB: '█',
BW: '▀'
}
const INVERTED_BLOCK_CHAR = {
BB: ' ',
BW: '▄',
WW: '█',
WB: '▀'
}
function getBlockChar (top, bottom, blocks) {
if (top && bottom) return blocks.BB
if (top && !bottom) return blocks.BW
if (!top && bottom) return blocks.WB
return blocks.WW
}
exports.render = function (qrData, options, cb) {
const opts = Utils.getOptions(options)
let blocks = BLOCK_CHAR
if (opts.color.dark.hex === '#ffffff' || opts.color.light.hex === '#000000') {
blocks = INVERTED_BLOCK_CHAR
}
const size = qrData.modules.size
const data = qrData.modules.data
let output = ''
let hMargin = Array(size + (opts.margin * 2) + 1).join(blocks.WW)
hMargin = Array((opts.margin / 2) + 1).join(hMargin + '\n')
const vMargin = Array(opts.margin + 1).join(blocks.WW)
output += hMargin
for (let i = 0; i < size; i += 2) {
output += vMargin
for (let j = 0; j < size; j++) {
const topModule = data[i * size + j]
const bottomModule = data[(i + 1) * size + j]
output += getBlockChar(topModule, bottomModule, blocks)
}
output += vMargin + '\n'
}
output += hMargin.slice(0, -1)
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
}
const fs = require('fs')
const utf8 = exports.render(qrData, options)
fs.writeFile(path, utf8, cb)
}