@zuplo/editor 0.1.0 → 1.0.18282379434-dev
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/favicon-local.ico +0 -0
- package/dist/client/geist/Geist-Black.woff2 +0 -0
- package/dist/client/geist/Geist-Bold.woff2 +0 -0
- package/dist/client/geist/Geist-Light.woff2 +0 -0
- package/dist/client/geist/Geist-Medium.woff2 +0 -0
- package/dist/client/geist/Geist-Regular.woff2 +0 -0
- package/dist/client/geist/Geist-SemiBold.woff2 +0 -0
- package/dist/client/geist/Geist-Thin.woff2 +0 -0
- package/dist/client/geist/Geist-UltraBlack.woff2 +2151 -0
- package/dist/client/geist/Geist-UltraLight.woff2 +2151 -0
- package/dist/client/geist/fonts.css +71 -0
- package/dist/client/local-editor.html +5 -6
- package/dist/client/static/css/main-D3M2tKfG.css +1 -0
- package/dist/client/static/img/hero-CA-QKTbm.svg +28 -0
- package/dist/client/static/js/local-worker-CfP0n5rz.js +2 -0
- package/dist/client/static/js/local-worker-CfP0n5rz.js.map +1 -0
- package/dist/client/static/js/main-KuPTzIza.js +2074 -0
- package/dist/client/static/js/main-KuPTzIza.js.map +1 -0
- package/dist/routes/api.d.ts +12 -0
- package/dist/routes/api.d.ts.map +1 -0
- package/dist/routes/api.js +112 -0
- package/dist/routes/api.js.map +1 -0
- package/dist/routes/editor.d.ts +7 -0
- package/dist/routes/editor.d.ts.map +1 -0
- package/dist/routes/editor.js +151 -0
- package/dist/routes/editor.js.map +1 -0
- package/dist/routes/fs.d.ts.map +1 -1
- package/dist/routes/fs.js +97 -4
- package/dist/routes/fs.js.map +1 -1
- package/dist/routes/test.d.ts +10 -0
- package/dist/routes/test.d.ts.map +1 -0
- package/dist/routes/test.js +68 -0
- package/dist/routes/test.js.map +1 -0
- package/dist/server.d.ts +4 -13
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +106 -90
- package/dist/server.js.map +1 -1
- package/package.json +1 -1
- package/dist/client/assets/local-editor-C-tz9jAp.js +0 -2048
- package/dist/client/assets/local-editor-DTOl6Htj.css +0 -1
- package/dist/client/manifest.json +0 -25
- package/dist/client/monaco/min/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
- package/dist/client/monaco/min/vs/base/common/worker/simpleWorker.nls.de.js +0 -8
- package/dist/client/monaco/min/vs/base/common/worker/simpleWorker.nls.es.js +0 -8
- package/dist/client/monaco/min/vs/base/common/worker/simpleWorker.nls.fr.js +0 -8
- package/dist/client/monaco/min/vs/base/common/worker/simpleWorker.nls.it.js +0 -8
- package/dist/client/monaco/min/vs/base/common/worker/simpleWorker.nls.ja.js +0 -8
- package/dist/client/monaco/min/vs/base/common/worker/simpleWorker.nls.js +0 -8
- package/dist/client/monaco/min/vs/base/common/worker/simpleWorker.nls.ko.js +0 -8
- package/dist/client/monaco/min/vs/base/common/worker/simpleWorker.nls.ru.js +0 -8
- package/dist/client/monaco/min/vs/base/common/worker/simpleWorker.nls.zh-cn.js +0 -8
- package/dist/client/monaco/min/vs/base/common/worker/simpleWorker.nls.zh-tw.js +0 -8
- package/dist/client/monaco/min/vs/base/worker/workerMain.js +0 -30
- package/dist/client/monaco/min/vs/basic-languages/abap/abap.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/apex/apex.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/azcli/azcli.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/bat/bat.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/bicep/bicep.js +0 -11
- package/dist/client/monaco/min/vs/basic-languages/cameligo/cameligo.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/clojure/clojure.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/coffee/coffee.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/cpp/cpp.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/csharp/csharp.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/csp/csp.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/css/css.js +0 -12
- package/dist/client/monaco/min/vs/basic-languages/cypher/cypher.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/dart/dart.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/dockerfile/dockerfile.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/ecl/ecl.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/elixir/elixir.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/flow9/flow9.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/freemarker2/freemarker2.js +0 -12
- package/dist/client/monaco/min/vs/basic-languages/fsharp/fsharp.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/go/go.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/graphql/graphql.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/handlebars/handlebars.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/hcl/hcl.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/html/html.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/ini/ini.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/java/java.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/javascript/javascript.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/julia/julia.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/kotlin/kotlin.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/less/less.js +0 -11
- package/dist/client/monaco/min/vs/basic-languages/lexon/lexon.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/liquid/liquid.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/lua/lua.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/m3/m3.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/markdown/markdown.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/mdx/mdx.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/mips/mips.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/msdax/msdax.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/mysql/mysql.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/objective-c/objective-c.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/pascal/pascal.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/pascaligo/pascaligo.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/perl/perl.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/pgsql/pgsql.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/php/php.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/pla/pla.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/postiats/postiats.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/powerquery/powerquery.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/powershell/powershell.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/protobuf/protobuf.js +0 -11
- package/dist/client/monaco/min/vs/basic-languages/pug/pug.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/python/python.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/qsharp/qsharp.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/r/r.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/razor/razor.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/redis/redis.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/redshift/redshift.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/restructuredtext/restructuredtext.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/ruby/ruby.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/rust/rust.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/sb/sb.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/scala/scala.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/scheme/scheme.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/scss/scss.js +0 -12
- package/dist/client/monaco/min/vs/basic-languages/shell/shell.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/solidity/solidity.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/sophia/sophia.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/sparql/sparql.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/sql/sql.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/st/st.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/swift/swift.js +0 -13
- package/dist/client/monaco/min/vs/basic-languages/systemverilog/systemverilog.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/tcl/tcl.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/twig/twig.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/typescript/typescript.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/typespec/typespec.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/vb/vb.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/wgsl/wgsl.js +0 -307
- package/dist/client/monaco/min/vs/basic-languages/xml/xml.js +0 -10
- package/dist/client/monaco/min/vs/basic-languages/yaml/yaml.js +0 -10
- package/dist/client/monaco/min/vs/editor/editor.main.css +0 -8
- package/dist/client/monaco/min/vs/editor/editor.main.js +0 -768
- package/dist/client/monaco/min/vs/editor/editor.main.nls.de.js +0 -17
- package/dist/client/monaco/min/vs/editor/editor.main.nls.es.js +0 -17
- package/dist/client/monaco/min/vs/editor/editor.main.nls.fr.js +0 -15
- package/dist/client/monaco/min/vs/editor/editor.main.nls.it.js +0 -15
- package/dist/client/monaco/min/vs/editor/editor.main.nls.ja.js +0 -17
- package/dist/client/monaco/min/vs/editor/editor.main.nls.js +0 -15
- package/dist/client/monaco/min/vs/editor/editor.main.nls.ko.js +0 -15
- package/dist/client/monaco/min/vs/editor/editor.main.nls.ru.js +0 -17
- package/dist/client/monaco/min/vs/editor/editor.main.nls.zh-cn.js +0 -17
- package/dist/client/monaco/min/vs/editor/editor.main.nls.zh-tw.js +0 -15
- package/dist/client/monaco/min/vs/language/css/cssMode.js +0 -13
- package/dist/client/monaco/min/vs/language/css/cssWorker.js +0 -77
- package/dist/client/monaco/min/vs/language/html/htmlMode.js +0 -13
- package/dist/client/monaco/min/vs/language/html/htmlWorker.js +0 -454
- package/dist/client/monaco/min/vs/language/json/jsonMode.js +0 -19
- package/dist/client/monaco/min/vs/language/json/jsonWorker.js +0 -42
- package/dist/client/monaco/min/vs/language/typescript/tsMode.js +0 -20
- package/dist/client/monaco/min/vs/language/typescript/tsWorker.js +0 -51328
- package/dist/client/monaco/min/vs/loader.js +0 -11
- package/dist/routes/files.d.ts +0 -3
- package/dist/routes/files.d.ts.map +0 -1
- package/dist/routes/files.js +0 -10
- package/dist/routes/files.js.map +0 -1
- package/dist/routes/modules.d.ts +0 -3
- package/dist/routes/modules.d.ts.map +0 -1
- package/dist/routes/modules.js +0 -47
- package/dist/routes/modules.js.map +0 -1
package/dist/server.js
CHANGED
@@ -1,15 +1,19 @@
|
|
1
1
|
import fastifyCors from "@fastify/cors";
|
2
|
-
import
|
2
|
+
import middie from "@fastify/middie";
|
3
|
+
import fastifyMultipart from "@fastify/multipart";
|
3
4
|
import fastifyStatic from "@fastify/static";
|
5
|
+
import autoprefixer from "autoprefixer";
|
4
6
|
import { watch } from "chokidar";
|
5
7
|
import Fastify from "fastify";
|
6
8
|
import fs from "node:fs/promises";
|
7
9
|
import path from "node:path";
|
10
|
+
import { fileURLToPath } from "node:url";
|
11
|
+
import tailwindcss from "tailwindcss";
|
8
12
|
import { createServer as createViteServer } from "vite";
|
9
|
-
import {
|
10
|
-
|
11
|
-
const
|
12
|
-
const
|
13
|
+
import { createApiRoutes } from "./routes/api.js";
|
14
|
+
const __filename = fileURLToPath(import.meta.url);
|
15
|
+
const __dirname = path.dirname(__filename);
|
16
|
+
const WATCHED_DIRS = ["config", "modules", "schemas"];
|
13
17
|
export class LocalEditorServer {
|
14
18
|
app;
|
15
19
|
listenerHost;
|
@@ -17,21 +21,22 @@ export class LocalEditorServer {
|
|
17
21
|
sseClients = new Set();
|
18
22
|
workingDir;
|
19
23
|
listenerPort;
|
20
|
-
clientPath;
|
21
|
-
viteConfigPath;
|
22
|
-
vite;
|
23
24
|
logger;
|
25
|
+
vite = null;
|
26
|
+
portalRoot;
|
27
|
+
deploymentUrl;
|
24
28
|
constructor(options) {
|
25
29
|
this.workingDir = options.workingDir;
|
26
30
|
this.listenerPort = options.port;
|
27
|
-
this.clientPath = options.clientPath;
|
28
|
-
this.viteConfigPath = options.viteConfigPath;
|
29
31
|
this.logger = options.logger;
|
32
|
+
this.deploymentUrl = options.deploymentUrl;
|
30
33
|
this.listenerHost = "localhost";
|
31
|
-
|
34
|
+
// Watch all project directories
|
35
|
+
this.watcher = watch(WATCHED_DIRS.map((dir) => path.join(this.workingDir, dir)), { ignoreInitial: true });
|
36
|
+
// Determine portal root (go up from packages/editor/src to portal root)
|
37
|
+
this.portalRoot = path.resolve(__dirname, "../../..");
|
32
38
|
this.app = Fastify({
|
33
|
-
// logger:
|
34
|
-
// },
|
39
|
+
// logger: this.logger,
|
35
40
|
bodyLimit: 100 * 1024 * 1024, // 100mb
|
36
41
|
trustProxy: true,
|
37
42
|
});
|
@@ -43,6 +48,63 @@ export class LocalEditorServer {
|
|
43
48
|
methods: ["GET", "POST", "PUT", "DELETE", "OPTIONS"],
|
44
49
|
allowedHeaders: ["Content-Type", "Authorization"],
|
45
50
|
});
|
51
|
+
// Register multipart for file uploads
|
52
|
+
await this.app.register(fastifyMultipart, {
|
53
|
+
limits: {
|
54
|
+
fileSize: 100 * 1024 * 1024, // 100mb
|
55
|
+
},
|
56
|
+
});
|
57
|
+
// Serve Monaco editor files from node_modules
|
58
|
+
// This needs to be registered before Vite middleware
|
59
|
+
const monacoPath = path.join(this.portalRoot, "node_modules/monaco-editor");
|
60
|
+
await this.app.register(fastifyStatic, {
|
61
|
+
root: monacoPath,
|
62
|
+
prefix: "/monaco/",
|
63
|
+
decorateReply: false, // Don't add sendFile method to avoid conflicts
|
64
|
+
});
|
65
|
+
// Serve public directory for fonts and other static assets
|
66
|
+
const publicPath = path.join(this.portalRoot, "public");
|
67
|
+
await this.app.register(fastifyStatic, {
|
68
|
+
root: publicPath,
|
69
|
+
prefix: "/",
|
70
|
+
decorateReply: false,
|
71
|
+
});
|
72
|
+
// Register middie for Vite middleware
|
73
|
+
await this.app.register(middie);
|
74
|
+
// Load Tailwind config explicitly since we're in ES module mode
|
75
|
+
const tailwindConfigPath = path.join(this.portalRoot, "tailwind.config.js");
|
76
|
+
const { default: tailwindConfig } = await import(`file://${tailwindConfigPath}`);
|
77
|
+
// Convert content paths to absolute since Tailwind needs the correct context
|
78
|
+
const tailwindConfigWithAbsolutePaths = {
|
79
|
+
...tailwindConfig,
|
80
|
+
content: tailwindConfig.content.map((contentPath) => {
|
81
|
+
// If it's already absolute or a glob pattern with absolute path, leave it
|
82
|
+
if (path.isAbsolute(contentPath)) {
|
83
|
+
return contentPath;
|
84
|
+
}
|
85
|
+
// Convert relative paths to absolute based on portal root
|
86
|
+
return path.join(this.portalRoot, contentPath);
|
87
|
+
}),
|
88
|
+
};
|
89
|
+
this.logger.info(`Tailwind config loaded. Content: ${JSON.stringify(tailwindConfigWithAbsolutePaths.content)}`);
|
90
|
+
// Create Vite server in middleware mode
|
91
|
+
// Explicitly configure PostCSS since it doesn't load automatically in middleware mode
|
92
|
+
this.vite = await createViteServer({
|
93
|
+
server: { middlewareMode: true },
|
94
|
+
appType: "custom",
|
95
|
+
mode: "local-editor",
|
96
|
+
root: this.portalRoot,
|
97
|
+
css: {
|
98
|
+
postcss: {
|
99
|
+
plugins: [
|
100
|
+
tailwindcss(tailwindConfigWithAbsolutePaths),
|
101
|
+
autoprefixer(),
|
102
|
+
],
|
103
|
+
},
|
104
|
+
},
|
105
|
+
});
|
106
|
+
// Use Vite's connect instance as middleware
|
107
|
+
this.app.use(this.vite.middlewares);
|
46
108
|
// Add support for text/plain and application/* content types
|
47
109
|
this.app.addContentTypeParser("text/plain", { parseAs: "string" }, (_req, body, done) => {
|
48
110
|
done(null, body);
|
@@ -50,45 +112,18 @@ export class LocalEditorServer {
|
|
50
112
|
this.app.addContentTypeParser("application/*", { parseAs: "buffer" }, (_req, body, done) => {
|
51
113
|
done(null, body);
|
52
114
|
});
|
53
|
-
// API routes
|
54
|
-
|
55
|
-
|
56
|
-
await this.app.register(createFsRoutes, {
|
57
|
-
prefix: "/api/v1/deployments/local/fs",
|
115
|
+
// Register all API routes under /api prefix
|
116
|
+
await this.app.register(createApiRoutes, {
|
117
|
+
prefix: "/api",
|
58
118
|
workingDir: this.workingDir,
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
: path.resolve(path.dirname(this.clientPath), "../../..");
|
64
|
-
// Register types routes for serving TypeScript definitions from node_modules
|
65
|
-
await this.app.register(createTypesRoutes, {
|
66
|
-
prefix: "/api/types",
|
67
|
-
portalRoot: portalRootForTypes,
|
68
|
-
});
|
69
|
-
// Server-Sent Events for file changes
|
70
|
-
this.app.get("/api/changes", async (request, reply) => {
|
71
|
-
reply.raw.writeHead(200, {
|
72
|
-
"Content-Type": "text/event-stream",
|
73
|
-
"Cache-Control": "no-cache",
|
74
|
-
Connection: "keep-alive",
|
75
|
-
});
|
76
|
-
// Send initial event
|
77
|
-
reply.raw.write(`data: ${JSON.stringify({ type: "init", filePath: POLICIES_FILENAME })}\n\n`);
|
78
|
-
this.sseClients.add(reply.raw);
|
79
|
-
request.raw.on("close", () => {
|
80
|
-
this.sseClients.delete(reply.raw);
|
81
|
-
});
|
82
|
-
});
|
83
|
-
// Health check
|
84
|
-
this.app.get("/api/ping", async (_request, reply) => {
|
85
|
-
reply.status(200).send();
|
119
|
+
portalRoot: this.portalRoot,
|
120
|
+
logger: this.logger,
|
121
|
+
sseClients: this.sseClients,
|
122
|
+
deploymentUrl: this.deploymentUrl,
|
86
123
|
});
|
87
124
|
// Setup file watcher
|
88
125
|
this.watcher.on("change", async (filePath) => {
|
89
|
-
const
|
90
|
-
const filePathRelative = path.relative(configPath, filePath);
|
91
|
-
const fileNameRelative = path.basename(filePath);
|
126
|
+
const filePathRelative = path.relative(this.workingDir, filePath);
|
92
127
|
// Broadcast to all SSE clients
|
93
128
|
const data = JSON.stringify({
|
94
129
|
type: "change",
|
@@ -97,53 +132,32 @@ export class LocalEditorServer {
|
|
97
132
|
for (const client of this.sseClients) {
|
98
133
|
client.write(`event: change\ndata: ${data}\n\n`);
|
99
134
|
}
|
100
|
-
this.logger.info(`File changed: ${
|
101
|
-
});
|
102
|
-
// Determine portal root - Vite config is always at portal root
|
103
|
-
const portalRoot = this.viteConfigPath
|
104
|
-
? path.resolve(path.dirname(this.viteConfigPath), "../..")
|
105
|
-
: path.resolve(path.dirname(this.clientPath), "../../..");
|
106
|
-
// Serve Monaco editor files from node_modules
|
107
|
-
const monacoPath = path.join(portalRoot, "node_modules/monaco-editor");
|
108
|
-
await this.app.register(fastifyStatic, {
|
109
|
-
root: monacoPath,
|
110
|
-
prefix: "/monaco/",
|
135
|
+
this.logger.info(`File changed: ${filePathRelative}`);
|
111
136
|
});
|
112
|
-
//
|
113
|
-
|
114
|
-
|
115
|
-
const viteConfigPath = path.join(portalRoot, "vite.config.ts");
|
116
|
-
this.vite = await createViteServer({
|
117
|
-
configFile: viteConfigPath,
|
118
|
-
root: portalRoot,
|
119
|
-
server: { middlewareMode: true },
|
120
|
-
appType: "custom",
|
121
|
-
base: "/",
|
122
|
-
mode: "local-editor",
|
137
|
+
// Redirect root to the editor page
|
138
|
+
this.app.get("/", async (_request, reply) => {
|
139
|
+
reply.redirect("/dev/project/local/edit", 301);
|
123
140
|
});
|
124
|
-
//
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
141
|
+
// SPA fallback - serve local-editor.html for all unmatched routes
|
142
|
+
this.app.setNotFoundHandler(async (request, reply) => {
|
143
|
+
if (!this.vite) {
|
144
|
+
return reply.status(500).send("Vite server not initialized");
|
145
|
+
}
|
146
|
+
if (request.method !== "GET") {
|
147
|
+
return reply.status(404).send("Not found");
|
130
148
|
}
|
131
|
-
// Use Vite middleware for everything else
|
132
|
-
this.vite.middlewares(req, res, next);
|
133
|
-
});
|
134
|
-
const htmlPath = path.join(portalRoot, "local-editor.html");
|
135
|
-
const rawHtml = await fs.readFile(htmlPath, "utf-8");
|
136
|
-
// Serve the local-editor.html for SPA routing
|
137
|
-
this.app.get("*", async (request, reply) => {
|
138
149
|
const url = request.url;
|
139
150
|
try {
|
140
|
-
|
141
|
-
|
151
|
+
// Read the local-editor.html file
|
152
|
+
const htmlPath = path.join(this.portalRoot, "local-editor.html");
|
153
|
+
let template = await fs.readFile(htmlPath, "utf-8");
|
154
|
+
// Apply Vite HTML transforms
|
155
|
+
template = await this.vite.transformIndexHtml(url, template);
|
156
|
+
reply.status(200).type("text/html").send(template);
|
142
157
|
}
|
143
|
-
catch (
|
144
|
-
this.logger.error(
|
145
|
-
|
146
|
-
reply.status(500).send(e.message);
|
158
|
+
catch (err) {
|
159
|
+
this.logger.error(err);
|
160
|
+
reply.status(500).send(`Error loading page: ${err.message}`);
|
147
161
|
}
|
148
162
|
});
|
149
163
|
};
|
@@ -156,7 +170,9 @@ export class LocalEditorServer {
|
|
156
170
|
};
|
157
171
|
stop = async () => {
|
158
172
|
await this.watcher.close();
|
159
|
-
|
173
|
+
if (this.vite) {
|
174
|
+
await this.vite.close();
|
175
|
+
}
|
160
176
|
await this.app.close();
|
161
177
|
};
|
162
178
|
}
|
package/dist/server.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|