code: def make_namespace_exports(components, prefix):
      export_string = ""
      for component in components:
          if (
              not component.endswith("-*")
              and str(component) not in r_keywords
              and str(component) not in ["setProps", "children"]
          ):
              export_string += "export({}{})\n".format(
                  prefix, component
              )
  
      # the following lines enable rudimentary support for bundling in
      # R functions that are not automatically generated by the transpiler
      # such that functions contained in the R subdirectory are exported,
      # so long as they are not in utils.R.
      rfilelist = []
      omitlist = ["utils.R", "internal.R"] + [
          "{}{}.R".format(prefix, component) for component in components
      ]
      fnlist = []
  
      for script in os.listdir("R"):
          if script.endswith(".R") and script not in omitlist:
              rfilelist += [os.path.join("R", script)]
  
      for rfile in rfilelist:
          with open(rfile, "r", encoding="utf-8") as script:
              s = script.read()
  
              # remove comments
              s = re.sub("#.*$", "", s, flags=re.M)
  
              # put the whole file on one line
              s = s.replace("\n", " ").replace("\r", " ")
  
              # empty out strings, in case of unmatched block terminators
              s = re.sub(r"'([^'\\]|\\'|\\[^'])*'", "''", s)
              s = re.sub(r'"([^"\\]|\\"|\\[^"])*"', '""', s)
  
              # empty out block terminators () and {}
              # so we don't catch nested functions, or functions as arguments
              # repeat until it stops changing, in case of multiply nested blocks
              prev_len = len(s) + 1
              while len(s) < prev_len:
                  prev_len = len(s)
                  s = re.sub(r"\(([^()]|\(\))*\)", "()", s)
                  s = re.sub(r"\{([^{}]|\{\})*\}", "{}", s)
  
              # now, in whatever is left, look for functions
              matches = re.findall(
                  # in R, either = or <- may be used to create and assign objects
                  r"([^A-Za-z0-9._]|^)([A-Za-z0-9._]+)\s*(=|<-)\s*function",
                  s,
              )
              for match in matches:
                  fn = match[1]
                  # Allow users to mark functions as private by prefixing with .
                  if fn[0] != "." and fn not in fnlist:
                      fnlist.append(fn)
  
      export_string += "\n".join(
          "export({})".format(function) for function in fnlist
      )
      return export_string
  
imports: import os
  import sys
  import shutil
  import importlib
  import textwrap
  import re
  import warnings
  from ._all_keywords import r_keywords
  from ._py_components_generation import reorder_props
label_desc: Use image node_id 12 for calling a global function with example usage: make_namespace_exports(components, prefix) and returns: export_string