lean-qr
TypeScript icon, indicating that this package has built-in type declarations

2.3.4 • Public • Published

Lean QR

Lean QR is a lightweight yet fully-featured library for generating QR Codes. It runs in NodeJS and all recent browsers, and includes wrapper components for React and Preact. Under 4kB compressed.

Features

  • ISO 18004 compliant;
  • Lightweight (less than 4kB compressed, ~7kB uncompressed, no dependencies);
  • Simple yet flexible API, with sensible defaults for all configuration;
  • Supports all standard encodings out-of-the box:
    • including Unicode 😎;
    • and Shift-JIS 漢字;
    • and supports custom modes for special requirements;
  • Automatic encoding to minimise output size;
  • Fast enough for lag-free live editing;
  • Comprehensive automated testing;
  • Multiple output formats (canvas / PNG / SVG / text).

You can see it in action online, or try it from the terminal:

npx lean-qr 'MY MESSAGE HERE'

Basic Usage

See the Quickstart documentation for NodeJS / Browser / React / Preact / CLI usage.

npm install --save lean-qr
<canvas id="my-qr-code" />

<style>
#my-qr-code {
  image-rendering: pixelated;
  width: 100%;
}
</style>
import { generate } from 'lean-qr';

const qrCode = generate('LEAN-QR LIBRARY');
qrCode.toCanvas(document.getElementById('my-qr-code'));

Troubleshooting

Jest / JSDOM error: "TextEncoder is not defined"

There is a bug in JSDOM which prevents this class being available in tests. This issue only affects JSDOM, and can be fixed with:

import { TextEncoder, TextDecoder } from 'node:util';
global.TextEncoder = TextEncoder;
global.TextDecoder = TextDecoder;

You can put this in the test file or in Jest's setupFilesAfterEnv config. You should not put this in your application code.

Full Documentation

Package Sidebar

Install

npm i lean-qr

Weekly Downloads

1,413

Version

2.3.4

License

MIT

Unpacked Size

39.3 kB

Total Files

15

Last publish

Collaborators

  • davidje13