function handleKeysHelper()

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;
}