text: import commonjs from '@rollup/plugin-commonjs'
  import dotenv from 'dotenv'
  import json from '@rollup/plugin-json'
  import livereload from 'rollup-plugin-livereload'
  import replace from 'rollup-plugin-replace'
  import { replacer } from './config.replacer'
  import resolve from '@rollup/plugin-node-resolve'
  import svelte from 'rollup-plugin-svelte'
  import sveltePreprocess from 'svelte-preprocess'
  import { terser } from 'rollup-plugin-terser'
  import typescript from '@rollup/plugin-typescript'
  
  const dotEnvConfig = { path: `.env${process.env.NODE_ENV ? '' : '.local'}` }
  dotenv.config(dotEnvConfig)
  console.info(`fetching data from ${dotEnvConfig.path}`)
  
  const production = !process.env.ROLLUP_WATCH
  
  function serve() {
  	let server
  
  	function toExit() {
  		if (server) server.kill(0)
  	}
  
  	return {
  		writeBundle() {
  			if (server) return
  			server = require('child_process').spawn('npm', ['run', 'start', '--', '--dev'], {
  				stdio: ['ignore', 'inherit', 'inherit'],
  				shell: true,
  			})
  
  			process.on('SIGTERM', toExit)
  			process.on('exit', toExit)
  		},
  	}
  }
  
  export default {
  	input: 'src/main.ts',
  	output: {
  		sourcemap: true,
  		format: 'iife',
  		name: 'app',
  		file: 'public/build/bundle.js',
  	},
  	plugins: [
  		replace(replacer()),
  		svelte({
  			// enable run-time checks when not in production
  			dev: !production,
  			// we'll extract any component CSS out into
  			// a separate file - better for performance
  			css: css => {
  				css.write('bundle.css')
  			},
  			preprocess: sveltePreprocess(),
  		}),
  
  		// 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(),
  		typescript({ sourceMap: true }),
  
  		// In dev mode, call `npm run start` once
  		// the bundle has been generated
  		!production && serve(),
  
  		// Watch the `public` directory and refresh the
  		// browser on changes when not in production
  		!production && livereload('public'),
  
  		// If we're building for production (npm run build
  		// instead of npm run dev), minify
  		production && terser(),
  
  		json(),
  	],
  	watch: {
  		clearScreen: false,
  	},
  }
  