Spaces:
Sleeping
Sleeping
function noop() { | |
} | |
function run(fn) { | |
return fn(); | |
} | |
function blank_object() { | |
return /* @__PURE__ */ Object.create(null); | |
} | |
function run_all(fns) { | |
fns.forEach(run); | |
} | |
function safe_not_equal(a, b) { | |
return a != a ? b == b : a !== b || a && typeof a === "object" || typeof a === "function"; | |
} | |
function subscribe(store, ...callbacks) { | |
if (store == null) { | |
for (const callback of callbacks) { | |
callback(void 0); | |
} | |
return noop; | |
} | |
const unsub = store.subscribe(...callbacks); | |
return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub; | |
} | |
let current_component; | |
function set_current_component(component) { | |
current_component = component; | |
} | |
function get_current_component() { | |
if (!current_component) | |
throw new Error("Function called outside component initialization"); | |
return current_component; | |
} | |
function setContext(key, context) { | |
get_current_component().$$.context.set(key, context); | |
return context; | |
} | |
function getContext(key) { | |
return get_current_component().$$.context.get(key); | |
} | |
const ATTR_REGEX = /[&"]/g; | |
const CONTENT_REGEX = /[&<]/g; | |
function escape(value, is_attr = false) { | |
const str = String(value); | |
const pattern = is_attr ? ATTR_REGEX : CONTENT_REGEX; | |
pattern.lastIndex = 0; | |
let escaped = ""; | |
let last = 0; | |
while (pattern.test(str)) { | |
const i = pattern.lastIndex - 1; | |
const ch = str[i]; | |
escaped += str.substring(last, i) + (ch === "&" ? "&" : ch === '"' ? """ : "<"); | |
last = i + 1; | |
} | |
return escaped + str.substring(last); | |
} | |
const missing_component = { | |
$$render: () => "" | |
}; | |
function validate_component(component, name) { | |
if (!component || !component.$$render) { | |
if (name === "svelte:component") | |
name += " this={...}"; | |
throw new Error( | |
`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules. Otherwise you may need to fix a <${name}>.` | |
); | |
} | |
return component; | |
} | |
let on_destroy; | |
function create_ssr_component(fn) { | |
function $$render(result, props, bindings, slots, context) { | |
const parent_component = current_component; | |
const $$ = { | |
on_destroy, | |
context: new Map(context || (parent_component ? parent_component.$$.context : [])), | |
// these will be immediately discarded | |
on_mount: [], | |
before_update: [], | |
after_update: [], | |
callbacks: blank_object() | |
}; | |
set_current_component({ $$ }); | |
const html = fn(result, props, bindings, slots); | |
set_current_component(parent_component); | |
return html; | |
} | |
return { | |
render: (props = {}, { $$slots = {}, context = /* @__PURE__ */ new Map() } = {}) => { | |
on_destroy = []; | |
const result = { title: "", head: "", css: /* @__PURE__ */ new Set() }; | |
const html = $$render(result, props, {}, $$slots, context); | |
run_all(on_destroy); | |
return { | |
html, | |
css: { | |
code: Array.from(result.css).map((css) => css.code).join("\n"), | |
map: null | |
// TODO | |
}, | |
head: result.title + result.head | |
}; | |
}, | |
$$render | |
}; | |
} | |
export { setContext as a, subscribe as b, create_ssr_component as c, escape as e, getContext as g, missing_component as m, noop as n, safe_not_equal as s, validate_component as v }; | |
//# sourceMappingURL=ssr-jUwReIMa.js.map | |