@rozenite/vite-plugin 1.9.0 → 1.10.0
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-plugin.d.ts.map +1 -1
- package/dist/dev-config-module.d.ts +6 -0
- package/dist/dev-config-module.d.ts.map +1 -0
- package/dist/dev-host/assets/index-PNYu6V-J.css +1 -0
- package/dist/dev-host/assets/index-kRQeUY6W.js +11 -0
- package/{src/dev-host/dev-host.html → dist/dev-host/index.html} +2 -0
- package/dist/dev-host/manifest.json +11 -0
- package/dist/index.cjs +112 -10
- package/dist/index.js +112 -10
- package/dist/load-config.d.ts +39 -0
- package/dist/load-config.d.ts.map +1 -1
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/package.json +8 -8
- package/dist/dev-host/App.d.ts +0 -3
- package/dist/dev-host/App.d.ts.map +0 -1
- package/dist/dev-host/components/DispatchForm.d.ts +0 -13
- package/dist/dev-host/components/DispatchForm.d.ts.map +0 -1
- package/dist/dev-host/components/MessageDetailsPane.d.ts +0 -18
- package/dist/dev-host/components/MessageDetailsPane.d.ts.map +0 -1
- package/dist/dev-host/components/MessageLogPane.d.ts +0 -10
- package/dist/dev-host/components/MessageLogPane.d.ts.map +0 -1
- package/dist/dev-host/components/MessagePayloadDetail.d.ts +0 -6
- package/dist/dev-host/components/MessagePayloadDetail.d.ts.map +0 -1
- package/dist/dev-host/components/PanelTabs.d.ts +0 -9
- package/dist/dev-host/components/PanelTabs.d.ts.map +0 -1
- package/dist/dev-host/components/ResizeHandle.d.ts +0 -12
- package/dist/dev-host/components/ResizeHandle.d.ts.map +0 -1
- package/dist/dev-host/components/icons.d.ts +0 -3
- package/dist/dev-host/components/icons.d.ts.map +0 -1
- package/dist/dev-host/components/ui/ScrollArea.d.ts +0 -6
- package/dist/dev-host/components/ui/ScrollArea.d.ts.map +0 -1
- package/dist/dev-host/components/ui/Tabs.d.ts +0 -5
- package/dist/dev-host/components/ui/Tabs.d.ts.map +0 -1
- package/dist/dev-host/constants.d.ts +0 -28
- package/dist/dev-host/constants.d.ts.map +0 -1
- package/dist/dev-host/index.d.ts +0 -1
- package/dist/dev-host/index.d.ts.map +0 -1
- package/dist/dev-host/types.d.ts +0 -29
- package/dist/dev-host/types.d.ts.map +0 -1
- package/dist/dev-host/utils.d.ts +0 -13
- package/dist/dev-host/utils.d.ts.map +0 -1
- package/src/dev-host/App.tsx +0 -403
- package/src/dev-host/components/DispatchForm.tsx +0 -87
- package/src/dev-host/components/MessageDetailsPane.tsx +0 -108
- package/src/dev-host/components/MessageLogPane.tsx +0 -84
- package/src/dev-host/components/MessagePayloadDetail.tsx +0 -32
- package/src/dev-host/components/PanelTabs.tsx +0 -22
- package/src/dev-host/components/ResizeHandle.tsx +0 -33
- package/src/dev-host/components/icons.tsx +0 -27
- package/src/dev-host/components/ui/ScrollArea.tsx +0 -46
- package/src/dev-host/components/ui/Tabs.tsx +0 -33
- package/src/dev-host/constants.ts +0 -29
- package/src/dev-host/index.tsx +0 -19
- package/src/dev-host/styles.css +0 -631
- package/src/dev-host/types.ts +0 -33
- package/src/dev-host/utils.ts +0 -96
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<title>Rozenite Dev Host</title>
|
|
7
|
+
<script type="module" crossorigin src="./assets/index-kRQeUY6W.js"></script>
|
|
8
|
+
<link rel="stylesheet" crossorigin href="./assets/index-PNYu6V-J.css">
|
|
7
9
|
</head>
|
|
8
10
|
<body>
|
|
9
11
|
<div id="root"></div>
|
package/dist/index.cjs
CHANGED
|
@@ -88,6 +88,59 @@ const getPackageJSON = async (projectRoot) => {
|
|
|
88
88
|
return JSON.parse(packageJSON);
|
|
89
89
|
};
|
|
90
90
|
const DEV_HOST_STATE_ELEMENT_ID = "__rozenite-dev-host__";
|
|
91
|
+
const DEV_HOST_CONFIG_GLOBAL_KEY = "__rozenite-dev-config__";
|
|
92
|
+
const DEV_HOST_BUILD_ENTRY_KEY = "index.html";
|
|
93
|
+
const getDevHostHtmlTemplate = () => {
|
|
94
|
+
return `<!DOCTYPE html>
|
|
95
|
+
<html lang="en">
|
|
96
|
+
<head>
|
|
97
|
+
<meta charset="UTF-8" />
|
|
98
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
99
|
+
<title>Rozenite Dev Host</title>
|
|
100
|
+
</head>
|
|
101
|
+
<body>
|
|
102
|
+
<div id="root"></div>
|
|
103
|
+
</body>
|
|
104
|
+
</html>`;
|
|
105
|
+
};
|
|
106
|
+
const getDevHostSourceEntryFile = (packageDir) => {
|
|
107
|
+
return path.join(packageDir, "src", "dev-host", "main.tsx");
|
|
108
|
+
};
|
|
109
|
+
const getBuiltDevHostAssets = (packageDir) => {
|
|
110
|
+
const devHostDistDir = path.join(packageDir, "dist", "dev-host");
|
|
111
|
+
const manifestPath = path.join(devHostDistDir, "manifest.json");
|
|
112
|
+
if (!fs.existsSync(manifestPath)) {
|
|
113
|
+
return null;
|
|
114
|
+
}
|
|
115
|
+
const manifest = JSON.parse(fs.readFileSync(manifestPath, "utf8"));
|
|
116
|
+
const entry = manifest[DEV_HOST_BUILD_ENTRY_KEY];
|
|
117
|
+
if (!entry?.file) {
|
|
118
|
+
throw new Error(`Missing ${DEV_HOST_BUILD_ENTRY_KEY} entry in dev host manifest.`);
|
|
119
|
+
}
|
|
120
|
+
return {
|
|
121
|
+
script: path.join(devHostDistDir, entry.file),
|
|
122
|
+
styles: (entry.css ?? []).map((file) => path.join(devHostDistDir, file))
|
|
123
|
+
};
|
|
124
|
+
};
|
|
125
|
+
const ROZENITE_CONFIG_FILE_NAME = "rozenite.config.ts";
|
|
126
|
+
const ROZENITE_DEV_CONFIG_MODULE_ID = "virtual:rozenite-dev-config";
|
|
127
|
+
const RESOLVED_ROZENITE_DEV_CONFIG_MODULE_ID = `\0${ROZENITE_DEV_CONFIG_MODULE_ID}`;
|
|
128
|
+
const getRozeniteConfigPath = (projectRoot) => {
|
|
129
|
+
return path.resolve(projectRoot, ROZENITE_CONFIG_FILE_NAME);
|
|
130
|
+
};
|
|
131
|
+
const resolveRozeniteDevConfigModuleId = (id) => {
|
|
132
|
+
if (id === ROZENITE_DEV_CONFIG_MODULE_ID) {
|
|
133
|
+
return RESOLVED_ROZENITE_DEV_CONFIG_MODULE_ID;
|
|
134
|
+
}
|
|
135
|
+
return null;
|
|
136
|
+
};
|
|
137
|
+
const loadRozeniteDevConfigModule = (id, projectRoot) => {
|
|
138
|
+
if (id !== RESOLVED_ROZENITE_DEV_CONFIG_MODULE_ID) {
|
|
139
|
+
return null;
|
|
140
|
+
}
|
|
141
|
+
const configPath = vite.normalizePath(getRozeniteConfigPath(projectRoot));
|
|
142
|
+
return `export { default } from ${JSON.stringify(`/@fs${configPath}`)};`;
|
|
143
|
+
};
|
|
91
144
|
const TEMPLATES_DIR = path.resolve(
|
|
92
145
|
node_url.fileURLToPath(typeof document === "undefined" ? require("url").pathToFileURL(__filename).href : _documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === "SCRIPT" && _documentCurrentScript.src || new URL("index.cjs", document.baseURI).href),
|
|
93
146
|
"..",
|
|
@@ -99,9 +152,7 @@ const PACKAGE_DIR = path.resolve(
|
|
|
99
152
|
"..",
|
|
100
153
|
".."
|
|
101
154
|
);
|
|
102
|
-
const
|
|
103
|
-
const DEV_HOST_HTML_TEMPLATE = path.join(DEV_HOST_DIR, "dev-host.html");
|
|
104
|
-
const DEV_HOST_ENTRY_FILE = path.join(DEV_HOST_DIR, "index.tsx");
|
|
155
|
+
const DEV_HOST_SOURCE_ENTRY_FILE = getDevHostSourceEntryFile(PACKAGE_DIR);
|
|
105
156
|
const PANELS_DIR = "./panels";
|
|
106
157
|
const DEVTOOLS_DIR = "devtools";
|
|
107
158
|
const DEV_HOST_ROUTE = "/";
|
|
@@ -158,15 +209,49 @@ const rozeniteClientPlugin = () => {
|
|
|
158
209
|
const serializeDevHostState = (state) => {
|
|
159
210
|
return JSON.stringify(state).replace(/</g, "\\u003c");
|
|
160
211
|
};
|
|
212
|
+
const toFsUrl = (filePath) => {
|
|
213
|
+
return `/@fs${vite.normalizePath(filePath)}`;
|
|
214
|
+
};
|
|
215
|
+
const getDevHostAssetTags = () => {
|
|
216
|
+
const builtAssets = getBuiltDevHostAssets(PACKAGE_DIR);
|
|
217
|
+
if (!builtAssets) {
|
|
218
|
+
return [
|
|
219
|
+
{
|
|
220
|
+
tag: "script",
|
|
221
|
+
attrs: {
|
|
222
|
+
type: "module",
|
|
223
|
+
src: toFsUrl(DEV_HOST_SOURCE_ENTRY_FILE)
|
|
224
|
+
},
|
|
225
|
+
injectTo: "body"
|
|
226
|
+
}
|
|
227
|
+
];
|
|
228
|
+
}
|
|
229
|
+
return [
|
|
230
|
+
...builtAssets.styles.map((stylePath) => ({
|
|
231
|
+
tag: "link",
|
|
232
|
+
attrs: {
|
|
233
|
+
rel: "stylesheet",
|
|
234
|
+
href: toFsUrl(stylePath)
|
|
235
|
+
},
|
|
236
|
+
injectTo: "head"
|
|
237
|
+
})),
|
|
238
|
+
{
|
|
239
|
+
tag: "script",
|
|
240
|
+
attrs: {
|
|
241
|
+
type: "module",
|
|
242
|
+
src: toFsUrl(builtAssets.script)
|
|
243
|
+
},
|
|
244
|
+
injectTo: "body"
|
|
245
|
+
}
|
|
246
|
+
];
|
|
247
|
+
};
|
|
161
248
|
return {
|
|
162
249
|
name: "rozenite-client-plugin",
|
|
163
250
|
async config(config) {
|
|
164
251
|
if (config.root) {
|
|
165
252
|
projectRoot = config.root;
|
|
166
253
|
}
|
|
167
|
-
rozeniteConfig = await loadConfig(
|
|
168
|
-
path.resolve(projectRoot, "rozenite.config.ts")
|
|
169
|
-
);
|
|
254
|
+
rozeniteConfig = await loadConfig(getRozeniteConfigPath(projectRoot));
|
|
170
255
|
const panels = getPanels();
|
|
171
256
|
config.server ??= {};
|
|
172
257
|
config.server.open = config.server.open === true ? DEV_HOST_ROUTE : config.server.open ?? DEV_HOST_ROUTE;
|
|
@@ -190,6 +275,10 @@ const rozeniteClientPlugin = () => {
|
|
|
190
275
|
};
|
|
191
276
|
},
|
|
192
277
|
resolveId(id) {
|
|
278
|
+
const devConfigModuleId = resolveRozeniteDevConfigModuleId(id);
|
|
279
|
+
if (devConfigModuleId) {
|
|
280
|
+
return devConfigModuleId;
|
|
281
|
+
}
|
|
193
282
|
const isPanel = getPanels().some(
|
|
194
283
|
(panel) => `${DEVTOOLS_DIR}/${panel.htmlFile}` === id
|
|
195
284
|
);
|
|
@@ -199,6 +288,10 @@ const rozeniteClientPlugin = () => {
|
|
|
199
288
|
return null;
|
|
200
289
|
},
|
|
201
290
|
load(id) {
|
|
291
|
+
const devConfigModule = loadRozeniteDevConfigModule(id, projectRoot);
|
|
292
|
+
if (devConfigModule) {
|
|
293
|
+
return devConfigModule;
|
|
294
|
+
}
|
|
202
295
|
const panel = getPanels().find(
|
|
203
296
|
(panel2) => `${DEVTOOLS_DIR}/${panel2.htmlFile}` === id
|
|
204
297
|
);
|
|
@@ -226,11 +319,20 @@ const rozeniteClientPlugin = () => {
|
|
|
226
319
|
{
|
|
227
320
|
tag: "script",
|
|
228
321
|
attrs: {
|
|
229
|
-
type: "module"
|
|
230
|
-
src: `/@fs${vite.normalizePath(DEV_HOST_ENTRY_FILE)}`
|
|
322
|
+
type: "module"
|
|
231
323
|
},
|
|
324
|
+
children: `import rozeniteConfig from ${JSON.stringify("/@id/" + ROZENITE_DEV_CONFIG_MODULE_ID)}; window[${JSON.stringify(DEV_HOST_CONFIG_GLOBAL_KEY)}] = rozeniteConfig.dev ?? {};`,
|
|
232
325
|
injectTo: "body"
|
|
233
|
-
}
|
|
326
|
+
},
|
|
327
|
+
{
|
|
328
|
+
tag: "meta",
|
|
329
|
+
attrs: {
|
|
330
|
+
name: "rozenite-dev-host",
|
|
331
|
+
content: "true"
|
|
332
|
+
},
|
|
333
|
+
injectTo: "head"
|
|
334
|
+
},
|
|
335
|
+
...getDevHostAssetTags()
|
|
234
336
|
];
|
|
235
337
|
},
|
|
236
338
|
async configureServer(server) {
|
|
@@ -255,7 +357,7 @@ const rozeniteClientPlugin = () => {
|
|
|
255
357
|
const requestUrl = req.url || "/";
|
|
256
358
|
const url = new URL(requestUrl, "http://localhost").pathname;
|
|
257
359
|
if (url === DEV_HOST_ROUTE) {
|
|
258
|
-
|
|
360
|
+
server.transformIndexHtml(requestUrl, getDevHostHtmlTemplate()).then((html) => {
|
|
259
361
|
res.setHeader("Content-Type", "text/html");
|
|
260
362
|
res.end(html);
|
|
261
363
|
}).catch((err) => {
|
package/dist/index.js
CHANGED
|
@@ -85,6 +85,59 @@ const getPackageJSON = async (projectRoot) => {
|
|
|
85
85
|
return JSON.parse(packageJSON);
|
|
86
86
|
};
|
|
87
87
|
const DEV_HOST_STATE_ELEMENT_ID = "__rozenite-dev-host__";
|
|
88
|
+
const DEV_HOST_CONFIG_GLOBAL_KEY = "__rozenite-dev-config__";
|
|
89
|
+
const DEV_HOST_BUILD_ENTRY_KEY = "index.html";
|
|
90
|
+
const getDevHostHtmlTemplate = () => {
|
|
91
|
+
return `<!DOCTYPE html>
|
|
92
|
+
<html lang="en">
|
|
93
|
+
<head>
|
|
94
|
+
<meta charset="UTF-8" />
|
|
95
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
96
|
+
<title>Rozenite Dev Host</title>
|
|
97
|
+
</head>
|
|
98
|
+
<body>
|
|
99
|
+
<div id="root"></div>
|
|
100
|
+
</body>
|
|
101
|
+
</html>`;
|
|
102
|
+
};
|
|
103
|
+
const getDevHostSourceEntryFile = (packageDir) => {
|
|
104
|
+
return path.join(packageDir, "src", "dev-host", "main.tsx");
|
|
105
|
+
};
|
|
106
|
+
const getBuiltDevHostAssets = (packageDir) => {
|
|
107
|
+
const devHostDistDir = path.join(packageDir, "dist", "dev-host");
|
|
108
|
+
const manifestPath = path.join(devHostDistDir, "manifest.json");
|
|
109
|
+
if (!fs.existsSync(manifestPath)) {
|
|
110
|
+
return null;
|
|
111
|
+
}
|
|
112
|
+
const manifest = JSON.parse(fs.readFileSync(manifestPath, "utf8"));
|
|
113
|
+
const entry = manifest[DEV_HOST_BUILD_ENTRY_KEY];
|
|
114
|
+
if (!entry?.file) {
|
|
115
|
+
throw new Error(`Missing ${DEV_HOST_BUILD_ENTRY_KEY} entry in dev host manifest.`);
|
|
116
|
+
}
|
|
117
|
+
return {
|
|
118
|
+
script: path.join(devHostDistDir, entry.file),
|
|
119
|
+
styles: (entry.css ?? []).map((file) => path.join(devHostDistDir, file))
|
|
120
|
+
};
|
|
121
|
+
};
|
|
122
|
+
const ROZENITE_CONFIG_FILE_NAME = "rozenite.config.ts";
|
|
123
|
+
const ROZENITE_DEV_CONFIG_MODULE_ID = "virtual:rozenite-dev-config";
|
|
124
|
+
const RESOLVED_ROZENITE_DEV_CONFIG_MODULE_ID = `\0${ROZENITE_DEV_CONFIG_MODULE_ID}`;
|
|
125
|
+
const getRozeniteConfigPath = (projectRoot) => {
|
|
126
|
+
return path.resolve(projectRoot, ROZENITE_CONFIG_FILE_NAME);
|
|
127
|
+
};
|
|
128
|
+
const resolveRozeniteDevConfigModuleId = (id) => {
|
|
129
|
+
if (id === ROZENITE_DEV_CONFIG_MODULE_ID) {
|
|
130
|
+
return RESOLVED_ROZENITE_DEV_CONFIG_MODULE_ID;
|
|
131
|
+
}
|
|
132
|
+
return null;
|
|
133
|
+
};
|
|
134
|
+
const loadRozeniteDevConfigModule = (id, projectRoot) => {
|
|
135
|
+
if (id !== RESOLVED_ROZENITE_DEV_CONFIG_MODULE_ID) {
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
const configPath = normalizePath(getRozeniteConfigPath(projectRoot));
|
|
139
|
+
return `export { default } from ${JSON.stringify(`/@fs${configPath}`)};`;
|
|
140
|
+
};
|
|
88
141
|
const TEMPLATES_DIR = path.resolve(
|
|
89
142
|
fileURLToPath(import.meta.url),
|
|
90
143
|
"..",
|
|
@@ -96,9 +149,7 @@ const PACKAGE_DIR = path.resolve(
|
|
|
96
149
|
"..",
|
|
97
150
|
".."
|
|
98
151
|
);
|
|
99
|
-
const
|
|
100
|
-
const DEV_HOST_HTML_TEMPLATE = path.join(DEV_HOST_DIR, "dev-host.html");
|
|
101
|
-
const DEV_HOST_ENTRY_FILE = path.join(DEV_HOST_DIR, "index.tsx");
|
|
152
|
+
const DEV_HOST_SOURCE_ENTRY_FILE = getDevHostSourceEntryFile(PACKAGE_DIR);
|
|
102
153
|
const PANELS_DIR = "./panels";
|
|
103
154
|
const DEVTOOLS_DIR = "devtools";
|
|
104
155
|
const DEV_HOST_ROUTE = "/";
|
|
@@ -155,15 +206,49 @@ const rozeniteClientPlugin = () => {
|
|
|
155
206
|
const serializeDevHostState = (state) => {
|
|
156
207
|
return JSON.stringify(state).replace(/</g, "\\u003c");
|
|
157
208
|
};
|
|
209
|
+
const toFsUrl = (filePath) => {
|
|
210
|
+
return `/@fs${normalizePath(filePath)}`;
|
|
211
|
+
};
|
|
212
|
+
const getDevHostAssetTags = () => {
|
|
213
|
+
const builtAssets = getBuiltDevHostAssets(PACKAGE_DIR);
|
|
214
|
+
if (!builtAssets) {
|
|
215
|
+
return [
|
|
216
|
+
{
|
|
217
|
+
tag: "script",
|
|
218
|
+
attrs: {
|
|
219
|
+
type: "module",
|
|
220
|
+
src: toFsUrl(DEV_HOST_SOURCE_ENTRY_FILE)
|
|
221
|
+
},
|
|
222
|
+
injectTo: "body"
|
|
223
|
+
}
|
|
224
|
+
];
|
|
225
|
+
}
|
|
226
|
+
return [
|
|
227
|
+
...builtAssets.styles.map((stylePath) => ({
|
|
228
|
+
tag: "link",
|
|
229
|
+
attrs: {
|
|
230
|
+
rel: "stylesheet",
|
|
231
|
+
href: toFsUrl(stylePath)
|
|
232
|
+
},
|
|
233
|
+
injectTo: "head"
|
|
234
|
+
})),
|
|
235
|
+
{
|
|
236
|
+
tag: "script",
|
|
237
|
+
attrs: {
|
|
238
|
+
type: "module",
|
|
239
|
+
src: toFsUrl(builtAssets.script)
|
|
240
|
+
},
|
|
241
|
+
injectTo: "body"
|
|
242
|
+
}
|
|
243
|
+
];
|
|
244
|
+
};
|
|
158
245
|
return {
|
|
159
246
|
name: "rozenite-client-plugin",
|
|
160
247
|
async config(config) {
|
|
161
248
|
if (config.root) {
|
|
162
249
|
projectRoot = config.root;
|
|
163
250
|
}
|
|
164
|
-
rozeniteConfig = await loadConfig(
|
|
165
|
-
path.resolve(projectRoot, "rozenite.config.ts")
|
|
166
|
-
);
|
|
251
|
+
rozeniteConfig = await loadConfig(getRozeniteConfigPath(projectRoot));
|
|
167
252
|
const panels = getPanels();
|
|
168
253
|
config.server ??= {};
|
|
169
254
|
config.server.open = config.server.open === true ? DEV_HOST_ROUTE : config.server.open ?? DEV_HOST_ROUTE;
|
|
@@ -187,6 +272,10 @@ const rozeniteClientPlugin = () => {
|
|
|
187
272
|
};
|
|
188
273
|
},
|
|
189
274
|
resolveId(id) {
|
|
275
|
+
const devConfigModuleId = resolveRozeniteDevConfigModuleId(id);
|
|
276
|
+
if (devConfigModuleId) {
|
|
277
|
+
return devConfigModuleId;
|
|
278
|
+
}
|
|
190
279
|
const isPanel = getPanels().some(
|
|
191
280
|
(panel) => `${DEVTOOLS_DIR}/${panel.htmlFile}` === id
|
|
192
281
|
);
|
|
@@ -196,6 +285,10 @@ const rozeniteClientPlugin = () => {
|
|
|
196
285
|
return null;
|
|
197
286
|
},
|
|
198
287
|
load(id) {
|
|
288
|
+
const devConfigModule = loadRozeniteDevConfigModule(id, projectRoot);
|
|
289
|
+
if (devConfigModule) {
|
|
290
|
+
return devConfigModule;
|
|
291
|
+
}
|
|
199
292
|
const panel = getPanels().find(
|
|
200
293
|
(panel2) => `${DEVTOOLS_DIR}/${panel2.htmlFile}` === id
|
|
201
294
|
);
|
|
@@ -223,11 +316,20 @@ const rozeniteClientPlugin = () => {
|
|
|
223
316
|
{
|
|
224
317
|
tag: "script",
|
|
225
318
|
attrs: {
|
|
226
|
-
type: "module"
|
|
227
|
-
src: `/@fs${normalizePath(DEV_HOST_ENTRY_FILE)}`
|
|
319
|
+
type: "module"
|
|
228
320
|
},
|
|
321
|
+
children: `import rozeniteConfig from ${JSON.stringify("/@id/" + ROZENITE_DEV_CONFIG_MODULE_ID)}; window[${JSON.stringify(DEV_HOST_CONFIG_GLOBAL_KEY)}] = rozeniteConfig.dev ?? {};`,
|
|
229
322
|
injectTo: "body"
|
|
230
|
-
}
|
|
323
|
+
},
|
|
324
|
+
{
|
|
325
|
+
tag: "meta",
|
|
326
|
+
attrs: {
|
|
327
|
+
name: "rozenite-dev-host",
|
|
328
|
+
content: "true"
|
|
329
|
+
},
|
|
330
|
+
injectTo: "head"
|
|
331
|
+
},
|
|
332
|
+
...getDevHostAssetTags()
|
|
231
333
|
];
|
|
232
334
|
},
|
|
233
335
|
async configureServer(server) {
|
|
@@ -252,7 +354,7 @@ const rozeniteClientPlugin = () => {
|
|
|
252
354
|
const requestUrl = req.url || "/";
|
|
253
355
|
const url = new URL(requestUrl, "http://localhost").pathname;
|
|
254
356
|
if (url === DEV_HOST_ROUTE) {
|
|
255
|
-
|
|
357
|
+
server.transformIndexHtml(requestUrl, getDevHostHtmlTemplate()).then((html) => {
|
|
256
358
|
res.setHeader("Content-Type", "text/html");
|
|
257
359
|
res.end(html);
|
|
258
360
|
}).catch((err) => {
|
package/dist/load-config.d.ts
CHANGED
|
@@ -2,8 +2,47 @@ export type PanelEntry = {
|
|
|
2
2
|
name: string;
|
|
3
3
|
source: string;
|
|
4
4
|
};
|
|
5
|
+
export type DevPresetEntry = {
|
|
6
|
+
name: string;
|
|
7
|
+
type: string;
|
|
8
|
+
payload: unknown;
|
|
9
|
+
};
|
|
10
|
+
export type DevFlowMessage = {
|
|
11
|
+
id: string;
|
|
12
|
+
direction: 'in' | 'out';
|
|
13
|
+
date: string;
|
|
14
|
+
type: string;
|
|
15
|
+
payload: unknown;
|
|
16
|
+
};
|
|
17
|
+
export type DevFlowMessageMatcher = string | ((message: DevFlowMessage) => boolean) | {
|
|
18
|
+
type?: string;
|
|
19
|
+
direction?: DevFlowMessage['direction'];
|
|
20
|
+
predicate?: (message: DevFlowMessage) => boolean;
|
|
21
|
+
};
|
|
22
|
+
export type DevFlowSubscription = {
|
|
23
|
+
remove: () => void;
|
|
24
|
+
};
|
|
25
|
+
export type DevFlowContext = {
|
|
26
|
+
signal: AbortSignal;
|
|
27
|
+
send: (type: string, payload: unknown) => void;
|
|
28
|
+
onMessage: (matcher: DevFlowMessageMatcher, listener: (message: DevFlowMessage) => void) => DevFlowSubscription;
|
|
29
|
+
waitForMessage: (matcher: DevFlowMessageMatcher, options?: {
|
|
30
|
+
timeoutMs?: number;
|
|
31
|
+
}) => Promise<DevFlowMessage>;
|
|
32
|
+
getMessages: (matcher?: DevFlowMessageMatcher) => DevFlowMessage[];
|
|
33
|
+
};
|
|
34
|
+
export type DevFlowEntry = {
|
|
35
|
+
name?: string;
|
|
36
|
+
autoRun?: boolean;
|
|
37
|
+
run: (context: DevFlowContext) => unknown | Promise<unknown>;
|
|
38
|
+
};
|
|
39
|
+
export type DevConfig = {
|
|
40
|
+
presets?: DevPresetEntry[];
|
|
41
|
+
flows?: DevFlowEntry[];
|
|
42
|
+
};
|
|
5
43
|
export type RozeniteConfig = {
|
|
6
44
|
panels: PanelEntry[];
|
|
45
|
+
dev?: DevConfig;
|
|
7
46
|
};
|
|
8
47
|
export declare const loadConfig: (configPath: string) => Promise<RozeniteConfig>;
|
|
9
48
|
//# sourceMappingURL=load-config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-config.d.ts","sourceRoot":"","sources":["../src/load-config.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,UAAU,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"load-config.d.ts","sourceRoot":"","sources":["../src/load-config.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,IAAI,GAAG,KAAK,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAC7B,MAAM,GACN,CAAC,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,GACtC;IACE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IACxC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC;CAClD,CAAC;AAEN,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/C,SAAS,EAAE,CACT,OAAO,EAAE,qBAAqB,EAC9B,QAAQ,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,KACxC,mBAAmB,CAAC;IACzB,cAAc,EAAE,CACd,OAAO,EAAE,qBAAqB,EAC9B,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,KACE,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7B,WAAW,EAAE,CAAC,OAAO,CAAC,EAAE,qBAAqB,KAAK,cAAc,EAAE,CAAC;CACpE,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC9D,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,GAAG,CAAC,EAAE,SAAS,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,UAAU,GACrB,YAAY,MAAM,KACjB,OAAO,CAAC,cAAc,CA8CxB,CAAC"}
|