node-heremaps
Version:
Here maps API wrapper for Node.js
59 lines (43 loc) • 1.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; };
exports.default = function (params, newParams, acceptedKeys) {
params = _initObjParams(params);
newParams = _initObjParams(newParams);
if (!_checkTypes2.default.object(acceptedKeys)) {
throw new TypeError('accepted keys must be an object');
}
for (var key in acceptedKeys) {
if ({}.hasOwnProperty.call(acceptedKeys, key)) {
var expectedType = acceptedKeys[key];
var newValue = newParams[key];
if (_validType(expectedType, newValue)) {
params[key] = newValue;
}
}
}
return params;
};
var _checkTypes = require('check-types');
var _checkTypes2 = _interopRequireDefault(_checkTypes);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _initObjParams(params) {
if (!_checkTypes2.default.object(params)) {
return {};
}
return params;
}
function _validType(expectedType, param) {
if (param === null) {
return false;
}
if (expectedType === 'date') {
return _checkTypes2.default.date(param);
}
if (expectedType === 'array') {
return Array.isArray(param);
}
return (typeof param === 'undefined' ? 'undefined' : _typeof(param)) === expectedType;
}