Files
suaveplan/packages/foundation/barcode/qrcode
2026-05-27 23:47:53 +01:00
..
2026-05-27 23:47:53 +01:00
2026-05-27 23:47:53 +01:00
2026-05-27 23:47:53 +01:00
2026-05-27 23:47:53 +01:00
2026-05-27 23:47:53 +01:00
2026-05-27 23:47:53 +01:00
2026-05-27 23:47:53 +01:00

@suaveplan/qrcode - QR code generation producing SVG, pixel matrix, terminal (Unicode blocks), and data URL representations. Implements QR code versions 1-10, error correction levels L/M/Q/H, automatic version and mode selection.

Summary

QR code generation producing SVG, pixel matrix, terminal (Unicode blocks), and data URL representations. Implements QR code versions 1-10, error correction levels L/M/Q/H, automatic version and mode selection.

Documentation tree

- [encoder](./src/core/encoder/data-encoder.md) — _(no submodules)_- [data-encoder](./src/core/encoder/data-encoder.md) — _(no submodules)_- [mask](./src/core/mask/masking.md) — _(no submodules)_- [masking](./src/core/mask/masking.md) — _(no submodules)_- [matrix](./src/core/matrix/matrix-builder.md) — _(no submodules)_- [matrix-builder](./src/core/matrix/matrix-builder.md) — _(no submodules)_- [reed-solomon](./src/core/reed-solomon/reed-solomon.md) — _(no submodules)_- [reed-solomon](./src/core/reed-solomon/reed-solomon.md) — _(no submodules)_- [renderer](./src/core/renderer/svg-renderer.md) — _(no submodules)_- [svg-renderer](./src/core/renderer/svg-renderer.md) — _(no submodules)_- [tables](./src/core/tables/tables.md) — _(no submodules)_- [tables](./src/core/tables/tables.md) — _(no submodules)_- [qrcode](./src/core/qrcode.md) — _(no submodules)_- [errors](./src/errors/qrcode-error.md) — _(no submodules)_- [qrcode-error](./src/errors/qrcode-error.md) — _(no submodules)_- data-encoder — (no submodules)- data-encoder — (no submodules)- mask — (no submodules)- masking — (no submodules)- matrix — (no submodules)- matrix-builder — (no submodules)- reed-solomon — (no submodules)- reed-solomon — (no submodules)- renderer — (no submodules)- svg-renderer — (no submodules)- tables — (no submodules)- tables — (no submodules)- qrcode — (no submodules)- data-encoder — <!-- begin:au…

  • errors — (no submodules)- qrcode-error — (no submodules)- data-encoder — _(no submod…

  • encoder — (no submodules)- data-encoder — (no submodules)- mask — (no submodules)- masking — (no submodules)- matrix — (no submodules)- matrix-builder — (no submodules)- reed-solomon — (no submodules)- reed-solomon — (no submodules)- renderer — (no submodules)- svg-renderer — (no submodules)- tables — (no submodules)- tables — (no submodules)- qrcode — (no submodules)- data-encoder — _(no submod…

  • errors — (no submodules)- qrcode-error — (no submodules)- encoder — (no submodules) - data-encoder — (no submodules)- mask — (no submodules) - masking — (no submodules)- matrix — (no submodules) - matrix-builder — (no submodules)- reed-solomon — (no submodules) - reed-solomon — (no submodules)- renderer — (no submodules) - svg-renderer — (no submodules)- tables — (no submodules) - tables — (no submodules)- qrcode — (no submodules)- errors — (no submodules) - qrcode-error — (no submodules)

  • Installation

    bun add @suaveplan/qrcode
    

    Quick Start

    import { generate } from "@suaveplan/qrcode";
    
    const result = generate("https://suaveplan.io");
    
    console.log(result.svg);      // Inline SVG string
    console.log(result.dataUrl);  // data:image/svg+xml;base64,...
    console.log(result.terminal); // Unicode half-block for CLI display
    console.log(result.version);  // e.g. 2
    console.log(result.size);     // e.g. 25 (version 2 = 25×25)
    

    API

    generate(data, options?)

    Generates a complete QR code for any UTF-8 string.

    import { generate } from "@suaveplan/qrcode";
    
    const result = generate("Hello World", {
      errorCorrectionLevel: "H",  // 'L' | 'M' | 'Q' | 'H', default 'M'
      version: 2,                  // 1-10, auto-selected if omitted
      margin: 4,                   // quiet zone in modules, default 4
      color: "#000000",            // dark module color, default '#000000'
      background: "#ffffff",       // light module color, default '#ffffff'
      scale: 10,                   // pixels per module in SVG, default 10
    });
    

    Returns QRCodeResult:

    Field Type Description
    version number QR version used (1-10)
    errorCorrectionLevel ErrorCorrectionLevel EC level used
    mode QRMode Encoding mode (numeric/alphanumeric/byte)
    matrix boolean[][] Module grid — true = dark
    size number Matrix dimension (size × size)
    svg string Complete SVG markup
    dataUrl string data:image/svg+xml;base64,...
    terminal string Unicode half-block terminal representation

    Errors

    import { QRCodeError, QRCODE_CODES } from "@suaveplan/qrcode/errors";
    
    try {
      generate("", { version: 1, errorCorrectionLevel: "H" });
    } catch (e) {
      if (e instanceof QRCodeError) {
        switch (e.code) {
          case QRCODE_CODES.INVALID_DATA:
            // Empty input, invalid characters, or out-of-range version
            break;
          case QRCODE_CODES.VERSION_TOO_SMALL:
            // Data too large for the specified version (or all versions 1-10)
            break;
          case QRCODE_CODES.ENCODE_FAILED:
            // Internal encoding pipeline failure
            break;
        }
      }
    }
    

    Module Exports

    Subpath Contents
    @suaveplan/qrcode generate, all types, all sub-module exports
    @suaveplan/qrcode/errors QRCodeError, QRCODE_CODES, QRCodeCode
    @suaveplan/qrcode/core/tables Lookup tables and helpers
    @suaveplan/qrcode/core/encoder detectMode, encodeData, BitBuffer, encodeUtf8
    @suaveplan/qrcode/core/reed-solomon rsEncode, interleaveBlocks, splitBlocks, GF arithmetic
    @suaveplan/qrcode/core/matrix buildMatrix
    @suaveplan/qrcode/core/mask selectMask, penaltyScore
    @suaveplan/qrcode/core/renderer renderSvg, renderDataUrl, renderTerminal

    Co-located Documentation