[Service] Integrate DeviceHome and SignalingServer
[platform/framework/web/wrtjs.git] / device_home / node_modules / qrcode / lib / core / error-correction-level.js
1 exports.L = { bit: 1 }
2 exports.M = { bit: 0 }
3 exports.Q = { bit: 3 }
4 exports.H = { bit: 2 }
5
6 function fromString (string) {
7   if (typeof string !== 'string') {
8     throw new Error('Param is not a string')
9   }
10
11   var lcStr = string.toLowerCase()
12
13   switch (lcStr) {
14     case 'l':
15     case 'low':
16       return exports.L
17
18     case 'm':
19     case 'medium':
20       return exports.M
21
22     case 'q':
23     case 'quartile':
24       return exports.Q
25
26     case 'h':
27     case 'high':
28       return exports.H
29
30     default:
31       throw new Error('Unknown EC Level: ' + string)
32   }
33 }
34
35 exports.isValid = function isValid (level) {
36   return level && typeof level.bit !== 'undefined' &&
37     level.bit >= 0 && level.bit < 4
38 }
39
40 exports.from = function from (value, defaultValue) {
41   if (exports.isValid(value)) {
42     return value
43   }
44
45   try {
46     return fromString(value)
47   } catch (e) {
48     return defaultValue
49   }
50 }