UNPKG

3.08 kBJavaScriptView Raw
1var jwtDecode = require('jwt-decode');
2var globalErrorHandler = require('./global-error-handler');
3var JWTPrefix = "eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.";
4
5module.exports = {
6 parseToken: function parseToken(parsedToken, parsedArgs) {
7 try {
8 if (parsedArgs.customerid && parsedArgs.customerid.indexOf(JWTPrefix) == 0) {
9 parsedToken = parsedArgs.customerid;
10 parsedArgs.token = parsedToken;
11 }
12 if (!parsedToken) {
13 throw new Error("Token Must Be Given");
14 }
15 var tokenData = jwtDecode(parsedToken);
16 if (!tokenData["x-sl-server"]) {
17 throw new Error("Doesn't Contain Server");
18 }
19 if (!tokenData["subject"]) {
20 throw new Error("Doesn't Contain Subject");
21 }
22 var customerId = tokenData["subject"];
23 var subjectParts = tokenData["subject"].split("@");
24 if (subjectParts.length >= 1) {
25 customerId = subjectParts[0];
26 }
27 parsedArgs.server = tokenData["x-sl-server"];
28 parsedArgs.customerid = customerId;
29 parsedArgs.isValidToken = true;
30 } catch (err) {
31 globalErrorHandler.setLastError(err, "Token Is Invalid. ");
32 console.error("Token Is Invalid. " + err.stack);
33 parsedArgs.isValidToken = false;
34 }
35 },
36
37 adjustPathSlashes: function adjustPathSlashes(path) {
38 path = (path || "").replace(/\\/g, '/');
39 return path;
40 },
41
42 expandCommaSeparatedValues: function expandCommaSeparatedValues(arr, delim) {
43 delim = delim || ',';
44 arr = arr || [];
45 var ret = [];
46 arr.forEach(function (item) {
47 var parts = item.split(delim);
48 ret = ret.concat(parts);
49 })
50 return ret;
51 },
52
53 getMissingProperties: function getMissingFields(fieldsMap){
54 var missingFields = [];
55 Object.keys(fieldsMap).forEach(function (key){
56 if (fieldsMap[key]) {
57 missingFields.push(key);
58 }
59 });
60 return missingFields.toString();
61 },
62 isMarkupFile: function (extension) {
63 return this.isArrayContainsMarkupFile([extension]);
64 },
65 isArrayContainsMarkupFile: function (extensionsArr) {
66 var MARKUP_FILES_EXTENSIONS_MAP = {'.ftl': true, '.html': true};
67 if(!Array.isArray(extensionsArr)){return false}
68 for(var i = 0; i < extensionsArr.length; i++) {
69 var ext = extensionsArr[i].toLowerCase();
70 if(MARKUP_FILES_EXTENSIONS_MAP[ext] === true){
71 return true;
72 }
73 }
74 return false
75 },
76 distinctArray: function (value, index, array) {
77 return array.indexOf(value) === index;
78 },
79 cloneObject: function (source, logger) {
80 try {
81 return JSON.parse(JSON.stringify(source));
82 }catch (e){
83 logger.error("Failed to clone, returning shallow ");
84 return null;
85 }
86 }
87};
\No newline at end of file