2026-03-20 23:46:17 +01:00
|
|
|
const esbuild = require("esbuild");
|
2026-05-24 17:41:13 +02:00
|
|
|
const fs = require("fs");
|
2026-03-20 23:46:17 +01:00
|
|
|
const path = require("path");
|
2026-03-07 09:04:22 +01:00
|
|
|
|
2026-05-24 17:41:13 +02:00
|
|
|
const headlessSyncDir = path.join(
|
|
|
|
|
__dirname,
|
|
|
|
|
"apps",
|
|
|
|
|
"ignis-server",
|
|
|
|
|
"server",
|
|
|
|
|
"plugins",
|
|
|
|
|
"headless-sync",
|
|
|
|
|
"obsidian",
|
|
|
|
|
);
|
|
|
|
|
|
2026-05-26 02:55:24 +02:00
|
|
|
// Compute version info once and share across per-package builds.
|
|
|
|
|
const { version: semver } = require("./package.json");
|
|
|
|
|
const build = process.env.IGNIS_BUILD || Date.now().toString(36).slice(-7);
|
|
|
|
|
const version = `${semver}+${build}`;
|
|
|
|
|
|
|
|
|
|
const buildInfoPath = path.join(
|
|
|
|
|
__dirname,
|
|
|
|
|
"apps",
|
|
|
|
|
"ignis-server",
|
|
|
|
|
"server",
|
|
|
|
|
"build-info.json",
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
fs.writeFileSync(
|
|
|
|
|
buildInfoPath,
|
|
|
|
|
JSON.stringify({ semver, build, version }, null, 2),
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// Used by packages.
|
|
|
|
|
process.env.IGNIS_BUILD_RESOLVED = build;
|
|
|
|
|
|
2026-03-20 23:46:17 +01:00
|
|
|
Promise.all([
|
2026-05-20 20:49:28 +02:00
|
|
|
// Build shim-loader.js (delegated to packages/shim)
|
|
|
|
|
require("./packages/shim/build.js"),
|
2026-03-20 23:46:17 +01:00
|
|
|
|
2026-05-20 17:05:29 +02:00
|
|
|
// Build ignis-ui.js (delegated to packages/ui)
|
|
|
|
|
require("./packages/ui/build.js"),
|
2026-03-27 19:53:19 +01:00
|
|
|
|
2026-03-29 00:26:41 +01:00
|
|
|
// Build headless-sync bundled plugin
|
2026-05-24 17:41:13 +02:00
|
|
|
esbuild
|
|
|
|
|
.build({
|
|
|
|
|
entryPoints: [path.join(headlessSyncDir, "src", "main.js")],
|
|
|
|
|
bundle: true,
|
|
|
|
|
outfile: path.join(headlessSyncDir, "dist", "ignis-headless-sync.js"),
|
|
|
|
|
format: "cjs",
|
|
|
|
|
platform: "browser",
|
|
|
|
|
target: ["chrome90"],
|
|
|
|
|
external: ["obsidian", "fs"],
|
|
|
|
|
logLevel: "info",
|
|
|
|
|
})
|
|
|
|
|
.then(() => {
|
|
|
|
|
fs.copyFileSync(
|
|
|
|
|
path.join(headlessSyncDir, "styles.css"),
|
|
|
|
|
path.join(headlessSyncDir, "dist", "ignis-headless-sync.css"),
|
|
|
|
|
);
|
|
|
|
|
}),
|
2026-03-20 23:46:17 +01:00
|
|
|
]).catch(() => process.exit(1));
|