rocketbase-io/rollup-plugin-exec

View on GitHub
build/rollup.config.js

Summary

Maintainability
A
0 mins
Test Coverage
import sourcemaps from "rollup-plugin-sourcemaps";
import commonjs from "rollup-plugin-commonjs";
import ts from "@wessberg/rollup-plugin-ts";
import paths from "rollup-plugin-ts-paths";
import apiExtractor from "./rollup-plugin-api-extractor";
import execute from "./rollup-plugin-execute";
import sequential from "./rollup-plugin-sequential";
import { name, globals, external } from "./package";
import banner from "./banner";

// eslint-disable-next-line @typescript-eslint/camelcase
globals.child_process = "child_process";
external.push("child_process");

export default {
  input: "src/main.ts",
  output: ["umd", "iife", "esm", "cjs"].map(format => ({
    file: `dist/${name}${format === "umd" ? "" : `.${format}`}.js`,
    exports: "named",
    sourceMap: true,
    format,
    globals,
    name,
    banner
  })),
  external,
  plugins: [
    paths(),
    ts({ tsconfig: "tsconfig.build.json" }),
    sourcemaps(),
    commonjs(),
    sequential(
      [
        apiExtractor({
          config: "build/api-extractor.json",
          override: { name },
          cleanup: false
        }),
        execute(
          [
            "api-documenter markdown --output-folder docs --input-folder dist",
            "rimraf temp api-extractor.json dist/*.*.d.ts"
          ],
          { stdio: "ignore" }
        )
      ],
      { once: true }
    )
  ]
};