mirror of
https://github.com/goauthentik/authentik
synced 2026-04-27 18:07:15 +02:00
* 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>
77 lines
2.2 KiB
JavaScript
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;
|