// SPDX-FileCopyrightText: 2021 Johannes Loher // // SPDX-License-Identifier: MIT import copy from "@guanghechen/rollup-plugin-copy"; import typescript from "rollup-plugin-typescript2"; import sourcemaps from "rollup-plugin-sourcemaps"; import styles from "rollup-plugin-styles"; import { terser } from "rollup-plugin-terser"; import { distDirectory, name, sourceDirectory } from "./tools/const.js"; import { convertJSONToPack } from "./tools/json-pack-tools.js"; const staticFiles = ["template.json", "system.json", "assets", "fonts", "lang", "templates"]; const isProduction = process.env.NODE_ENV === "production"; /** * @type {import('rollup').RollupOptions} */ const config = { input: { [`module/${name}`]: `${sourceDirectory}/module/${name}.ts` }, output: { dir: distDirectory, format: "es", sourcemap: true, assetFileNames: "[name].[ext]", }, plugins: [ sourcemaps(), typescript(), styles({ mode: ["extract", `css/${name}.css`], url: false, sourceMap: true, minimize: isProduction, }), copy({ targets: [ { src: staticFiles.map((file) => `${sourceDirectory}/${file}`), dest: distDirectory }, { src: [`${sourceDirectory}/packs/*.json`], dest: `${distDirectory}/packs`, rename: (name) => `${name}.db`, transform: convertJSONToPack, }, ], }), isProduction && terser({ ecma: 2020, keep_fnames: true }), ], }; export default config;