import { resolve as pathResolve } from "path";
const __dirname = import.meta.dirname;

export default (env, argv) => {
	const config = {
		entry: argv.mode == "production" ? {
			"dropdown-list-element.dist.min": ["./src/index.ts"]
		} : {
			"dropdown-list-element.dist": ["./src/index.ts"]
		},
		devtool: argv.mode == "production" ? undefined : false,
		module: {
			rules: [
				{
					test: /\.tsx?$/,
					use: "ts-loader",
					exclude: /node_modules/,
				}
			],
		},
		output: {
			filename: "[name].js",
			path: pathResolve(__dirname, "dist"),
		},
		resolve: {
			extensions: [".tsx", ".ts", ".js"],
			// I hate that TSC's decision to not support module import rewriting has knockoff effects like this
			extensionAlias: {
				'.js': ['.js', '.ts'],
			}
		},
		plugins: [],
		optimization: argv.mode == "production" ? undefined : {
			providedExports: true,
			usedExports: true,
			concatenateModules: true,
			flagIncludedChunks: true,
			removeAvailableModules: true,
			innerGraph: true,
			sideEffects: true,
			removeEmptyChunks: true
		},
		mode: argv.mode,
		stats: "detailed"// argv.mode == "production" ? "normal" : "detailed"
	};
	console.log("config.mode:", config.mode);
	return config;
};