bundle.js
const esbuild = require("esbuild");
const fs = require("fs");
const path = require("path");
async function bundle() {
const outDir = path.join(__dirname, ".lmstudio");
if (!fs.existsSync(outDir)) {
fs.mkdirSync(outDir);
}
await esbuild.build({
entryPoints: ["src/index.ts"],
bundle: true,
platform: "node",
target: "node18",
outfile: ".lmstudio/production.js",
external: ["@lmstudio/sdk"],
format: "cjs",
minify: false,
});
// Write install-state.json
const installState = {
by: "node-plugin-installer-v1",
at: Date.now(),
};
fs.writeFileSync(
path.join(__dirname, "install-state.json"),
JSON.stringify(installState)
);
console.log("Bundle complete. .lmstudio/production.js written.");
}
bundle().catch((e) => {
console.error(e);
process.exit(1);
});