import svelte from 'rollup-plugin-svelte';
import replace from "@rollup/plugin-replace";
import commonjs from '@rollup/plugin-commonjs';
import resolve from '@rollup/plugin-node-resolve';
import { terser } from 'rollup-plugin-terser';
import css from 'rollup-plugin-css-only';

// const production = !process.env.ROLLUP_WATCH;
const production = true

const plugins = [
	svelte({
		compilerOptions: {
			// enable run-time checks when not in production
			dev: !production
		}
	}),

	// If you have external dependencies installed from
	// npm, you'll most likely need these plugins. In
	// some cases you'll need additional configuration -
	// consult the documentation for details:
	// https://github.com/rollup/plugins/tree/master/packages/commonjs
	resolve({
		browser: true,
		dedupe: ['svelte']
	}),
	commonjs(),

	// If we're building for production (npm run build
	// instead of npm run dev), minify
	production && terser(),

	replace({
		"process.env.NODE_ENV": JSON.stringify("development"),
		preventAssignment: true
	})
];

const entrypoint = (name, path) => ({
	input: path,
	output: {
		sourcemap: false,
		format: 'iife',
		name: 'app',
		file: `public/build/${name}.js`
	},
	plugins: [
		...plugins,

		// we'll extract any component CSS out into
		// a separate file - better for performance
		css({ output: `${name}.css` }),
	],
	watch: {
		clearScreen: false
	}
});

export default [
	entrypoint('header',   'src/header.entrypoint.js'),
	entrypoint('jobs',     'src/jobs.entrypoint.js'),
	entrypoint('user',     'src/user.entrypoint.js'),
	entrypoint('list',     'src/list.entrypoint.js'),
	entrypoint('job',      'src/job.entrypoint.js'),
	entrypoint('systems',  'src/systems.entrypoint.js'),
	entrypoint('node',     'src/node.entrypoint.js'),
	entrypoint('analysis', 'src/analysis.entrypoint.js'),
	entrypoint('status',   'src/status.entrypoint.js'),
	entrypoint('config',   'src/config.entrypoint.js')
];