mono-jsx 0.10.0-beta.6 → 0.10.0-beta.7
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/jsx-runtime.mjs +6 -5
- package/package.json +1 -1
- package/types/jsx-runtime.d.ts +1 -0
- package/types/jsx.d.ts +30 -2
package/jsx-runtime.mjs
CHANGED
|
@@ -16,7 +16,7 @@ var $setup = /* @__PURE__ */ Symbol.for("mono.setup");
|
|
|
16
16
|
var $rpc = /* @__PURE__ */ Symbol.for("mono.rpc");
|
|
17
17
|
|
|
18
18
|
// version.ts
|
|
19
|
-
var VERSION = "0.10.0-beta.
|
|
19
|
+
var VERSION = "0.10.0-beta.7";
|
|
20
20
|
|
|
21
21
|
// runtime/index.ts
|
|
22
22
|
var EVENT = 1;
|
|
@@ -223,6 +223,7 @@ var IdGen = class extends Map {
|
|
|
223
223
|
var cdn = "https://raw.esm.sh";
|
|
224
224
|
var encoder = new TextEncoder();
|
|
225
225
|
var voidTags = new Set("area,base,br,col,embed,hr,img,input,keygen,link,meta,param,source,track,wbr".split(","));
|
|
226
|
+
var defaultMetadata = { viewport: "width=device-width, initial-scale=1.0" };
|
|
226
227
|
var cache = /* @__PURE__ */ new Map();
|
|
227
228
|
var componentsMap = new IdGen();
|
|
228
229
|
var subtle = crypto.subtle;
|
|
@@ -843,12 +844,12 @@ async function renderNode(rc, node, stripSlotProp) {
|
|
|
843
844
|
}
|
|
844
845
|
metadata = await getMetadata.call(createInvokeScope(request, context, session));
|
|
845
846
|
}
|
|
846
|
-
let buf = "";
|
|
847
|
-
for (const [key, value] of Object.entries(Object.assign(
|
|
847
|
+
let buf = '<meta charset="utf-8">';
|
|
848
|
+
for (const [key, value] of Object.entries(Object.assign(defaultMetadata, rc.metadata, metadata))) {
|
|
848
849
|
if (key === "title") {
|
|
849
|
-
buf += "<title>" + value + "</title>";
|
|
850
|
+
buf += "<title>" + escapeHTML(value) + "</title>";
|
|
850
851
|
} else {
|
|
851
|
-
buf += "<meta name=" + toAttrStringLit(key) + " content=" + toAttrStringLit(value) + ">";
|
|
852
|
+
buf += "<meta " + (key.startsWith("og:") ? "property" : "name") + "=" + toAttrStringLit(key) + " content=" + toAttrStringLit(value) + ">";
|
|
852
853
|
}
|
|
853
854
|
}
|
|
854
855
|
write(buf);
|
package/package.json
CHANGED
package/types/jsx-runtime.d.ts
CHANGED
package/types/jsx.d.ts
CHANGED
|
@@ -56,10 +56,38 @@ export type VNode = readonly [
|
|
|
56
56
|
$vnode: symbol,
|
|
57
57
|
];
|
|
58
58
|
|
|
59
|
+
export type Metadata = {
|
|
60
|
+
title?: string;
|
|
61
|
+
description?: string;
|
|
62
|
+
keywords?: string;
|
|
63
|
+
robots?: string;
|
|
64
|
+
canonical?: string;
|
|
65
|
+
author?: string;
|
|
66
|
+
"og:title"?: string;
|
|
67
|
+
"og:description"?: string;
|
|
68
|
+
"og:image"?: string;
|
|
69
|
+
"og:image:type"?: string;
|
|
70
|
+
"og:image:width"?: string;
|
|
71
|
+
"og:image:height"?: string;
|
|
72
|
+
"og:image:alt"?: string;
|
|
73
|
+
"og:url"?: string;
|
|
74
|
+
"og:type"?: string;
|
|
75
|
+
"og:locale"?: string;
|
|
76
|
+
"og:site_name"?: string;
|
|
77
|
+
"twitter:card"?: "summary_large_image" | "summary" | "app" | "player";
|
|
78
|
+
"twitter:title"?: string;
|
|
79
|
+
"twitter:description"?: string;
|
|
80
|
+
"twitter:image"?: string;
|
|
81
|
+
"twitter:imagewidth"?: string;
|
|
82
|
+
"twitter:imageheight"?: string;
|
|
83
|
+
"twitter:site"?: `@${string}`;
|
|
84
|
+
[key: string]: string | undefined;
|
|
85
|
+
};
|
|
86
|
+
|
|
59
87
|
export interface ComponentConfig {
|
|
60
88
|
FormHandler?: ComponentType<FormData>;
|
|
61
|
-
getMetadata?: () => MaybePromise<
|
|
62
|
-
metadata?:
|
|
89
|
+
getMetadata?: () => MaybePromise<Metadata>;
|
|
90
|
+
metadata?: Metadata;
|
|
63
91
|
dynamic?: boolean;
|
|
64
92
|
rendering?: string;
|
|
65
93
|
}
|