A script to define and register extension objects must have a file
      extension of .js for JavaScript code, or
      .py for Python code, to match the language used
      for the script. The file extension is not case-sensitive.
    
      The preferred way to persist an extension object is by adding it
      into a MySQL Shell plugin. Plugins and plugin groups are loaded
      automatically when MySQL Shell starts, and the functions that
      they define and register are available immediately. In a
      MySQL Shell plugin, the file containing the initialization script
      must be named init.js or
      init.py as appropriate for the language. A
      plugin can only contain code in one language, so if you are
      creating an extension object with a mix of members defined in
      Python and members defined in JavaScript, you must store the
      members as separate language-appropriate plugins. For instructions
      to use MySQL Shell plugins, see
      Section 11.3, “MySQL Shell Plugins”.
    
      As an alternative, scripts containing extension objects can be
      stored directly in the init.d folder in the
      MySQL Shell user configuration path. When MySQL Shell starts,
      all files found in the init.d folder with a
      .js or .py file
      extension are processed automatically and the functions that they
      register are made available. (In this location, the file name does
      not matter to MySQL Shell.) The default MySQL Shell user
      configuration path is ~/.mysqlsh/ on Unix and
      %AppData%\MySQL\mysqlsh\ on Windows. The user
      configuration path can be overridden on all platforms by defining
      the environment variable
      MYSQLSH_USER_CONFIG_HOME.