Home

Awesome

uqr

npm version npm downloads bundle License JSDocs

<!-- [![Codecov][codecov-src]][codecov-href] -->

Generate QR Code universally, in any runtime, to ANSI, Unicode or SVG. ES module , zero dependency, tree-shakable.

Install

# Using npm
npm install uqr

# Using yarn
yarn add uqr

# Using pnpm
pnpm add uqr

Usage

import {
  encode,
  renderANSI,
  renderSVG,
  renderUnicode,
  renderUnicodeCompact,
} from 'uqr'

const svg = renderSVG('Hello, World!')

const ansi = renderANSI('https://192.168.1.100:3000', {
  // Error correction level
  ecc: 'L',
  // Border width
  border: 2,
})

// display QR Code in terminal
console.log(ansi)

API

encode

Encode plain text or binary data into QR Code represented by a 2D array.

import { encode } from 'uqr'

const {
  data, // 2D array of boolean, representing the QR Code
  version, // QR Code version
  size, // size of the QR Code
} = encode(text, options)

renderANSI

Render QR Code to ANSI colored string.

import { renderANSI } from 'uqr'

const string = renderANSI(text, options)

console.log(string)

renderUnicode

Render QR Code to Unicode string for each pixel. By default it uses and to represent black and white pixels, and it can be customizable.

import { renderUnicode } from 'uqr'

const string = renderUnicode(text, {
  blackChar: '█',
  whiteChar: '░',
  // ...other options
})

renderUnicodeCompact

Render QR Code with two rows into one line with unicode , , , . It is useful when you want to display QR Code in terminal with limited height.

import { renderUnicodeCompact } from 'uqr'

const string = renderUnicodeCompact(text, options)

console.log(string)

renderSVG

Render QR Code to SVG string.

import { renderSVG } from 'uqr'

const string = renderSVG(text, options)

Credits

QR Code generation algorithm is modified from nayuki/QR-Code-generator by Project Nayuki.

CLI renders are inspired by qrcode-terminal.

License

MIT License

<!-- Badges -->