import { join } from "path"
import { RollupOptions } from "rollup"
import { builtins } from "./utils"

const commonjs = require("@rollup/plugin-commonjs")
const json = require("@rollup/plugin-json")
const typescript = require("@rollup/plugin-typescript")
const alias = require("@rollup/plugin-alias")
const {nodeResolve} = require("@rollup/plugin-node-resolve")

export default (env = "production") => {
  console.log(env);

  const options: RollupOptions = {
    input: join(__dirname, "../src/main/index.ts"),
    output: {
      file: join(__dirname, "../dist/electron/entry.js"),
      format: "cjs",
      name: "ElectronMainBundle",
      sourcemap: true,
    },
    plugins: [
      nodeResolve(),
      commonjs(),
      json(),
      typescript(),
      alias({
        entries: [
          { find: "@", replacement: join(__dirname, "../src/render") },
          { find: "@render", replacement: join(__dirname, "../src/render") },
          { find: "@main", replacement: join(__dirname, "../src/main") },
          { find: "@src", replacement: join(__dirname, "../src") },
          { find: "@root", replacement: join(__dirname, "..") },
        ],
      }),
    ],
    external: [...builtins(), "electron"],
  }

  return options
}