sbis3-node-ws
Version:
Модуль позволяет использовать ядро интерфейсного фреймворка sbis3-ws(`core.js`) и модуль работы с данными (`Source.js`) в приложении на nodejs.
151 lines (150 loc) • 4.92 kB
JavaScript
define('js!Core/tmpl/js/helpers/utils', function utilsLoader() {
'use strict';
var utils = {
mapForLoop: function mapForLoop(array, mapFunction) {
var arrayLen = array.length,
newArray = new Array(arrayLen),
i;
for (i = 0; i < arrayLen; i++) {
newArray[i] = mapFunction(array[i], i, array);
}
return newArray;
},
eachObject: function eachObject(object, modifier) {
var value;
for (value in object) {
if (object.hasOwnProperty(value)) {
object[value] = modifier(object[value], value);
}
}
return object;
},
inArray: function inArray(array, needle) {
var i;
for (i = 0; i < array.length; i++) {
if (array[i] === needle) {
return true;
}
}
return false;
},
flattenArray: function flattenArray(ar1, ar2) {
return [].concat.apply(ar1, ar2);
},
isNode: function isNode() {
return (typeof global !== 'undefined' && Object.prototype.toString.call(global.process) === '[object process]');
},
isFunction: function isFunction(string) {
var f = string.split(/\(([^\(]*)\)/);
if (f.length === 1) {
return false;
}
return f;
},
isProperty: function isProperty(string) {
return /^(on-[A-z0-9])\w*$/.test(string);
},
isStyle: function isStyle(string) {
return string === 'style';
},
isNumber: function isNumber(string) {
return /^((?=\.\d|\d)(?:\d+)?(?:\.?\d*)(?:[eE][+-]?\d+)?)$/.test(string.trim());
},
isString: function isString(string) {
return (Object.prototype.toString.call(string) === '[object String]');
},
isArray: function isArray(array) {
return (Object.prototype.toString.call(array) === '[object Array]');
},
isVar: function isVar(string) {
return !/['"].*?['"]/.test(string) && isNaN(parseInt(string));
},
getFirstLetter: function getFirstLetter(string) {
return string.charAt(0);
},
isUpperCase: function isUpperCase(firstLetter) {
return firstLetter === firstLetter.toUpperCase();
},
removeAllSpaces: function removeAllSpaces(string) {
return string.replace(/\s/g, "");
},
splitWs: function splitWs(string) {
var ws;
if (string !== undefined) {
ws = string.split('ws:');
return ws[1];
}
return undefined;
},
clone: function clone(src) {
function mixin(dest, source, copyFunc) {
var name, s, i, empty = {};
for (name in source) {
s = source[name];
if (!(name in dest) || (dest[name] !== s && (!(name in empty) || empty[name] !== s))) {
dest[name] = copyFunc ? copyFunc(s) : s;
}
}
return dest;
}
if (!src || typeof src != "object" || Object.prototype.toString.call(src) === "[object Function]") {
return src;
}
if (src.nodeType && "cloneNode" in src) {
return src.cloneNode(true);
}
if (src instanceof Date) {
return new Date(src.getTime());
}
if (src instanceof RegExp) {
return new RegExp(src);
}
var r, i, l;
if (src instanceof Array) {
r = [];
for (i = 0, l = src.length; i < l; ++i) {
if (i in src) {
r.push(clone(src[i]));
}
}
} else {
r = src.constructor ? new src.constructor() : {};
}
return mixin(r, src, clone);
},
plainMergeAttrs: function plainMergeAttrs(inner, attrs) {
for (var attr in attrs) {
if (attrs.hasOwnProperty(attr)) {
inner[attr] = attrs[attr];
}
}
return inner;
},
escape: function escape(entity) {
if (entity && entity.replace) {
var tagsToReplace = {
'&': '&',
'<': '<',
'>': '>'
};
return entity.replace(/[&<>]/g, function escapeReplace(tag) {
return tagsToReplace[tag] || tag;
});
}
return entity;
},
unescape: function unescape(safe) {
if (safe && safe.replace) {
return safe.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
}
return safe;
},
checkForKeys: function checkForKeys(entity) {
if (entity.type === 'tag') {
return entity.name !== 'ws:template';
}
return false;
}
};
return utils;
});