/* eslint-env node */ const { default: commonjs } = require('@rollup/plugin-commonjs') const { default: html, makeHtmlAttributes } = require('@rollup/plugin-html') const { default: json } = require('@rollup/plugin-json') const { default: nodeResolve } = require('@rollup/plugin-node-resolve') const { default: swc } = require('@rollup/plugin-swc') const { defineConfig } = require('rollup') const { bundleManifest, } = require('@atproto-labs/rollup-plugin-bundle-manifest') const postcss = ((m) => m.default || m)(require('rollup-plugin-postcss')) const serve = ((m) => m.default || m)(require('rollup-plugin-serve')) module.exports = defineConfig((commandLineArguments) => { const NODE_ENV = process.env['NODE_ENV'] ?? (commandLineArguments.watch ? 'development' : 'production') const devMode = NODE_ENV === 'development' return { input: 'src/main.tsx', output: { manualChunks: undefined, sourcemap: true, file: 'dist/main.js', format: 'iife', }, plugins: [ { name: 'resolve-swc-helpers', resolveId(src) { // For some reason, "nodeResolve" doesn't resolve these: if (src.startsWith('@swc/helpers/')) return require.resolve(src) }, }, nodeResolve({ preferBuiltins: false, browser: true }), commonjs(), json(), postcss({ config: true, extract: true, minimize: false }), swc({ swc: { swcrc: false, configFile: false, sourceMaps: true, minify: !devMode, jsc: { minify: { compress: { module: true, unused: true, }, mangle: true, }, externalHelpers: true, target: 'es2020', parser: { syntax: 'typescript', tsx: true }, transform: { useDefineForClassFields: true, react: { runtime: 'automatic' }, optimizer: { simplify: true, globals: { vars: { 'process.env.NODE_ENV': JSON.stringify(NODE_ENV) }, }, }, }, }, }, }), html({ title: 'OAuth Client Example', template: ({ attributes, files, meta, publicPath, title }) => `
${meta .map((attrs) => ``) .join('\n')}