import resolve from '@rollup/plugin-node-resolve';
import terser from '@rollup/plugin-terser';

const production = !process.env.ROLLUP_WATCH;

// Custom plugin to exclude dev-tool.js from production builds
const excludeDevTool = {
  name: 'exclude-dev-tool',
  load(id) {
    if (production && id.endsWith('dev-tool.js')) {
      return '';
    }
    return null;
  },
};

export default {
  input: 'bookmarks/frontend/index.js',
  output: {
    sourcemap: true,
    format: 'iife',
    name: 'linkding',
    // Generate bundle in static folder to that it is picked up by Django static files finder
    file: 'bookmarks/static/bundle.js',
  },
  plugins: [
    excludeDevTool,
    // 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/rollup-plugin-commonjs
    resolve({
      browser: true,
    }),

    // If we're building for production (npm run build
    // instead of npm run dev), minify
    production && terser(),
  ],
  watch: {
    clearScreen: false,
  },
};
