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

import { copy } from '@guanghechen/rollup-plugin-copy';
import styles from 'rollup-plugin-styles';
import { swc } from 'rollup-plugin-swc3';

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

const staticFiles = [
  '.reuse',
  'lang',
  'LICENSE.md',
  'LICENSES',
  'README.md',
  'module.json.license',
  'module.json',
  'templates',
];
const isProduction = process.env.NODE_ENV === 'production';

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

export default config;