/* * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ var apiGateway = apiGateway || {}; apiGateway.core = apiGateway.core || {}; apiGateway.core.utils = { assertDefined: function (object, name) { if (object === undefined) { throw name + ' must be defined'; } else { return object; } }, assertParametersDefined: function (params, keys, ignore) { if (keys === undefined) { return; } if (keys.length > 0 && params === undefined) { params = {}; } for (var i = 0; i < keys.length; i++) { if(!apiGateway.core.utils.contains(ignore, keys[i])) { apiGateway.core.utils.assertDefined(params[keys[i]], keys[i]); } } }, parseParametersToObject: function (params, keys) { if (params === undefined) { return {}; } var object = { }; for (var i = 0; i < keys.length; i++) { object[keys[i]] = params[keys[i]]; } return object; }, contains: function(a, obj) { if(a === undefined) { return false;} var i = a.length; while (i--) { if (a[i] === obj) { return true; } } return false; }, copy: function (obj) { if (null == obj || "object" != typeof obj) return obj; var copy = obj.constructor(); for (var attr in obj) { if (obj.hasOwnProperty(attr)) copy[attr] = obj[attr]; } return copy; }, mergeInto: function (baseObj, additionalProps) { if (null == baseObj || "object" != typeof baseObj) return baseObj; var merged = baseObj.constructor(); for (var attr in baseObj) { if (baseObj.hasOwnProperty(attr)) merged[attr] = baseObj[attr]; } if (null == additionalProps || "object" != typeof additionalProps) return baseObj; for (attr in additionalProps) { if (additionalProps.hasOwnProperty(attr)) merged[attr] = additionalProps[attr]; } return merged; } };