blade
Version:
React at the edge.
32 lines (31 loc) • 1.08 kB
JavaScript
//#region ../../node_modules/hono/dist/utils/html.js
var HtmlEscapedCallbackPhase = {
Stringify: 1,
BeforeStream: 2,
Stream: 3
};
var raw = (value, callbacks) => {
const escapedString = new String(value);
escapedString.isEscaped = true;
escapedString.callbacks = callbacks;
return escapedString;
};
var resolveCallback = async (str, phase, preserveCallbacks, context, buffer) => {
if (typeof str === "object" && !(str instanceof String)) {
if (!(str instanceof Promise)) str = str.toString();
if (str instanceof Promise) str = await str;
}
const callbacks = str.callbacks;
if (!callbacks?.length) return Promise.resolve(str);
if (buffer) buffer[0] += str;
else buffer = [str];
const resStr = Promise.all(callbacks.map((c) => c({
phase,
buffer,
context
}))).then((res) => Promise.all(res.filter(Boolean).map((str2) => resolveCallback(str2, phase, false, context, buffer))).then(() => buffer[0]));
if (preserveCallbacks) return raw(await resStr, callbacks);
else return resStr;
};
//#endregion
export { resolveCallback as n, HtmlEscapedCallbackPhase as t };