UNPKG

uritemplate

Version:

An UriTemplate implementation of rfc 6570

96 lines (85 loc) 2.54 kB
/*jshint unused: false */ var objectHelper = (function () { "use strict"; function isArray (value) { return Object.prototype.toString.apply(value) === '[object Array]'; } function isString (value) { return Object.prototype.toString.apply(value) === '[object String]'; } function isNumber (value) { return Object.prototype.toString.apply(value) === '[object Number]'; } function isBoolean (value) { return Object.prototype.toString.apply(value) === '[object Boolean]'; } function join (arr, separator) { var result = '', first = true, index; for (index = 0; index < arr.length; index += 1) { if (first) { first = false; } else { result += separator; } result += arr[index]; } return result; } function map (arr, mapper) { var result = [], index = 0; for (; index < arr.length; index += 1) { result.push(mapper(arr[index])); } return result; } function filter (arr, predicate) { var result = [], index = 0; for (; index < arr.length; index += 1) { if (predicate(arr[index])) { result.push(arr[index]); } } return result; } function deepFreezeUsingObjectFreeze (object) { if (typeof object !== "object" || object === null) { return object; } Object.freeze(object); var property, propertyName; for (propertyName in object) { if (object.hasOwnProperty(propertyName)) { property = object[propertyName]; // be aware, arrays are 'object', too if (typeof property === "object") { deepFreeze(property); } } } return object; } function deepFreeze (object) { if (typeof Object.freeze === 'function') { return deepFreezeUsingObjectFreeze(object); } return object; } return { isArray: isArray, isString: isString, isNumber: isNumber, isBoolean: isBoolean, join: join, map: map, filter: filter, deepFreeze: deepFreeze }; }());