deno.land / x / mongoose@6.7.5 / lib / helpers / query / castFilterPath.js

castFilterPath.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
'use strict';
const isOperator = require('./isOperator');
module.exports = function castFilterPath(query, schematype, val) { const ctx = query; const any$conditionals = Object.keys(val).some(isOperator);
if (!any$conditionals) { return schematype.castForQueryWrapper({ val: val, context: ctx }); }
const ks = Object.keys(val);
let k = ks.length;
while (k--) { const $cond = ks[k]; const nested = val[$cond];
if ($cond === '$not') { if (nested && schematype && !schematype.caster) { const _keys = Object.keys(nested); if (_keys.length && isOperator(_keys[0])) { for (const key of Object.keys(nested)) { nested[key] = schematype.castForQueryWrapper({ $conditional: key, val: nested[key], context: ctx }); } } else { val[$cond] = schematype.castForQueryWrapper({ $conditional: $cond, val: nested, context: ctx }); } continue; } } else { val[$cond] = schematype.castForQueryWrapper({ $conditional: $cond, val: nested, context: ctx }); } }
return val;};
mongoose

Version Info

Tagged at
a year ago