UNPKG

1.65 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 prefix ? logger.log(type, `${prefix}:`, message)
22 : logger.log(type, message);
23 }
24
25 static parseJson (data) {
26 if (typeof data !== 'string') {
27 return data;
28 }
29 try {
30 return JSON.parse(data);
31 } catch {}
32 }
33
34 static parseRelationChanges (data) {
35 if (data && typeof data === 'string') {
36 try {
37 data = JSON.parse(data);
38 } catch {
39 return false;
40 }
41 }
42 if (!data) {
43 return null;
44 }
45 if (!Array.isArray(data.links)) {
46 data.links = [];
47 }
48 if (!Array.isArray(data.unlinks)) {
49 data.unlinks = [];
50 }
51 if (!Array.isArray(data.deletes)) {
52 data.deletes = [];
53 }
54 const all = data.links.concat(data.unlinks, data.deletes);
55 return all.length === ArrayHelper.unique(all).length ? data : false;
56 }
57};
58
59const ArrayHelper = require('./ArrayHelper');
\No newline at end of file