refactor(plugins): declare static runtime assets in package metadata

This commit is contained in:
Vincent Koc
2026-05-02 23:29:22 -07:00
parent 188c3b74ba
commit c7bbb3f9af
7 changed files with 136 additions and 33 deletions

View File

@@ -1,6 +1,7 @@
import fs from "node:fs/promises";
import path from "node:path";
import { describe, expect, it, vi } from "vitest";
import { discoverStaticExtensionAssets } from "../../scripts/lib/static-extension-assets.mjs";
import {
copyStaticExtensionAssets,
listStaticExtensionAssetOutputs,
@@ -23,6 +24,37 @@ describe("runtime postbuild static assets", () => {
);
});
it("discovers static assets from plugin package metadata", async () => {
const rootDir = createTempDir("openclaw-runtime-postbuild-");
const packageDir = path.join(rootDir, "extensions", "demo");
await fs.mkdir(packageDir, { recursive: true });
await fs.writeFile(
path.join(packageDir, "package.json"),
JSON.stringify({
name: "@openclaw/demo",
openclaw: {
build: {
staticAssets: [
{
source: "./assets/runtime.js",
output: "assets/runtime.js",
},
],
},
},
}),
"utf8",
);
expect(discoverStaticExtensionAssets({ rootDir })).toEqual([
{
pluginDir: "demo",
src: "extensions/demo/assets/runtime.js",
dest: "dist/extensions/demo/assets/runtime.js",
},
]);
});
it("copies declared static assets into dist", async () => {
const rootDir = createTempDir("openclaw-runtime-postbuild-");
const src = "extensions/acpx/src/runtime-internals/mcp-proxy.mjs";