Convert the bundled backend/internal/plugins/smartblock package into a standalone reactor-mode wasm plugin: - package smartblock -> package main; add wasip1 main.go with wasmguest.Serve(Registration). - Add go.mod (module git.dev.alexdunmow.com/block/smartblock) pinning block/core v0.18.2; no replace directives. - Flesh out plugin.mod (scope=ninja, kind=plugin, categories, tags, display_name, description). - Point web/eslint.config.js at ../../../cms/web/eslint.config.js and switch @block-ninja/ui from workspace:* to the ^0.1.0 registry version; rebuild web/dist. - Add .gitignore (*.bnp, *.wasm, web/node_modules). Behavior unchanged: registers the "smart" block; assets served from web/dist. Builds to smartblock-1.0.0.bnp; check-safety passes. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
27 lines
571 B
TypeScript
27 lines
571 B
TypeScript
import federation from "@originjs/vite-plugin-federation";
|
|
import react from "@vitejs/plugin-react";
|
|
import { defineConfig } from "vite";
|
|
|
|
export default defineConfig({
|
|
plugins: [
|
|
react(),
|
|
federation({
|
|
name: "smartblock",
|
|
filename: "remoteEntry.js",
|
|
// Expose the editor component
|
|
exposes: {
|
|
"./editor": "./editor.tsx",
|
|
},
|
|
// Use shared dependencies from host
|
|
shared: ["react", "react-dom", "@block-ninja/ui"],
|
|
}),
|
|
],
|
|
build: {
|
|
modulePreload: false,
|
|
target: "esnext",
|
|
minify: false,
|
|
cssCodeSplit: false,
|
|
outDir: "dist",
|
|
},
|
|
});
|