UNPKG

1.6 kBJavaScriptView Raw
1/**
2 * @copyright Copyright (c) 2019 Maxim Khorin <maksimovichu@gmail.com>
3 */
4'use strict';
5
6module.exports = class CommonHelper {
7
8 static isEmpty (value) {
9 return value === undefined || value === null || value === '';
10 }
11
12 static isEqual (a, b) {
13 return a === b || JSON.stringify(a) === JSON.stringify(b);
14 }
15
16 static log (logger, prefix, type, message, data) {
17 logger = logger || console;
18 if (typeof message === 'string') {
19 return logger.log(type, prefix ? `${prefix}: ${message}` : message, data);
20 }
21 logger.log(type, `${prefix}:`, message);
22 }
23
24 static parseJson (data) {
25 if (typeof data !== 'string') {
26 return data;
27 }
28 try {
29 return JSON.parse(data);
30 } catch {}
31 }
32
33 static parseRelationChanges (data) {
34 if (data && typeof data === 'string') {
35 try {
36 data = JSON.parse(data);
37 } catch {
38 return false;
39 }
40 }
41 if (!data) {
42 return null;
43 }
44 if (!Array.isArray(data.links)) {
45 data.links = [];
46 }
47 if (!Array.isArray(data.unlinks)) {
48 data.unlinks = [];
49 }
50 if (!Array.isArray(data.deletes)) {
51 data.deletes = [];
52 }
53 const all = data.links.concat(data.unlinks, data.deletes);
54 return all.length === ArrayHelper.unique(all).length ? data : false;
55 }
56};
57
58const ArrayHelper = require('./ArrayHelper');
\No newline at end of file