mirror of https://github.com/sveltejs/svelte
parent
98e8b635fa
commit
a03b3f3014
@ -0,0 +1 @@
|
||||
import './types/index.js';
|
||||
@ -0,0 +1,28 @@
|
||||
import { branch, effect_root } from "../reactivity/effects";
|
||||
import { push_renderer } from "./state";
|
||||
|
||||
/**
|
||||
* @param {*} renderer
|
||||
* @returns
|
||||
*/
|
||||
export function createRenderer(renderer) {
|
||||
return {
|
||||
...renderer,
|
||||
/**
|
||||
* @param {*} Component
|
||||
* @param {*} options
|
||||
*/
|
||||
render(Component, { target, props }) {
|
||||
var cleanup = push_renderer(renderer);
|
||||
const unmount = effect_root(() => {
|
||||
var anchor = renderer.createComment('');
|
||||
renderer.insert(target, anchor, null);
|
||||
branch(() => {
|
||||
Component(anchor, props);
|
||||
});
|
||||
});
|
||||
cleanup();
|
||||
return unmount;
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,20 @@
|
||||
/**
|
||||
* @type {any}
|
||||
*/
|
||||
let renderer = null;
|
||||
|
||||
export function get_renderer() {
|
||||
return renderer;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {any} $renderer
|
||||
*/
|
||||
export function push_renderer($renderer) {
|
||||
let old_renderer = renderer;
|
||||
renderer = $renderer;
|
||||
return () => {
|
||||
renderer = old_renderer;
|
||||
};
|
||||
}
|
||||
@ -0,0 +1 @@
|
||||
export { createRenderer } from '../internal/client/custom-renderer/index.js';
|
||||
Loading…
Reference in new issue