obniz
Version:
obniz sdk for javascript
81 lines (71 loc) • 1.83 kB
JavaScript
class ObnizUtil {
constructor(obniz) {
this.obniz = obniz;
}
createCanvasContext(width, height) {
if (this.obniz.isNode) {
try {
const { createCanvas } = require('canvas');
return createCanvas(this.width, this.height);
} catch (e) {
throw new Error(
'obniz.js require node-canvas to draw rich contents. see more detail on docs'
);
}
} else {
let canvas = document.createElement('canvas');
canvas.width = width;
canvas.height = height;
canvas.style['-webkit-font-smoothing'] = 'none';
let body = document.getElementsByTagName('body')[0];
body.appendChild(canvas);
let ctx = canvas.getContext('2d');
return ctx;
}
}
static _keyFilter(params, keys) {
let filterdParams = {};
if (typeof params !== 'object') {
return filterdParams;
}
filterdParams = Object.keys(params)
.filter(key => keys.includes(key))
.reduce((obj, key) => {
obj[key] = params[key];
return obj;
}, {});
return filterdParams;
}
/**
*
* @return {String} key name of not found.
*/
static _requiredKeys(params, keys) {
if (typeof params !== 'object') {
return keys[0];
}
for (let index in keys) {
if (!(keys[index] in params)) {
return keys[index];
}
}
return null;
}
static dataArray2string(data) {
let string = null;
try {
const StringDecoder = require('string_decoder').StringDecoder;
if (StringDecoder) {
string = new StringDecoder('utf8').write(Buffer.from(data));
}
} catch (e) {
//this.obniz.error(e);
}
return string;
}
static string2dataArray(str) {
const buf = Buffer.from(str);
return [...buf];
}
}
module.exports = ObnizUtil;