fix: handle multipart candidates
This commit is contained in:
parent
3628abde5c
commit
0ecbf8a75b
|
@ -57,9 +57,13 @@ export const invertedDigraph = memoize(() => {
|
|||
|
||||
export const candidates = (description, type) => {
|
||||
const inverted = invertedDigraph();
|
||||
const typeParts = type.split('|');
|
||||
if (typeParts.length > 1) {
|
||||
return typeParts.reduce((r, typePart) => r.concat(candidates(description, typePart)), []);
|
||||
}
|
||||
const types = (inverted[type] || []).concat(type);
|
||||
const {children} = description;
|
||||
return 'any' === type
|
||||
const c = 'any' === type
|
||||
? Object.keys(children)
|
||||
: Object.entries(children)
|
||||
.reduce((r, [key, {type}]) => (
|
||||
|
@ -69,6 +73,7 @@ export const candidates = (description, type) => {
|
|||
: []
|
||||
)
|
||||
), []);
|
||||
return c;
|
||||
};
|
||||
|
||||
export function description(type, instance) {
|
||||
|
|
Loading…
Reference in New Issue
Block a user