'use strict'

const moduleList = require('@electron/internal/sandboxed_renderer/api/module-list')

const handleESModule = (m) => {
  // Handle Typescript modules with an "export default X" statement
  if (m.__esModule && m.default) return m.default
  return m
}

for (const {
  name,
  load,
  enabled = true,
  private: isPrivate = false
} of moduleList) {
  if (!enabled) {
    continue
  }

  Object.defineProperty(exports, name, {
    enumerable: !isPrivate,
    get: () => handleESModule(load())
  })
}
