| 900 | |
| 901 | let paths: Array<string> = []; |
| 902 | let resolve = ( |
| 903 | value: any, |
| 904 | prefixPaths: Array<string> = [] |
| 905 | ): boolean => { |
| 906 | if ( |
| 907 | Array.isArray(value) && |
| 908 | value.some((value, index) => |
| 909 | resolve(value, prefixPaths.concat(`${index}`)) |
| 910 | ) |
| 911 | ) { |
| 912 | return true; |
| 913 | } else if (isPlainObject(value)) { |
| 914 | return Object.keys(value).some(key => { |
| 915 | return resolve(value[key], prefixPaths.concat(key)); |
| 916 | }); |
| 917 | } else if (value === '$$') { |
| 918 | paths = prefixPaths.concat(); |
| 919 | return true; |
| 920 | } |
| 921 | |
| 922 | return false; |
| 923 | }; |
| 924 | |
| 925 | resolve(slot); |
| 926 | |