deno.land / x / mongoose@6.7.5 / lib / helpers / get.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
'use strict';
/** * Simplified lodash.get to work around the annoying null quirk. See: * https://github.com/lodash/lodash/issues/3659 * @api private */
module.exports = function get(obj, path, def) { let parts; let isPathArray = false; if (typeof path === 'string') { if (path.indexOf('.') === -1) { const _v = getProperty(obj, path); if (_v == null) { return def; } return _v; }
parts = path.split('.'); } else { isPathArray = true; parts = path;
if (parts.length === 1) { const _v = getProperty(obj, parts[0]); if (_v == null) { return def; } return _v; } } let rest = path; let cur = obj; for (const part of parts) { if (cur == null) { return def; }
// `lib/cast.js` depends on being able to get dotted paths in updates, // like `{ $set: { 'a.b': 42 } }` if (!isPathArray && cur[rest] != null) { return cur[rest]; }
cur = getProperty(cur, part);
if (!isPathArray) { rest = rest.substr(part.length + 1); } }
return cur == null ? def : cur;};
function getProperty(obj, prop) { if (obj == null) { return obj; } if (obj instanceof Map) { return obj.get(prop); } return obj[prop];}
mongoose

Version Info

Tagged at
a year ago