-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathutils.js
80 lines (78 loc) · 2.6 KB
/
utils.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
/*
* 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;
}
};