in src/utils/getFlowType.ts [60:88]
function handleKeysHelper(
path: NodePath,
importer: Importer,
): ElementsType | null {
let value = path.get('typeParameters', 'params', 0);
if (t.TypeofTypeAnnotation.check(value.node)) {
value = value.get('argument', 'id');
} else if (!t.ObjectTypeAnnotation.check(value.node)) {
value = value.get('id');
}
const resolvedPath = resolveToValue(value, importer);
if (
resolvedPath &&
(t.ObjectExpression.check(resolvedPath.node) ||
t.ObjectTypeAnnotation.check(resolvedPath.node))
) {
const keys = resolveObjectToNameArray(resolvedPath, importer, true);
if (keys) {
return {
name: 'union',
raw: printValue(path),
elements: keys.map(key => ({ name: 'literal', value: key })),
};
}
}
return null;
}