@apex-stack/core 0.1.16 → 0.1.17
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/{build-UDFLTWY5.js → build-KJF4LJWP.js} +1 -1
- package/dist/{chunk-YO4UXWIY.js → chunk-7GPCNGGO.js} +30 -3
- package/dist/cli.js +3 -3
- package/dist/{dev-PQRMJ7Z4.js → dev-WS52CGSE.js} +1 -1
- package/dist/{server-GFQQABB4.js → server-5QQGUF3R.js} +1 -1
- package/dist/{start-EYEWMZXS.js → start-XYVCDMPJ.js} +1 -1
- package/package.json +2 -2
|
@@ -154,9 +154,26 @@ function storesInitialState(stores) {
|
|
|
154
154
|
|
|
155
155
|
// src/dev/renderPage.ts
|
|
156
156
|
import { renderComponent, stateIsland } from "@apex-stack/kit";
|
|
157
|
+
function escAttr(s) {
|
|
158
|
+
return String(s).replace(
|
|
159
|
+
/[&<>"]/g,
|
|
160
|
+
(c) => c === "&" ? "&" : c === "<" ? "<" : c === ">" ? ">" : """
|
|
161
|
+
);
|
|
162
|
+
}
|
|
163
|
+
function renderHead(head) {
|
|
164
|
+
const parts = [`<title>${head?.title ? escAttr(head.title) : "Apex JS"}</title>`];
|
|
165
|
+
for (const m of head?.meta ?? []) {
|
|
166
|
+
parts.push(`<meta ${Object.entries(m).map(([k, v]) => `${k}="${escAttr(v)}"`).join(" ")} />`);
|
|
167
|
+
}
|
|
168
|
+
for (const l of head?.link ?? []) {
|
|
169
|
+
parts.push(`<link ${Object.entries(l).map(([k, v]) => `${k}="${escAttr(v)}"`).join(" ")} />`);
|
|
170
|
+
}
|
|
171
|
+
return parts.join("\n ");
|
|
172
|
+
}
|
|
157
173
|
async function renderPage(opts) {
|
|
158
174
|
const mod = await opts.loadModule(opts.pageId);
|
|
159
175
|
const loaderData = await mod.loader({ params: opts.params ?? {}, url: opts.url }) ?? {};
|
|
176
|
+
const head = mod.head ? await mod.head({ data: loaderData, params: opts.params ?? {}, url: opts.url }) : void 0;
|
|
160
177
|
const stores = opts.stores ?? [];
|
|
161
178
|
const { html } = renderComponent({
|
|
162
179
|
template: mod.template,
|
|
@@ -175,11 +192,21 @@ async function renderPage(opts) {
|
|
|
175
192
|
pageId: opts.pageId,
|
|
176
193
|
clientHref: opts.clientHref,
|
|
177
194
|
storeIds: stores.map((s) => s.id),
|
|
178
|
-
appCss: opts.appCss
|
|
195
|
+
appCss: opts.appCss,
|
|
196
|
+
headTags: renderHead(head)
|
|
179
197
|
});
|
|
180
198
|
return opts.transformHtml ? opts.transformHtml(opts.url, doc) : doc;
|
|
181
199
|
}
|
|
182
|
-
function shell({
|
|
200
|
+
function shell({
|
|
201
|
+
body,
|
|
202
|
+
island,
|
|
203
|
+
css,
|
|
204
|
+
pageId,
|
|
205
|
+
clientHref,
|
|
206
|
+
storeIds = [],
|
|
207
|
+
appCss,
|
|
208
|
+
headTags = "<title>Apex JS</title>"
|
|
209
|
+
}) {
|
|
183
210
|
const storeImports = storeIds.map((id, i) => ` import __s${i} from ${JSON.stringify(id)}`).join("\n");
|
|
184
211
|
const storeRegs = storeIds.map((_, i) => ` Alpine.store(__s${i}.name, __s${i}.factory())`).join("\n");
|
|
185
212
|
const clientScript = clientHref ? `<script type="module" src="${clientHref}"></script>` : `<script type="module">
|
|
@@ -196,7 +223,7 @@ ${storeRegs ? `${storeRegs}
|
|
|
196
223
|
<head>
|
|
197
224
|
<meta charset="utf-8" />
|
|
198
225
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
199
|
-
|
|
226
|
+
${headTags}
|
|
200
227
|
<style>${css}</style>
|
|
201
228
|
</head>
|
|
202
229
|
<body>
|
package/dist/cli.js
CHANGED
|
@@ -109,9 +109,9 @@ var main = defineCommand2({
|
|
|
109
109
|
},
|
|
110
110
|
subCommands: {
|
|
111
111
|
new: newCommand,
|
|
112
|
-
dev: () => import("./dev-
|
|
113
|
-
build: () => import("./build-
|
|
114
|
-
start: () => import("./start-
|
|
112
|
+
dev: () => import("./dev-WS52CGSE.js").then((m) => m.devCommand),
|
|
113
|
+
build: () => import("./build-KJF4LJWP.js").then((m) => m.buildCommand),
|
|
114
|
+
start: () => import("./start-XYVCDMPJ.js").then((m) => m.startCommand),
|
|
115
115
|
make: () => import("./make-62PPHZQY.js").then((m) => m.makeCommand),
|
|
116
116
|
migrate: () => import("./migrate-NOGFOFV2.js").then((m) => m.migrateCommand),
|
|
117
117
|
mcp: () => import("./mcp-DL4J6JFJ.js").then((m) => m.mcpCommand)
|
|
@@ -20,7 +20,7 @@ var devCommand = defineCommand({
|
|
|
20
20
|
process.stdout.write(banner());
|
|
21
21
|
const sp = spinner(`Starting dev server${args.islands ? " (islands mode)" : ""}\u2026`);
|
|
22
22
|
try {
|
|
23
|
-
const { startDevServer } = await import("./server-
|
|
23
|
+
const { startDevServer } = await import("./server-5QQGUF3R.js");
|
|
24
24
|
const { port: actual } = await startDevServer({ root, port, islands: Boolean(args.islands) });
|
|
25
25
|
sp.succeed("Dev server ready");
|
|
26
26
|
ready([
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@apex-stack/core",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.17",
|
|
4
4
|
"description": "The full-stack meta-framework for Alpine.js — CLI and runtime",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"vite": "^6.0.7",
|
|
47
47
|
"zod": "^4.4.3",
|
|
48
48
|
"@apex-stack/kit": "0.1.4",
|
|
49
|
-
"@apex-stack/vite": "0.1.
|
|
49
|
+
"@apex-stack/vite": "0.1.5"
|
|
50
50
|
},
|
|
51
51
|
"peerDependencies": {
|
|
52
52
|
"alpinejs": "^3.14.0"
|