code: def build(release):
      """
      Compile TypeScript modules and copy or symlink to nni_node directory.
  
      `release` is the version number without leading letter "v".
  
      If `release` is None or empty, this is a development build and uses symlinks on Linux/macOS;
      otherwise this is a release build and copies files instead.
      On Windows it always copies files because creating symlink requires extra privilege.
      """
      if release or not os.environ.get("GLOBAL_TOOLCHAIN"):
          download_toolchain()
      prepare_nni_node()
      # update_package()
      compile_ts(release)
      if release or sys.platform == "win32":
          copy_nni_node(release)
      else:
          symlink_nni_node()
  
imports: from io import BytesIO
  import json
  import os
  from pathlib import Path
  import platform
  import shutil
  import subprocess
  import sys
  import tarfile
  import traceback
  from zipfile import ZipFile
label_desc: Use image node_id 4 for calling a global function with example usage: build(release) without return types