import { generatePluginConfiguration } from "@kosdev-code/kos-ui-plugin/utilities";
import {
  composePlugins,
  withKosConfig,
  withModuleFederation,
  withNx,
  withPluginDevServer,
  withReact,
} from "@kosdev-code/kos-ui-plugin/webpack";
import { readFileSync } from "fs";
import { join } from "path";
import * as webpack from "webpack";

const kosConfig = JSON.parse(
  readFileSync(join(__dirname, "./.kos.json"), "utf-8")
);
const ddkVersion = process.env.KOS_DDK_VERSION;
const sdkVersion = process.env.KOS_SDK_VERSION;
const baseConfig = generatePluginConfiguration(kosConfig, {
  ddkVersion,
  sdkVersion,
});
const config = {
  ...baseConfig,
};

export default composePlugins(
  withNx(),
  withReact({}),
  withModuleFederation(config),
  withKosConfig(webpack),
  withPluginDevServer({
    verbose: process.env.VERBOSE_PLUGIN_DEV === 'true'
  })
);
