@jalvin/vite-plugin 2.0.43 → 2.0.45
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/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +88 -147
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export interface JalvinAppEntry {
|
|
2
2
|
/** Path to the root .jalvin file, relative to the Vite project root. */
|
|
3
3
|
file: string;
|
|
4
|
-
/** Name of the component to mount as the
|
|
4
|
+
/** Name of the component to mount as the DOM root. */
|
|
5
5
|
component: string;
|
|
6
6
|
/** Optional page title for the generated HTML. */
|
|
7
7
|
title?: string;
|
|
@@ -23,8 +23,8 @@ export interface JalvinViteOptions {
|
|
|
23
23
|
*/
|
|
24
24
|
runtimeImport?: string;
|
|
25
25
|
/**
|
|
26
|
-
* When set, the plugin generates a virtual index.html and
|
|
27
|
-
* so no hand-written index.html or main.
|
|
26
|
+
* When set, the plugin generates a virtual index.html and entry point
|
|
27
|
+
* so no hand-written index.html or main.ts is needed in the project.
|
|
28
28
|
*/
|
|
29
29
|
entry?: JalvinAppEntry;
|
|
30
30
|
}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAgCA,MAAM,WAAW,cAAc;IAC7B,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAC;IACb,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAgCA,MAAM,WAAW,cAAc;IAC7B,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,SAAS,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,KAAK,CAAC,EAAE,cAAc,CAAC;CACxB;AAkFD,wBAAgB,MAAM,CAAC,IAAI,GAAE,iBAAsB,GAAG,GAAG,CA2IxD;AAED,eAAe,MAAM,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
3
2
|
// @jalvin/vite-plugin — Vite plugin for the Jalvin language
|
|
4
3
|
//
|
|
@@ -23,141 +22,90 @@
|
|
|
23
22
|
// })],
|
|
24
23
|
// });
|
|
25
24
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
30
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
31
|
-
}
|
|
32
|
-
Object.defineProperty(o, k2, desc);
|
|
33
|
-
}) : (function(o, m, k, k2) {
|
|
34
|
-
if (k2 === undefined) k2 = k;
|
|
35
|
-
o[k2] = m[k];
|
|
36
|
-
}));
|
|
37
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
38
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
39
|
-
}) : function(o, v) {
|
|
40
|
-
o["default"] = v;
|
|
41
|
-
});
|
|
42
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
43
|
-
var ownKeys = function(o) {
|
|
44
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
45
|
-
var ar = [];
|
|
46
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
47
|
-
return ar;
|
|
48
|
-
};
|
|
49
|
-
return ownKeys(o);
|
|
50
|
-
};
|
|
51
|
-
return function (mod) {
|
|
52
|
-
if (mod && mod.__esModule) return mod;
|
|
53
|
-
var result = {};
|
|
54
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
55
|
-
__setModuleDefault(result, mod);
|
|
56
|
-
return result;
|
|
57
|
-
};
|
|
58
|
-
})();
|
|
59
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
60
|
-
exports.jalvin = jalvin;
|
|
61
|
-
const path = __importStar(require("node:path"));
|
|
62
|
-
const fs = __importStar(require("node:fs"));
|
|
63
|
-
const compiler_1 = require("@jalvin/compiler");
|
|
25
|
+
import * as path from "node:path";
|
|
26
|
+
import * as fs from "node:fs";
|
|
27
|
+
import { compile } from "@jalvin/compiler";
|
|
64
28
|
const VIRTUAL_ENTRY = "virtual:@jalvin/app-entry";
|
|
65
29
|
const VIRTUAL_ENTRY_RESOLVED = "\0virtual:@jalvin/app-entry";
|
|
66
30
|
function generateIndexHtml(title, scriptSrc) {
|
|
67
|
-
return `<!DOCTYPE html>
|
|
68
|
-
<html lang="en">
|
|
69
|
-
<head>
|
|
70
|
-
<meta charset="UTF-8" />
|
|
71
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
72
|
-
<title>${title}</title>
|
|
73
|
-
<style>
|
|
74
|
-
*, *::before, *::after { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
|
|
75
|
-
html, body { height: 100%; margin: 0; overflow-x: hidden; }
|
|
76
|
-
body {
|
|
77
|
-
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
|
|
78
|
-
background: #fafafa;
|
|
79
|
-
color: #1c1c1c;
|
|
80
|
-
-webkit-text-size-adjust: 100%;
|
|
81
|
-
text-size-adjust: 100%;
|
|
82
|
-
}
|
|
83
|
-
#root { height: 100%; }
|
|
84
|
-
button { touch-action: manipulation; }
|
|
85
|
-
input, textarea, select { font-size: 1rem; }
|
|
86
|
-
</style>
|
|
87
|
-
</head>
|
|
88
|
-
<body>
|
|
89
|
-
<div id="root"></div>
|
|
90
|
-
<script type="module" src="${scriptSrc}"></script>
|
|
91
|
-
</body>
|
|
31
|
+
return `<!DOCTYPE html>
|
|
32
|
+
<html lang="en">
|
|
33
|
+
<head>
|
|
34
|
+
<meta charset="UTF-8" />
|
|
35
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
36
|
+
<title>${title}</title>
|
|
37
|
+
<style>
|
|
38
|
+
*, *::before, *::after { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
|
|
39
|
+
html, body { height: 100%; margin: 0; overflow-x: hidden; }
|
|
40
|
+
body {
|
|
41
|
+
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
|
|
42
|
+
background: #fafafa;
|
|
43
|
+
color: #1c1c1c;
|
|
44
|
+
-webkit-text-size-adjust: 100%;
|
|
45
|
+
text-size-adjust: 100%;
|
|
46
|
+
}
|
|
47
|
+
#root { height: 100%; }
|
|
48
|
+
button { touch-action: manipulation; }
|
|
49
|
+
input, textarea, select { font-size: 1rem; }
|
|
50
|
+
</style>
|
|
51
|
+
</head>
|
|
52
|
+
<body>
|
|
53
|
+
<div id="root"></div>
|
|
54
|
+
<script type="module" src="${scriptSrc}"></script>
|
|
55
|
+
</body>
|
|
92
56
|
</html>`;
|
|
93
57
|
}
|
|
94
|
-
function generateEntryModule(entryFilePath, component) {
|
|
95
|
-
// Use React.createElement to avoid needing JSX in the virtual module itself.
|
|
58
|
+
function generateEntryModule(entryFilePath, component, runtimeImport) {
|
|
96
59
|
return [
|
|
97
|
-
`import
|
|
98
|
-
`import ReactDOM from "react-dom/client";`,
|
|
99
|
-
`import { WindowSizeClassProvider } from "@jalvin/runtime";`,
|
|
100
|
-
``,
|
|
60
|
+
`import { render } from ${JSON.stringify(runtimeImport)};`,
|
|
101
61
|
`const rootEl = document.getElementById("root");`,
|
|
102
62
|
`if (!rootEl) throw new Error("Missing #root element");`,
|
|
103
|
-
`const root = ReactDOM.createRoot(rootEl);`,
|
|
104
63
|
``,
|
|
105
64
|
`function showError(err) {`,
|
|
106
|
-
`
|
|
107
|
-
`
|
|
108
|
-
`
|
|
109
|
-
`
|
|
110
|
-
`
|
|
111
|
-
`
|
|
112
|
-
`
|
|
113
|
-
`
|
|
114
|
-
|
|
115
|
-
`
|
|
116
|
-
`
|
|
117
|
-
`
|
|
118
|
-
`
|
|
119
|
-
`
|
|
120
|
-
`
|
|
121
|
-
|
|
122
|
-
`
|
|
123
|
-
`
|
|
124
|
-
`
|
|
125
|
-
`
|
|
126
|
-
`
|
|
127
|
-
`
|
|
128
|
-
`
|
|
129
|
-
`
|
|
130
|
-
`
|
|
131
|
-
`
|
|
132
|
-
|
|
133
|
-
`
|
|
134
|
-
` fontSize: "13px",`,
|
|
135
|
-
` },`,
|
|
136
|
-
` },`,
|
|
137
|
-
` String(err?.stack ?? err)`,
|
|
138
|
-
` )`,
|
|
139
|
-
` )`,
|
|
140
|
-
` );`,
|
|
65
|
+
` rootEl.innerHTML = "";`,
|
|
66
|
+
` const container = document.createElement("div");`,
|
|
67
|
+
` container.style.fontFamily = "monospace";`,
|
|
68
|
+
` container.style.padding = "32px";`,
|
|
69
|
+
` container.style.background = "#1a1a1a";`,
|
|
70
|
+
` container.style.color = "#ff6b6b";`,
|
|
71
|
+
` container.style.minHeight = "100vh";`,
|
|
72
|
+
` container.style.boxSizing = "border-box";`,
|
|
73
|
+
``,
|
|
74
|
+
` const heading = document.createElement("h2");`,
|
|
75
|
+
` heading.style.margin = "0 0 16px";`,
|
|
76
|
+
` heading.style.fontSize = "18px";`,
|
|
77
|
+
` heading.style.color = "#ff4444";`,
|
|
78
|
+
` heading.innerText = "\u26a0\ufe0f Jalvin App Error";`,
|
|
79
|
+
` container.appendChild(heading);`,
|
|
80
|
+
``,
|
|
81
|
+
` const pre = document.createElement("pre");`,
|
|
82
|
+
` pre.style.whiteSpace = "pre-wrap";`,
|
|
83
|
+
` pre.style.wordBreak = "break-word";`,
|
|
84
|
+
` pre.style.background = "#111";`,
|
|
85
|
+
` pre.style.padding = "16px";`,
|
|
86
|
+
` pre.style.borderRadius = "6px";`,
|
|
87
|
+
` pre.style.color = "#ff9898";`,
|
|
88
|
+
` pre.style.fontSize = "13px";`,
|
|
89
|
+
` pre.innerText = String(err?.stack ?? err);`,
|
|
90
|
+
` container.appendChild(pre);`,
|
|
91
|
+
``,
|
|
92
|
+
` rootEl.appendChild(container);`,
|
|
141
93
|
`}`,
|
|
142
94
|
``,
|
|
143
95
|
`window.addEventListener('unhandledrejection', e => showError(e.reason));`,
|
|
144
96
|
`window.addEventListener('error', e => showError(e.error ?? e.message));`,
|
|
145
97
|
``,
|
|
146
98
|
`try {`,
|
|
147
|
-
` const
|
|
148
|
-
`
|
|
149
|
-
`
|
|
150
|
-
`
|
|
151
|
-
` React.createElement(${component})`,
|
|
152
|
-
` )`,
|
|
153
|
-
` )`,
|
|
154
|
-
` );`,
|
|
99
|
+
` const mod = await import(${JSON.stringify(entryFilePath)});`,
|
|
100
|
+
` const App = mod.${component};`,
|
|
101
|
+
` if (typeof App !== "function") throw new Error("Component ${component} not found in " + ${JSON.stringify(entryFilePath)});`,
|
|
102
|
+
` render(App, rootEl);`,
|
|
155
103
|
`} catch (err) {`,
|
|
156
104
|
` showError(err);`,
|
|
157
105
|
`}`,
|
|
158
106
|
].join("\n");
|
|
159
107
|
}
|
|
160
|
-
function jalvin(opts = {}) {
|
|
108
|
+
export function jalvin(opts = {}) {
|
|
161
109
|
const extensions = opts.extensions ?? [".jalvin"];
|
|
162
110
|
let viteConfig;
|
|
163
111
|
const isJalvinFile = (id) => extensions.some((ext) => id.endsWith(ext));
|
|
@@ -168,21 +116,23 @@ function jalvin(opts = {}) {
|
|
|
168
116
|
viteConfig = config;
|
|
169
117
|
},
|
|
170
118
|
config(cfg, { command }) {
|
|
171
|
-
// Ensure @jalvin/runtime (CJS) is pre-bundled by Vite's esbuild so the
|
|
172
|
-
// browser receives a proper ES module instead of bare CommonJS.
|
|
173
119
|
cfg.optimizeDeps = cfg.optimizeDeps ?? {};
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
cfg.
|
|
120
|
+
cfg.optimizeDeps.include = cfg.optimizeDeps.include ?? [];
|
|
121
|
+
cfg.optimizeDeps.exclude = cfg.optimizeDeps.exclude ?? [];
|
|
122
|
+
if (!cfg.optimizeDeps.include.includes("@jalvin/runtime"))
|
|
123
|
+
cfg.optimizeDeps.include.push("@jalvin/runtime");
|
|
124
|
+
if (!cfg.optimizeDeps.exclude.includes("@jalvin/ui"))
|
|
125
|
+
cfg.optimizeDeps.exclude.push("@jalvin/ui");
|
|
126
|
+
cfg.esbuild = cfg.esbuild ?? {};
|
|
127
|
+
cfg.esbuild.jsxFactory = "jalvinCreateElement";
|
|
128
|
+
cfg.esbuild.jsxFragment = "Fragment";
|
|
129
|
+
// Force a single runtime instance across all symlinked packages.
|
|
130
|
+
cfg.resolve = cfg.resolve ?? {};
|
|
131
|
+
cfg.resolve.dedupe = cfg.resolve.dedupe ?? [];
|
|
132
|
+
for (const pkg of ["@jalvin/runtime", "@jalvin/ui"]) {
|
|
133
|
+
if (!cfg.resolve.dedupe.includes(pkg))
|
|
134
|
+
cfg.resolve.dedupe.push(pkg);
|
|
135
|
+
}
|
|
186
136
|
if (!opts.entry)
|
|
187
137
|
return;
|
|
188
138
|
if (command === "build") {
|
|
@@ -204,12 +154,13 @@ function jalvin(opts = {}) {
|
|
|
204
154
|
return null;
|
|
205
155
|
const root = viteConfig?.root ?? process.cwd();
|
|
206
156
|
const entryFilePath = path.resolve(root, opts.entry.file);
|
|
207
|
-
|
|
157
|
+
const runtimeImport = opts.runtimeImport ?? "@jalvin/runtime";
|
|
158
|
+
return generateEntryModule(entryFilePath, opts.entry.component, runtimeImport);
|
|
208
159
|
},
|
|
209
160
|
async transform(code, id) {
|
|
210
161
|
if (!isJalvinFile(id))
|
|
211
162
|
return null;
|
|
212
|
-
const result =
|
|
163
|
+
const result = compile(code, id, {
|
|
213
164
|
emitTypes: opts.emitTypes ?? false,
|
|
214
165
|
runtimeImport: opts.runtimeImport ?? "@jalvin/runtime",
|
|
215
166
|
sourceRoot: viteConfig?.root ?? process.cwd(),
|
|
@@ -225,7 +176,6 @@ function jalvin(opts = {}) {
|
|
|
225
176
|
this.error(`Jalvin compilation failed:\n${errors}`);
|
|
226
177
|
return null;
|
|
227
178
|
}
|
|
228
|
-
// Surface warnings through Vite
|
|
229
179
|
for (const diag of result.diagnostics.items) {
|
|
230
180
|
if (diag.severity === "warning") {
|
|
231
181
|
this.warn({
|
|
@@ -234,26 +184,20 @@ function jalvin(opts = {}) {
|
|
|
234
184
|
});
|
|
235
185
|
}
|
|
236
186
|
}
|
|
237
|
-
// The compiled output is TSX with JSX syntax. We need to transform
|
|
238
|
-
// JSX → JS here because Vite's React plugin only handles .tsx/.jsx files.
|
|
239
|
-
// Use a dynamic import to work around vite's deprecated CJS type stub.
|
|
240
187
|
const { transformWithEsbuild } = await import("vite");
|
|
241
|
-
const
|
|
242
|
-
|
|
243
|
-
loader: "tsx",
|
|
188
|
+
const tsResult = await transformWithEsbuild(result.code, id + ".ts", {
|
|
189
|
+
loader: "ts",
|
|
244
190
|
target: "esnext",
|
|
191
|
+
jsx: "preserve",
|
|
245
192
|
});
|
|
246
193
|
return {
|
|
247
|
-
code:
|
|
248
|
-
map:
|
|
194
|
+
code: tsResult.code,
|
|
195
|
+
map: tsResult.map,
|
|
249
196
|
};
|
|
250
197
|
},
|
|
251
198
|
configureServer(server) {
|
|
252
199
|
if (!opts.entry)
|
|
253
200
|
return;
|
|
254
|
-
// Return a post-hook (runs after Vite's own middlewares).
|
|
255
|
-
// When no static index.html exists, Vite passes requests for "/" through,
|
|
256
|
-
// so this middleware catches them and serves the generated HTML.
|
|
257
201
|
return () => {
|
|
258
202
|
server.middlewares.use(async (req, res, next) => {
|
|
259
203
|
const url = req.url ?? "/";
|
|
@@ -262,7 +206,6 @@ function jalvin(opts = {}) {
|
|
|
262
206
|
return;
|
|
263
207
|
}
|
|
264
208
|
const root = viteConfig?.root ?? process.cwd();
|
|
265
|
-
// If a static index.html already exists, let Vite handle it normally.
|
|
266
209
|
if (fs.existsSync(path.join(root, "index.html"))) {
|
|
267
210
|
next();
|
|
268
211
|
return;
|
|
@@ -278,7 +221,6 @@ function jalvin(opts = {}) {
|
|
|
278
221
|
generateBundle(_, bundle) {
|
|
279
222
|
if (!opts.entry)
|
|
280
223
|
return;
|
|
281
|
-
// Find the entry chunk to reference in the emitted HTML.
|
|
282
224
|
const entryChunk = Object.values(bundle).find((c) => c.type === "chunk" && c.isEntry);
|
|
283
225
|
const scriptSrc = entryChunk ? `./${entryChunk.fileName}` : `./${VIRTUAL_ENTRY}`;
|
|
284
226
|
const title = opts.entry.title ?? "Jalvin App";
|
|
@@ -288,11 +230,10 @@ function jalvin(opts = {}) {
|
|
|
288
230
|
handleHotUpdate({ file, server }) {
|
|
289
231
|
if (!isJalvinFile(file))
|
|
290
232
|
return;
|
|
291
|
-
// Force full reload for now — incremental recompile is straightforward
|
|
292
233
|
server.ws.send({ type: "full-reload", path: file });
|
|
293
234
|
return [];
|
|
294
235
|
},
|
|
295
236
|
};
|
|
296
237
|
}
|
|
297
|
-
|
|
238
|
+
export default jalvin;
|
|
298
239
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|