Skip to content
/ lean-qr Public

Fork of lean-qr for better browser compatibility

License

Notifications You must be signed in to change notification settings

vbtc/lean-qr

Repository files navigation

Lean QR

Fork of LeanQR, simplified (only canvas, removed extras, removed Preact/React) and adjusted to build for better browser compatibility. Now builds minified CJS that can be included in browsers directly. Builds minified and non-minified versions.

Lean QR is a lightweight yet fully-featured library for generating QR Codes. It runs in NodeJS and most browsers, and includes wrapper components. 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;

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

npx lean-qr 'MY MESSAGE HERE'

Basic Usage

Build, output will be placed in web/build

npm install
npm run build

Example usage:

<script src='lean-qr-2.3.4.min.js' />
<canvas id="my-qr-code" />

<style>
#my-qr-code {
  image-rendering: pixelated;
  width: 100%;
}
</style>

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

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

About

Fork of lean-qr for better browser compatibility

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published