docs: def yield_module_imports(root, checks=string_imports()):
      """
      Gather all require and define calls from unbundled JavaScript source
      files and yield all module names.  The imports can either be of the
      CommonJS or AMD syntax.
      """
  
      if not isinstance(root, asttypes.Node):
          raise TypeError('provided root must be a node')
  
      for child in yield_function(root, deep_filter):
          for f, condition in checks:
              if condition(child):
                  for name in f(child):
                      yield name
                  continue