Files
authentik/web/packages/sfe/rollup.config.mjs
Teffen Ellis bbac72f2d0 web: Vendor SFE Bootstrap (#19766)
* web: Vendor SFE Bootstrap

* codespell

Signed-off-by: Jens Langhammer <jens@goauthentik.io>

---------

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
Co-authored-by: Jens Langhammer <jens@goauthentik.io>
2026-01-27 16:20:21 +01:00

77 lines
2.2 KiB
JavaScript

/**
* @file Rollup configuration for the SFE package.
* @import { Plugin, RollupOptions } from "rollup";
*/
import * as fs from "node:fs/promises";
import { join } from "node:path";
import commonjs from "@rollup/plugin-commonjs";
import resolve from "@rollup/plugin-node-resolve";
import swc from "@rollup/plugin-swc";
export async function createConfig() {
// Rollup's CJS to ESM conversion doesn't work well with sub-dependencies.
// We use an async import to fix the issue.
const { resolvePackage, MonoRepoRoot } = await import("@goauthentik/core/paths/node");
const distDirectory = join(MonoRepoRoot, "web", "dist", "sfe");
const packageDirectory = resolvePackage("@goauthentik/web-sfe", import.meta);
/**
* @type {Plugin} A plugin to copy static assets.
*/
const copyPlugin = {
name: "copy-static-assets",
buildEnd: async () => {
console.log("Copying static assets...");
const bootstrapCSSFilePath = join(packageDirectory, "vendored", "bootstrap");
await fs.mkdir(distDirectory, { recursive: true });
await fs.cp(bootstrapCSSFilePath, distDirectory, { recursive: true });
},
};
/**
* @type {RollupOptions}
*/
const config = {
input: "src/index.ts",
output: {
dir: distDirectory,
format: "cjs",
},
context: "window",
plugins: [
copyPlugin,
resolve({ browser: true }),
commonjs(),
swc({
swc: {
jsc: {
loose: false,
externalHelpers: false,
// Requires v1.2.50 or upper and requires target to be es2016 or upper.
keepClassNames: false,
},
minify: false,
env: {
targets: {
edge: "17",
ie: "11",
},
mode: "entry",
},
},
}),
],
};
return config;
}
console.log("Preparing SFE package...");
export default createConfig;