Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

qrious-core

neocotic153GPL-3.04.0.0

QRious core engine for QR code generation

qr, code, qrious, core, engine

readme

 .d88888b.  8888888b.  d8b                                  .d8888b.
d88P" "Y88b 888   Y88b Y8P                                 d88P  Y88b
888     888 888    888                                     888    888
888     888 888   d88P 888  .d88b.  888  888 .d8888b       888         .d88b.  888d888 .d88b.
888     888 8888888P"  888 d88""88b 888  888 88K           888        d88""88b 888P"  d8P  Y8b
888 Y8b 888 888 T88b   888 888  888 888  888 "Y8888b.      888    888 888  888 888    88888888
Y88b.Y8b88P 888  T88b  888 Y88..88P Y88b 888      X88      Y88b  d88P Y88..88P 888    Y8b.
 "Y888888"  888   T88b 888  "Y88P"   "Y88888  88888P'       "Y8888P"   "Y88P"  888     "Y8888
       Y8b

QRious Core is the core engine for QRious' QR code generation as well as modules to support other environments (e.g. QRious Node).

Chat Build Status Dependency Status Dev Dependency Status License Release

Install

Install using npm:

$ npm install --save qrious-core

You will most likely never need to depend on qrious-core directly. Instead, you will probably want to install a module that supports your desired environment. For example:

API

As this is the core of QRious, it contains all of the QR code generation logic and, since it's designed to use HTML5 canvas to render the QR code, all that consumers need to do is define and register an implementation of ElementService.

Most modules that use QRious Core will look something like the following:

var ElementService = require('qrious-core/src/service/element/ElementService');
var QRious = require('qrious-core');

var ExampleElementService = ElementService.extend({
  createCanvas: function() { /* ... */ },
  createImage: function() { /* ... */ },
  isCanvas: function(element) { /* ... */ },
  isImage: function(element) { /* ... */ }
});

QRious.use(new ExampleElementService());

module.exports = QRious;

This allows the core to control the primary API and keep it consistent across all environments. With the above in place, you are free to import QRious and use it as you would anywhere else.

You will find the primary API documentation on QRious. All direct consumers of core should also reference this to help developers find the information easily. However, they are encouraged to provide environment-specific examples.

Bugs

If you have any problems with QRious Core or would like to see changes currently in development you can do so here.

Contributors

If you want to contribute, you're a legend! Information on how you can do so can be found in CONTRIBUTING.md. We want your suggestions and pull requests!

A list of QRious Core contributors can be found in AUTHORS.md.

License

Copyright © 2017 Alasdair Mercer
Copyright © 2010 Tom Zerucha

See LICENSE.md for more information on our GPLv3 license.

changelog

Version 4.0.0, 2017.06.02

  • Split into multiple modules #53 (breaking change)
  • Remove QRious.VERSION #84 (breaking change)

Version 3.0.1, 2017.06.01

  • Correct file sizes of distribution files in README #82

Version 3.0.0, 2017.06.01

  • Reduce size of distribution files #59 (breaking change)
  • Drop support for Node.js < 4 #74 (breaking change)
  • Remove QRious.DEFAULTS #77 (breaking change)
  • Rewrite code in ES5 #81 (breaking change)

Version 2.3.0, 2017.05.31

  • Enable setting of multiple properties at once resulting in a single re-render #69
  • Deferring or avoiding ImageRenderer #71
  • Switch to container-based Travis builds for faster boot times #73
  • Change code style to be more contributor-friendly #75
  • Improve download links in README #76

Version 2.2.0, 2016.10.30

  • Add backgroundAlpha and foregroundAlpha options to control transparency #63

Version 2.1.0, 2016.10.04

  • Allow padding to be set explicitly #44
  • Fix support for older browsers #55
  • Update code style to fit with other projects
  • Update build system to run on older Node.js versions at a reduced capacity

Version 2.0.2, 2016.08.05

  • Fix bug where mask is incorrectly applied #50

Version 2.0.1, 2016.07.03

  • Correct license mentioned into README.md

Version 2.0.0, 2016.06.26

  • Rename library to QRious and move package from qr-js to qrious
  • Completely redesign API to follow OOP pattern for simplicity
  • Remove save and saveSync method
  • Remove noConflict method
  • Remove documentation generated by docco
  • Restructure code base to make it more maintainable and use Rollup to build it
  • Provide better built-in support for Browserify and Webpack etc
  • Switch from JSHint to ESLint
  • Add demo.html to allow contributors to experiment and test with changes due to lack of unit tests
  • Remove INSTALL.md and consolidate contents into README.md and CONTRIBUTING.md
  • Add EditorConfig file
  • Add support for Travis CI

Version 1.1.4, 2015.11.11

  • Fix padding issues #2
  • Make the QR code center-aligned #35
  • Update node-canvas dependency version to support Node.js v4 and above #38

Version 1.1.3, 2014.09.01

Version 1.1.2, 2014.04.27

  • Fix "too many open files" bug #20

Version 1.1.1, 2013.12.03

  • Fix bug with IIFE

Version 1.1.0, 2013.12.02

  • Fix RequireJS support #9
  • Remove Ender support #13
  • Improve code formatting and style #14
  • Support different MIME types for toDataURL and other related functions #16
  • Remove unnecessary callback arguments from synchronous functions #17
  • Make save fully asynchronous #17
  • Add saveSync for synchronous saving #17
  • Add Grunt build system #18
  • Generate source map as part of build #18
  • Improve developer documentation #18
  • Add support for Bower #19
  • Many small fixes and tweaks

Version 1.0.3, 2011.12.19

  • Rename QRCode to qr #3
  • Remove all deprecated methods #3
  • Reformat code and add additional, along with some original, code comments #4
  • Add support for Node.js, CommonJS and Ender #6
  • Add optional callback functionality to API methods #6
  • Allow data arguments to be an object or string value #7
  • Add VERSION property to the API #8
  • Add toDataURL, save and noConflict methods to the API #8
  • Now distributed under the MIT license

Version 1.0.2, 2011.08.31

  • Deprecate generateCanvas and generateImage and replaced with canvas and image respectively #1

Version 1.0.1, 2011.08.12

  • Allow customisation of colours used when rendering