-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
56 lines (54 loc) · 1.37 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
const qrcode = require('qrcode');
const libUrl = require('url');
module.exports = {
configSchema: {
cli: {
type: 'boolean',
default: true,
description: 'whether to display command line qrcode'
},
ui: {
type: 'boolean',
default: true,
description: 'whether to display browser ui qrcode'
},
console: {
type: 'boolean',
default: false,
description: 'whether to display browser console qrcode'
}
},
services: {},
assets: {
script: ['./assets/index.js'],
style: ['./assets/index.css']
},
hooks: {
async onCreate({ events, config, io, logger }) {
const MODE_MAPPING = {
string: 'toString',
base64: 'toDataURL'
};
io.registService(
'qrcode.get',
async ({ content, url ,mode = 'string', type = 'terminal' }) => {
let qrContent = url
? libUrl.resolve(config.get('$.urls.external'), url)
: content;
return qrcode[MODE_MAPPING[mode]](qrContent, { type });
}
);
events.on('ready', () => {
if (config.get('cli')) {
io.call('qrcode.get', {
content: config.get('$.urls.external')
}).then(urlTerminal => {
logger.notify(
'generated qrcode for external urls \n' + urlTerminal
);
});
}
});
}
}
};