// SPDX-FileCopyrightText: 2021 Johannes Loher
//
// SPDX-License-Identifier: MIT

import styles from "@ironkinoko/rollup-plugin-styles";
import { swc } from "rollup-plugin-swc3";

import { copy } from "@guanghechen/rollup-plugin-copy";

import { distDirectory, name, sourceDirectory } from "./tools/const.js";

const staticFiles = [
  ".reuse",
  "assets",
  "ATTRIBUTION.md",
  "fonts",
  "lang",
  "LICENSE.md",
  "LICENSES",
  "README.md",
  "system.json.license",
  "system.json",
  "template.json.license",
  "template.json",
  "templates",
];
const isProduction = process.env.NODE_ENV === "production";

/**
 * @type {import('rollup').RollupOptions}
 */
const config = {
  input: { [name]: `${sourceDirectory}/${name}.ts` },
  output: {
    dir: distDirectory,
    format: "es",
    sourcemap: true,
    assetFileNames: "[name].[ext]",
  },
  plugins: [
    swc({
      jsc: {
        minify: isProduction && {
          sourceMap: true,
          mangle: {
            keepClassNames: true,
            keepFnNames: true,
          },
        },
      },
      sourceMaps: true,
    }),
    styles({
      mode: ["extract", `css/${name}.css`],
      url: false,
      sourceMap: true,
      minimize: isProduction,
    }),
    copy({ targets: [{ src: staticFiles, dest: distDirectory }] }),
  ],
};

export default config;
