kiru 0.44.4 → 0.45.0
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/README.md +3 -3
- package/dist/appContext.d.ts +38 -0
- package/dist/appContext.d.ts.map +1 -0
- package/dist/appContext.js +143 -0
- package/dist/appContext.js.map +1 -0
- package/dist/cloneVNode.d.ts +2 -0
- package/dist/cloneVNode.d.ts.map +1 -0
- package/dist/cloneVNode.js +14 -0
- package/dist/cloneVNode.js.map +1 -0
- package/dist/constants.d.ts +31 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +127 -0
- package/dist/constants.js.map +1 -0
- package/dist/context.d.ts +3 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +50 -0
- package/dist/context.js.map +1 -0
- package/dist/dom.d.ts +8 -0
- package/dist/dom.d.ts.map +1 -0
- package/dist/dom.js +582 -0
- package/dist/dom.js.map +1 -0
- package/dist/element.d.ts +6 -0
- package/dist/element.d.ts.map +1 -0
- package/dist/element.js +41 -0
- package/dist/element.js.map +1 -0
- package/dist/env.d.ts +2 -0
- package/dist/env.d.ts.map +1 -0
- package/dist/env.js +6 -0
- package/dist/env.js.map +1 -0
- package/dist/error.d.ts +19 -0
- package/dist/error.d.ts.map +1 -0
- package/dist/error.js +63 -0
- package/dist/error.js.map +1 -0
- package/dist/flags.d.ts +6 -0
- package/dist/flags.d.ts.map +1 -0
- package/dist/flags.js +16 -0
- package/dist/flags.js.map +1 -0
- package/dist/form/index.d.ts +4 -0
- package/dist/form/index.d.ts.map +1 -0
- package/dist/form/index.js +509 -0
- package/dist/form/index.js.map +1 -0
- package/dist/form/types.d.ts +121 -0
- package/dist/form/types.d.ts.map +1 -0
- package/dist/form/types.js +2 -0
- package/dist/form/types.js.map +1 -0
- package/dist/form/utils.d.ts +3 -0
- package/dist/form/utils.d.ts.map +1 -0
- package/dist/form/utils.js +16 -0
- package/dist/form/utils.js.map +1 -0
- package/dist/generateId.d.ts +8 -0
- package/dist/generateId.d.ts.map +1 -0
- package/dist/generateId.js +15 -0
- package/dist/generateId.js.map +1 -0
- package/dist/globalContext.d.ts +37 -0
- package/dist/globalContext.d.ts.map +1 -0
- package/dist/globalContext.js +85 -0
- package/dist/globalContext.js.map +1 -0
- package/dist/globals.d.ts +16 -0
- package/dist/globals.d.ts.map +1 -0
- package/dist/globals.js +15 -0
- package/dist/globals.js.map +1 -0
- package/dist/hmr.d.ts +32 -0
- package/dist/hmr.d.ts.map +1 -0
- package/dist/hmr.js +125 -0
- package/dist/hmr.js.map +1 -0
- package/dist/hooks/index.d.ts +15 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +15 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/useAsync.d.ts +29 -0
- package/dist/hooks/useAsync.d.ts.map +1 -0
- package/dist/hooks/useAsync.js +96 -0
- package/dist/hooks/useAsync.js.map +1 -0
- package/dist/hooks/useCallback.d.ts +7 -0
- package/dist/hooks/useCallback.d.ts.map +1 -0
- package/dist/hooks/useCallback.js +29 -0
- package/dist/hooks/useCallback.js.map +1 -0
- package/dist/hooks/useContext.d.ts +7 -0
- package/dist/hooks/useContext.d.ts.map +1 -0
- package/dist/hooks/useContext.js +59 -0
- package/dist/hooks/useContext.js.map +1 -0
- package/dist/hooks/useEffect.d.ts +8 -0
- package/dist/hooks/useEffect.d.ts.map +1 -0
- package/dist/hooks/useEffect.js +33 -0
- package/dist/hooks/useEffect.js.map +1 -0
- package/dist/hooks/useEffectEvent.d.ts +8 -0
- package/dist/hooks/useEffectEvent.d.ts.map +1 -0
- package/dist/hooks/useEffectEvent.js +22 -0
- package/dist/hooks/useEffectEvent.js.map +1 -0
- package/dist/hooks/useId.d.ts +8 -0
- package/dist/hooks/useId.d.ts.map +1 -0
- package/dist/hooks/useId.js +35 -0
- package/dist/hooks/useId.js.map +1 -0
- package/dist/hooks/useLayoutEffect.d.ts +8 -0
- package/dist/hooks/useLayoutEffect.d.ts.map +1 -0
- package/dist/hooks/useLayoutEffect.js +33 -0
- package/dist/hooks/useLayoutEffect.js.map +1 -0
- package/dist/hooks/useMemo.d.ts +8 -0
- package/dist/hooks/useMemo.d.ts.map +1 -0
- package/dist/hooks/useMemo.js +30 -0
- package/dist/hooks/useMemo.js.map +1 -0
- package/dist/hooks/useReducer.d.ts +7 -0
- package/dist/hooks/useReducer.d.ts.map +1 -0
- package/dist/hooks/useReducer.js +44 -0
- package/dist/hooks/useReducer.js.map +1 -0
- package/dist/hooks/useRef.d.ts +10 -0
- package/dist/hooks/useRef.d.ts.map +1 -0
- package/dist/hooks/useRef.js +28 -0
- package/dist/hooks/useRef.js.map +1 -0
- package/dist/hooks/useState.d.ts +7 -0
- package/dist/hooks/useState.d.ts.map +1 -0
- package/dist/hooks/useState.js +54 -0
- package/dist/hooks/useState.js.map +1 -0
- package/dist/hooks/useSyncExternalStore.d.ts +8 -0
- package/dist/hooks/useSyncExternalStore.d.ts.map +1 -0
- package/dist/hooks/useSyncExternalStore.js +50 -0
- package/dist/hooks/useSyncExternalStore.js.map +1 -0
- package/dist/hooks/useViewTransition.d.ts +10 -0
- package/dist/hooks/useViewTransition.d.ts.map +1 -0
- package/dist/hooks/useViewTransition.js +28 -0
- package/dist/hooks/useViewTransition.js.map +1 -0
- package/dist/hooks/utils.d.ts +69 -0
- package/dist/hooks/utils.d.ts.map +1 -0
- package/dist/hooks/utils.js +163 -0
- package/dist/hooks/utils.js.map +1 -0
- package/dist/hydration.d.ts +17 -0
- package/dist/hydration.d.ts.map +1 -0
- package/dist/hydration.js +59 -0
- package/dist/hydration.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +40 -0
- package/dist/index.js.map +1 -0
- package/dist/jsx.d.ts +6 -0
- package/dist/jsx.d.ts.map +1 -0
- package/dist/jsx.js +8 -0
- package/dist/jsx.js.map +1 -0
- package/dist/lazy.d.ts +11 -0
- package/dist/lazy.d.ts.map +1 -0
- package/dist/lazy.js +177 -0
- package/dist/lazy.js.map +1 -0
- package/dist/memo.d.ts +9 -0
- package/dist/memo.d.ts.map +1 -0
- package/dist/memo.js +25 -0
- package/dist/memo.js.map +1 -0
- package/dist/portal.d.ts +10 -0
- package/dist/portal.d.ts.map +1 -0
- package/dist/portal.js +34 -0
- package/dist/portal.js.map +1 -0
- package/dist/profiling.d.ts +26 -0
- package/dist/profiling.d.ts.map +1 -0
- package/dist/profiling.js +83 -0
- package/dist/profiling.js.map +1 -0
- package/dist/props.d.ts +4 -0
- package/dist/props.d.ts.map +1 -0
- package/dist/props.js +27 -0
- package/dist/props.js.map +1 -0
- package/dist/reconciler.d.ts +4 -0
- package/dist/reconciler.d.ts.map +1 -0
- package/dist/reconciler.js +466 -0
- package/dist/reconciler.js.map +1 -0
- package/dist/renderToString.d.ts +2 -0
- package/dist/renderToString.d.ts.map +1 -0
- package/dist/renderToString.js +74 -0
- package/dist/renderToString.js.map +1 -0
- package/dist/router/index.d.ts +3 -0
- package/dist/router/index.d.ts.map +1 -0
- package/dist/router/index.js +3 -0
- package/dist/router/index.js.map +1 -0
- package/dist/router/route.d.ts +46 -0
- package/dist/router/route.d.ts.map +1 -0
- package/dist/router/route.js +8 -0
- package/dist/router/route.js.map +1 -0
- package/dist/router/router.d.ts +62 -0
- package/dist/router/router.d.ts.map +1 -0
- package/dist/router/router.js +178 -0
- package/dist/router/router.js.map +1 -0
- package/dist/router/routerUtils.d.ts +5 -0
- package/dist/router/routerUtils.d.ts.map +1 -0
- package/dist/router/routerUtils.js +39 -0
- package/dist/router/routerUtils.js.map +1 -0
- package/dist/scheduler.d.ts +14 -0
- package/dist/scheduler.d.ts.map +1 -0
- package/dist/scheduler.js +457 -0
- package/dist/scheduler.js.map +1 -0
- package/dist/signals/base.d.ts +36 -0
- package/dist/signals/base.d.ts.map +1 -0
- package/dist/signals/base.js +205 -0
- package/dist/signals/base.js.map +1 -0
- package/dist/signals/computed.d.ts +16 -0
- package/dist/signals/computed.d.ts.map +1 -0
- package/dist/signals/computed.js +116 -0
- package/dist/signals/computed.js.map +1 -0
- package/dist/signals/effect.d.ts +18 -0
- package/dist/signals/effect.d.ts.map +1 -0
- package/dist/signals/effect.js +43 -0
- package/dist/signals/effect.js.map +1 -0
- package/dist/signals/globals.d.ts +9 -0
- package/dist/signals/globals.d.ts.map +1 -0
- package/dist/signals/globals.js +9 -0
- package/dist/signals/globals.js.map +1 -0
- package/dist/signals/index.d.ts +12 -0
- package/dist/signals/index.d.ts.map +1 -0
- package/dist/signals/index.js +12 -0
- package/dist/signals/index.js.map +1 -0
- package/dist/signals/jsx.d.ts +16 -0
- package/dist/signals/jsx.d.ts.map +1 -0
- package/dist/signals/jsx.js +11 -0
- package/dist/signals/jsx.js.map +1 -0
- package/dist/signals/types.d.ts +9 -0
- package/dist/signals/types.d.ts.map +1 -0
- package/dist/signals/types.js +2 -0
- package/dist/signals/types.js.map +1 -0
- package/dist/signals/utils.d.ts +4 -0
- package/dist/signals/utils.d.ts.map +1 -0
- package/dist/signals/utils.js +12 -0
- package/dist/signals/utils.js.map +1 -0
- package/dist/signals/watch.d.ts +24 -0
- package/dist/signals/watch.d.ts.map +1 -0
- package/dist/signals/watch.js +104 -0
- package/dist/signals/watch.js.map +1 -0
- package/dist/ssr/client.d.ts +4 -0
- package/dist/ssr/client.d.ts.map +1 -0
- package/dist/ssr/client.js +12 -0
- package/dist/ssr/client.js.map +1 -0
- package/dist/ssr/hydrationBoundary.d.ts +27 -0
- package/dist/ssr/hydrationBoundary.d.ts.map +1 -0
- package/dist/ssr/hydrationBoundary.js +30 -0
- package/dist/ssr/hydrationBoundary.js.map +1 -0
- package/dist/ssr/index.d.ts +2 -0
- package/dist/ssr/index.d.ts.map +1 -0
- package/dist/ssr/index.js +2 -0
- package/dist/ssr/index.js.map +1 -0
- package/dist/ssr/server.d.ts +3 -0
- package/dist/ssr/server.d.ts.map +1 -0
- package/dist/ssr/server.js +101 -0
- package/dist/ssr/server.js.map +1 -0
- package/dist/store.d.ts +28 -0
- package/dist/store.d.ts.map +1 -0
- package/dist/store.js +166 -0
- package/dist/store.js.map +1 -0
- package/dist/swr.d.ts +74 -0
- package/dist/swr.d.ts.map +1 -0
- package/dist/swr.js +228 -0
- package/dist/swr.js.map +1 -0
- package/dist/transition.d.ts +18 -0
- package/dist/transition.d.ts.map +1 -0
- package/dist/transition.js +48 -0
- package/dist/transition.js.map +1 -0
- package/dist/types.d.ts +143 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.dom.d.ts +920 -0
- package/dist/types.dom.d.ts.map +1 -0
- package/dist/types.dom.js +2 -0
- package/dist/types.dom.js.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/types.utils.d.ts +41 -0
- package/dist/types.utils.d.ts.map +1 -0
- package/dist/types.utils.js +2 -0
- package/dist/types.utils.js.map +1 -0
- package/dist/utils.d.ts +61 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +478 -0
- package/dist/utils.js.map +1 -0
- package/dist/warning.d.ts +2 -0
- package/dist/warning.d.ts.map +1 -0
- package/dist/warning.js +4 -0
- package/dist/warning.js.map +1 -0
- package/package.json +1 -1
- package/src/appContext.ts +7 -7
- package/src/cloneVNode.ts +1 -1
- package/src/constants.ts +9 -9
- package/src/context.ts +7 -7
- package/src/dom.ts +13 -15
- package/src/element.ts +4 -4
- package/src/error.ts +11 -13
- package/src/globalContext.ts +6 -10
- package/src/globals.ts +3 -3
- package/src/hmr.ts +4 -4
- package/src/hooks/useContext.ts +5 -5
- package/src/hooks/useId.ts +1 -1
- package/src/hooks/useReducer.ts +1 -1
- package/src/hooks/useRef.ts +4 -4
- package/src/hooks/useState.ts +4 -4
- package/src/hooks/useSyncExternalStore.ts +2 -2
- package/src/hooks/utils.ts +7 -9
- package/src/index.ts +4 -4
- package/src/jsx.ts +2 -2
- package/src/lazy.ts +11 -11
- package/src/memo.ts +1 -1
- package/src/portal.ts +4 -4
- package/src/props.ts +5 -7
- package/src/reconciler.ts +6 -6
- package/src/renderToString.ts +1 -1
- package/src/router/route.ts +1 -1
- package/src/router/router.ts +4 -4
- package/src/scheduler.ts +14 -14
- package/src/signals/base.ts +1 -1
- package/src/signals/types.ts +1 -1
- package/src/signals/watch.ts +2 -2
- package/src/ssr/hydrationBoundary.ts +1 -1
- package/src/ssr/server.ts +1 -1
- package/src/store.ts +7 -7
- package/src/swr.ts +2 -2
- package/src/types.dom.ts +1 -1
- package/src/types.ts +13 -13
- package/src/types.utils.ts +5 -5
- package/src/utils.ts +7 -10
- package/src/warning.ts +1 -1
package/dist/jsx.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { createElement, Fragment } from "./element.js";
|
|
2
|
+
export { jsx, jsx as jsxs, jsx as jsxDEV, Fragment };
|
|
3
|
+
function jsx(type, { children, ...props } = {}) {
|
|
4
|
+
if (!children)
|
|
5
|
+
return createElement(type, props);
|
|
6
|
+
return createElement(type, props, children);
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=jsx.js.map
|
package/dist/jsx.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsx.js","sourceRoot":"","sources":["../src/jsx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAEtD,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,EAAE,GAAG,IAAI,MAAM,EAAE,QAAQ,EAAE,CAAA;AAEpD,SAAS,GAAG,CACV,IAAwB,EACxB,EAAE,QAAQ,EAAE,GAAG,KAAK,KAAK,EAAiC;IAE1D,IAAI,CAAC,QAAQ;QAAE,OAAO,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IAChD,OAAO,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;AAC7C,CAAC"}
|
package/dist/lazy.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
type FCModule = {
|
|
2
|
+
default: Kiru.FC<any>;
|
|
3
|
+
};
|
|
4
|
+
type LazyImportValue = Kiru.FC<any> | FCModule;
|
|
5
|
+
type InferLazyImportProps<T extends LazyImportValue> = T extends FCModule ? Kiru.InferProps<T["default"]> : Kiru.InferProps<T>;
|
|
6
|
+
type LazyComponentProps<T extends LazyImportValue> = InferLazyImportProps<T> & {
|
|
7
|
+
fallback?: JSX.Element;
|
|
8
|
+
};
|
|
9
|
+
export declare function lazy<T extends LazyImportValue>(componentPromiseFn: () => Promise<T>): Kiru.FC<LazyComponentProps<T>>;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=lazy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lazy.d.ts","sourceRoot":"","sources":["../src/lazy.ts"],"names":[],"mappings":"AAeA,KAAK,QAAQ,GAAG;IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;CAAE,CAAA;AACzC,KAAK,eAAe,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAA;AAC9C,KAAK,oBAAoB,CAAC,CAAC,SAAS,eAAe,IAAI,CAAC,SAAS,QAAQ,GACrE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAC7B,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;AAQtB,KAAK,kBAAkB,CAAC,CAAC,SAAS,eAAe,IAAI,oBAAoB,CAAC,CAAC,CAAC,GAAG;IAC7E,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;CACvB,CAAA;AAuDD,wBAAgB,IAAI,CAAC,CAAC,SAAS,eAAe,EAC5C,kBAAkB,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnC,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CA4IhC"}
|
package/dist/lazy.js
ADDED
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import { createElement } from "./element.js";
|
|
2
|
+
import { __DEV__ } from "./env.js";
|
|
3
|
+
import { KiruError } from "./error.js";
|
|
4
|
+
import { node, renderMode } from "./globals.js";
|
|
5
|
+
import { useContext } from "./hooks/useContext.js";
|
|
6
|
+
import { useRef } from "./hooks/useRef.js";
|
|
7
|
+
import { useAppContext, useRequestUpdate } from "./hooks/utils.js";
|
|
8
|
+
import { hydrationStack } from "./hydration.js";
|
|
9
|
+
import { HYDRATION_BOUNDARY_MARKER, HydrationBoundaryContext, } from "./ssr/hydrationBoundary.js";
|
|
10
|
+
import { noop } from "./utils.js";
|
|
11
|
+
const lazyCache = "window" in globalThis
|
|
12
|
+
? // @ts-ignore - we're shamefully polluting the global scope here and hiding it 🥲
|
|
13
|
+
(window.__KAIOKEN_LAZY_CACHE ?? (window.__KAIOKEN_LAZY_CACHE = new Map()))
|
|
14
|
+
: new Map();
|
|
15
|
+
function consumeHydrationBoundaryChildren(parentNode) {
|
|
16
|
+
const boundaryStart = hydrationStack.currentChild();
|
|
17
|
+
if (boundaryStart?.nodeType !== Node.COMMENT_NODE ||
|
|
18
|
+
boundaryStart.nodeValue !== HYDRATION_BOUNDARY_MARKER) {
|
|
19
|
+
throw new KiruError({
|
|
20
|
+
message: "Invalid HydrationBoundary node. This is likely a bug in Kaioken.",
|
|
21
|
+
fatal: true,
|
|
22
|
+
vNode: parentNode,
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
const parent = boundaryStart.parentElement;
|
|
26
|
+
const childNodes = [];
|
|
27
|
+
const isBoundaryEnd = (n) => {
|
|
28
|
+
return (n.nodeType === Node.COMMENT_NODE &&
|
|
29
|
+
n.nodeValue === "/" + HYDRATION_BOUNDARY_MARKER);
|
|
30
|
+
};
|
|
31
|
+
let n = boundaryStart.nextSibling;
|
|
32
|
+
boundaryStart.remove();
|
|
33
|
+
const startIndex = hydrationStack.childIdxStack[hydrationStack.childIdxStack.length - 1];
|
|
34
|
+
while (n && !isBoundaryEnd(n)) {
|
|
35
|
+
childNodes.push(n);
|
|
36
|
+
hydrationStack.bumpChildIndex();
|
|
37
|
+
n = n.nextSibling;
|
|
38
|
+
}
|
|
39
|
+
const boundaryEnd = hydrationStack.currentChild();
|
|
40
|
+
if (!isBoundaryEnd(boundaryEnd)) {
|
|
41
|
+
throw new KiruError({
|
|
42
|
+
message: "Invalid HydrationBoundary node. This is likely a bug in Kaioken.",
|
|
43
|
+
fatal: true,
|
|
44
|
+
vNode: parentNode,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
boundaryEnd.remove();
|
|
48
|
+
return { parent, childNodes, startIndex };
|
|
49
|
+
}
|
|
50
|
+
export function lazy(componentPromiseFn) {
|
|
51
|
+
function LazyComponent(props) {
|
|
52
|
+
const { fallback = null, ...rest } = props;
|
|
53
|
+
const appCtx = useAppContext();
|
|
54
|
+
const hydrationCtx = useContext(HydrationBoundaryContext, false);
|
|
55
|
+
const needsHydration = useRef(hydrationCtx && renderMode.current === "hydrate");
|
|
56
|
+
const abortHydration = useRef(noop);
|
|
57
|
+
const requestUpdate = useRequestUpdate();
|
|
58
|
+
if (renderMode.current === "string" || renderMode.current === "stream") {
|
|
59
|
+
return fallback;
|
|
60
|
+
}
|
|
61
|
+
const fn = componentPromiseFn.toString();
|
|
62
|
+
const withoutQuery = removeQueryString(fn);
|
|
63
|
+
const cachedState = lazyCache.get(withoutQuery);
|
|
64
|
+
if (!cachedState || cachedState.fn !== fn) {
|
|
65
|
+
const promise = componentPromiseFn();
|
|
66
|
+
const state = {
|
|
67
|
+
fn,
|
|
68
|
+
promise,
|
|
69
|
+
result: null,
|
|
70
|
+
};
|
|
71
|
+
lazyCache.set(withoutQuery, state);
|
|
72
|
+
const ready = promise.then((componentOrModule) => {
|
|
73
|
+
state.result =
|
|
74
|
+
typeof componentOrModule === "function"
|
|
75
|
+
? componentOrModule
|
|
76
|
+
: componentOrModule.default;
|
|
77
|
+
});
|
|
78
|
+
if (!needsHydration.current) {
|
|
79
|
+
ready.then(() => requestUpdate());
|
|
80
|
+
return fallback;
|
|
81
|
+
}
|
|
82
|
+
const thisNode = node.current;
|
|
83
|
+
abortHydration.current = () => {
|
|
84
|
+
for (const child of childNodes) {
|
|
85
|
+
if (child instanceof Element) {
|
|
86
|
+
hydrationStack.resetEvents(child);
|
|
87
|
+
}
|
|
88
|
+
child.parentNode?.removeChild(child);
|
|
89
|
+
}
|
|
90
|
+
needsHydration.current = false;
|
|
91
|
+
delete thisNode.lastChildDom;
|
|
92
|
+
};
|
|
93
|
+
if (__DEV__) {
|
|
94
|
+
window.__kiru?.HMRContext?.onHmr(() => {
|
|
95
|
+
if (needsHydration.current) {
|
|
96
|
+
abortHydration.current();
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
const { parent, childNodes, startIndex } = consumeHydrationBoundaryChildren(thisNode);
|
|
101
|
+
thisNode.lastChildDom = childNodes[childNodes.length - 1];
|
|
102
|
+
for (const child of childNodes) {
|
|
103
|
+
if (child instanceof Element) {
|
|
104
|
+
hydrationStack.captureEvents(child);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
const hydrate = () => {
|
|
108
|
+
if (needsHydration.current === false)
|
|
109
|
+
return;
|
|
110
|
+
appCtx.scheduler?.nextIdle(() => {
|
|
111
|
+
delete thisNode.lastChildDom;
|
|
112
|
+
needsHydration.current = false;
|
|
113
|
+
hydrationStack.push(parent);
|
|
114
|
+
hydrationStack.childIdxStack[hydrationStack.childIdxStack.length - 1] = startIndex;
|
|
115
|
+
const prev = renderMode.current;
|
|
116
|
+
/**
|
|
117
|
+
* must call requestUpdate before setting renderMode
|
|
118
|
+
* to hydrate, otherwise the update will be postponed
|
|
119
|
+
* and flushSync will have no effect
|
|
120
|
+
*/
|
|
121
|
+
requestUpdate();
|
|
122
|
+
renderMode.current = "hydrate";
|
|
123
|
+
appCtx.flushSync();
|
|
124
|
+
renderMode.current = prev;
|
|
125
|
+
for (const child of childNodes) {
|
|
126
|
+
if (child instanceof Element) {
|
|
127
|
+
hydrationStack.releaseEvents(child);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
};
|
|
132
|
+
/**
|
|
133
|
+
* once the promise resolves, we need to act according
|
|
134
|
+
* to the HydrationBoundaryContext 'mode'.
|
|
135
|
+
*
|
|
136
|
+
* - with 'eager', we just hydrate the children immediately
|
|
137
|
+
* - with 'lazy', we'll wait for user interaction before hydrating
|
|
138
|
+
*/
|
|
139
|
+
if (hydrationCtx.mode === "eager") {
|
|
140
|
+
ready.then(hydrate);
|
|
141
|
+
return null;
|
|
142
|
+
}
|
|
143
|
+
const interactionEvents = hydrationCtx.events;
|
|
144
|
+
const onInteraction = (e) => {
|
|
145
|
+
const tgt = e.target;
|
|
146
|
+
if (tgt instanceof Element &&
|
|
147
|
+
childNodes.some((child) => child.contains(tgt))) {
|
|
148
|
+
interactionEvents.forEach((evtName) => {
|
|
149
|
+
window.removeEventListener(evtName, onInteraction);
|
|
150
|
+
});
|
|
151
|
+
ready.then(hydrate);
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
interactionEvents.forEach((evtName) => {
|
|
155
|
+
window.addEventListener(evtName, onInteraction);
|
|
156
|
+
});
|
|
157
|
+
return null;
|
|
158
|
+
}
|
|
159
|
+
if (cachedState.result === null) {
|
|
160
|
+
cachedState.promise.then(requestUpdate);
|
|
161
|
+
return fallback;
|
|
162
|
+
}
|
|
163
|
+
if (needsHydration.current) {
|
|
164
|
+
abortHydration.current();
|
|
165
|
+
}
|
|
166
|
+
return createElement(cachedState.result, rest);
|
|
167
|
+
}
|
|
168
|
+
LazyComponent.displayName = "Kaioken.lazy";
|
|
169
|
+
return LazyComponent;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* removes the query string from a function - prevents
|
|
173
|
+
* vite-modified imports (eg. () => import("./Counter.tsx?t=123456"))
|
|
174
|
+
* from causing issues
|
|
175
|
+
*/
|
|
176
|
+
const removeQueryString = (fnStr) => fnStr.replace(/import\((["'])([^?"']+)\?[^)"']*\1\)/g, (_, quote, path) => `import(${quote}${path}${quote})`);
|
|
177
|
+
//# sourceMappingURL=lazy.js.map
|
package/dist/lazy.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lazy.js","sourceRoot":"","sources":["../src/lazy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EACL,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAkBjC,MAAM,SAAS,GACb,QAAQ,IAAI,UAAU;IACpB,CAAC,CAAC,iFAAiF;QACjF,CAAC,MAAM,CAAC,oBAAoB,KAA3B,MAAM,CAAC,oBAAoB,GAAK,IAAI,GAAG,EAAqB,EAAC;IAChE,CAAC,CAAC,IAAI,GAAG,EAAqB,CAAA;AAElC,SAAS,gCAAgC,CAAC,UAAsB;IAK9D,MAAM,aAAa,GAAG,cAAc,CAAC,YAAY,EAAE,CAAA;IACnD,IACE,aAAa,EAAE,QAAQ,KAAK,IAAI,CAAC,YAAY;QAC7C,aAAa,CAAC,SAAS,KAAK,yBAAyB,EACrD,CAAC;QACD,MAAM,IAAI,SAAS,CAAC;YAClB,OAAO,EACL,kEAAkE;YACpE,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,UAAU;SAClB,CAAC,CAAA;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,aAAa,CAAC,aAAc,CAAA;IAC3C,MAAM,UAAU,GAAW,EAAE,CAAA;IAC7B,MAAM,aAAa,GAAG,CAAC,CAAO,EAAE,EAAE;QAChC,OAAO,CACL,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY;YAChC,CAAC,CAAC,SAAS,KAAK,GAAG,GAAG,yBAAyB,CAChD,CAAA;IACH,CAAC,CAAA;IACD,IAAI,CAAC,GAAG,aAAa,CAAC,WAAW,CAAA;IACjC,aAAa,CAAC,MAAM,EAAE,CAAA;IACtB,MAAM,UAAU,GACd,cAAc,CAAC,aAAa,CAAC,cAAc,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IACvE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9B,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAClB,cAAc,CAAC,cAAc,EAAE,CAAA;QAC/B,CAAC,GAAG,CAAC,CAAC,WAAW,CAAA;IACnB,CAAC;IACD,MAAM,WAAW,GAAG,cAAc,CAAC,YAAY,EAAE,CAAA;IACjD,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,SAAS,CAAC;YAClB,OAAO,EACL,kEAAkE;YACpE,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,UAAU;SAClB,CAAC,CAAA;IACJ,CAAC;IACD,WAAW,CAAC,MAAM,EAAE,CAAA;IACpB,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,CAAA;AAC3C,CAAC;AAED,MAAM,UAAU,IAAI,CAClB,kBAAoC;IAEpC,SAAS,aAAa,CAAC,KAA4B;QACjD,MAAM,EAAE,QAAQ,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAA;QAC1C,MAAM,MAAM,GAAG,aAAa,EAAE,CAAA;QAC9B,MAAM,YAAY,GAAG,UAAU,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAA;QAChE,MAAM,cAAc,GAAG,MAAM,CAC3B,YAAY,IAAI,UAAU,CAAC,OAAO,KAAK,SAAS,CACjD,CAAA;QACD,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;QACnC,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAA;QACxC,IAAI,UAAU,CAAC,OAAO,KAAK,QAAQ,IAAI,UAAU,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACvE,OAAO,QAAQ,CAAA;QACjB,CAAC;QAED,MAAM,EAAE,GAAG,kBAAkB,CAAC,QAAQ,EAAE,CAAA;QACxC,MAAM,YAAY,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAA;QAC1C,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QAC/C,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;YAC1C,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAA;YACpC,MAAM,KAAK,GAAc;gBACvB,EAAE;gBACF,OAAO;gBACP,MAAM,EAAE,IAAI;aACb,CAAA;YACD,SAAS,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,CAAA;YAElC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,EAAE;gBAC/C,KAAK,CAAC,MAAM;oBACV,OAAO,iBAAiB,KAAK,UAAU;wBACrC,CAAC,CAAC,iBAAiB;wBACnB,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAA;YACjC,CAAC,CAAC,CAAA;YAEF,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;gBAC5B,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC,CAAA;gBACjC,OAAO,QAAQ,CAAA;YACjB,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAQ,CAAA;YAE9B,cAAc,CAAC,OAAO,GAAG,GAAG,EAAE;gBAC5B,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;oBAC/B,IAAI,KAAK,YAAY,OAAO,EAAE,CAAC;wBAC7B,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;oBACnC,CAAC;oBACD,KAAK,CAAC,UAAU,EAAE,WAAW,CAAC,KAAK,CAAC,CAAA;gBACtC,CAAC;gBACD,cAAc,CAAC,OAAO,GAAG,KAAK,CAAA;gBAC9B,OAAO,QAAQ,CAAC,YAAY,CAAA;YAC9B,CAAC,CAAA;YAED,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,GAAG,EAAE;oBACpC,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;wBAC3B,cAAc,CAAC,OAAO,EAAE,CAAA;oBAC1B,CAAC;gBACH,CAAC,CAAC,CAAA;YACJ,CAAC;YAED,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GACtC,gCAAgC,CAAC,QAAQ,CAAC,CAAA;YAE5C,QAAQ,CAAC,YAAY,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAY,CAAA;YAEpE,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;gBAC/B,IAAI,KAAK,YAAY,OAAO,EAAE,CAAC;oBAC7B,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;gBACrC,CAAC;YACH,CAAC;YACD,MAAM,OAAO,GAAG,GAAG,EAAE;gBACnB,IAAI,cAAc,CAAC,OAAO,KAAK,KAAK;oBAAE,OAAM;gBAE5C,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,EAAE;oBAC9B,OAAO,QAAQ,CAAC,YAAY,CAAA;oBAC5B,cAAc,CAAC,OAAO,GAAG,KAAK,CAAA;oBAC9B,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;oBAC3B,cAAc,CAAC,aAAa,CAC1B,cAAc,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CACxC,GAAG,UAAU,CAAA;oBACd,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAA;oBAC/B;;;;uBAIG;oBACH,aAAa,EAAE,CAAA;oBACf,UAAU,CAAC,OAAO,GAAG,SAAS,CAAA;oBAC9B,MAAM,CAAC,SAAS,EAAE,CAAA;oBAClB,UAAU,CAAC,OAAO,GAAG,IAAI,CAAA;oBACzB,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;wBAC/B,IAAI,KAAK,YAAY,OAAO,EAAE,CAAC;4BAC7B,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;wBACrC,CAAC;oBACH,CAAC;gBACH,CAAC,CAAC,CAAA;YACJ,CAAC,CAAA;YAED;;;;;;eAMG;YAEH,IAAI,YAAY,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAClC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;gBACnB,OAAO,IAAI,CAAA;YACb,CAAC;YACD,MAAM,iBAAiB,GAAG,YAAY,CAAC,MAAM,CAAA;YAC7C,MAAM,aAAa,GAAG,CAAC,CAAQ,EAAE,EAAE;gBACjC,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAA;gBACpB,IACE,GAAG,YAAY,OAAO;oBACtB,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAC/C,CAAC;oBACD,iBAAiB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;wBACpC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;oBACpD,CAAC,CAAC,CAAA;oBACF,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;gBACrB,CAAC;YACH,CAAC,CAAA;YACD,iBAAiB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBACpC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;YACjD,CAAC,CAAC,CAAA;YAEF,OAAO,IAAI,CAAA;QACb,CAAC;QAED,IAAI,WAAW,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAChC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;YACvC,OAAO,QAAQ,CAAA;QACjB,CAAC;QACD,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;YAC3B,cAAc,CAAC,OAAO,EAAE,CAAA;QAC1B,CAAC;QACD,OAAO,aAAa,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAChD,CAAC;IACD,aAAa,CAAC,WAAW,GAAG,cAAc,CAAA;IAC1C,OAAO,aAAa,CAAA;AACtB,CAAC;AAED;;;;GAIG;AACH,MAAM,iBAAiB,GAAG,CAAC,KAAa,EAAU,EAAE,CAClD,KAAK,CAAC,OAAO,CACX,uCAAuC,EACvC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,CACtD,CAAA"}
|
package/dist/memo.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { $MEMO } from "./constants.js";
|
|
2
|
+
export type MemoFn = Function & {
|
|
3
|
+
[$MEMO]: {
|
|
4
|
+
arePropsEqual: (prevProps: Record<string, unknown>, nextProps: Record<string, unknown>) => boolean;
|
|
5
|
+
};
|
|
6
|
+
};
|
|
7
|
+
export declare function memo<T extends Record<string, unknown> = {}>(fn: Kiru.FC<T>, arePropsEqual?: (prevProps: T, nextProps: T) => boolean): (props: T) => JSX.Element;
|
|
8
|
+
export declare function isMemoFn(fn: any): fn is MemoFn;
|
|
9
|
+
//# sourceMappingURL=memo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memo.d.ts","sourceRoot":"","sources":["../src/memo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAiBtC,MAAM,MAAM,MAAM,GAAG,QAAQ,GAAG;IAC9B,CAAC,KAAK,CAAC,EAAE;QACP,aAAa,EAAE,CACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC/B,OAAO,CAAA;KACb,CAAA;CACF,CAAA;AAED,wBAAgB,IAAI,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,EACzD,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EACd,aAAa,GAAE,CAAC,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,KAAK,OAAwB,GACtE,CAAC,KAAK,EAAE,CAAC,KAAK,GAAG,CAAC,OAAO,CAU3B;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,GAAG,GAAG,EAAE,IAAI,MAAM,CAM9C"}
|
package/dist/memo.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { $MEMO } from "./constants.js";
|
|
2
|
+
import { createElement } from "./element.js";
|
|
3
|
+
function _arePropsEqual(prevProps, nextProps) {
|
|
4
|
+
const keys = new Set([...Object.keys(prevProps), ...Object.keys(nextProps)]);
|
|
5
|
+
for (const key of keys) {
|
|
6
|
+
if (prevProps[key] !== nextProps[key]) {
|
|
7
|
+
return false;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
export function memo(fn, arePropsEqual = _arePropsEqual) {
|
|
13
|
+
return Object.assign(function Memo(props) {
|
|
14
|
+
return createElement(fn, props);
|
|
15
|
+
}, {
|
|
16
|
+
[$MEMO]: { arePropsEqual },
|
|
17
|
+
displayName: "Kaioken.memo",
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
export function isMemoFn(fn) {
|
|
21
|
+
return (typeof fn === "function" &&
|
|
22
|
+
fn[$MEMO] &&
|
|
23
|
+
typeof fn[$MEMO].arePropsEqual === "function");
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=memo.js.map
|
package/dist/memo.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memo.js","sourceRoot":"","sources":["../src/memo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAG5C,SAAS,cAAc,CACrB,SAAY,EACZ,SAAY;IAEZ,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;IAC5E,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YACtC,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAWD,MAAM,UAAU,IAAI,CAClB,EAAc,EACd,gBAAyD,cAAc;IAEvE,OAAO,MAAM,CAAC,MAAM,CAClB,SAAS,IAAI,CAAC,KAAQ;QACpB,OAAO,aAAa,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;IACjC,CAAC,EACD;QACE,CAAC,KAAK,CAAC,EAAE,EAAE,aAAa,EAAE;QAC1B,WAAW,EAAE,cAAc;KAC5B,CACF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,EAAO;IAC9B,OAAO,CACL,OAAO,EAAE,KAAK,UAAU;QACxB,EAAE,CAAC,KAAK,CAAC;QACT,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,aAAa,KAAK,UAAU,CAC9C,CAAA;AACH,CAAC"}
|
package/dist/portal.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { Portal, isPortal };
|
|
2
|
+
type PortalProps = {
|
|
3
|
+
children?: JSX.Children;
|
|
4
|
+
container: HTMLElement | (() => HTMLElement);
|
|
5
|
+
};
|
|
6
|
+
declare function Portal({ children, container }: PortalProps): JSX.Children;
|
|
7
|
+
declare function isPortal(node: Kiru.VNode): node is Kiru.VNode & {
|
|
8
|
+
type: typeof Portal;
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=portal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portal.d.ts","sourceRoot":"","sources":["../src/portal.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;AAE3B,KAAK,WAAW,GAAG;IACjB,QAAQ,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAA;IACvB,SAAS,EAAE,WAAW,GAAG,CAAC,MAAM,WAAW,CAAC,CAAA;CAC7C,CAAA;AAED,iBAAS,MAAM,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,WAAW,gBAuBnD;AAED,iBAAS,QAAQ,CACf,IAAI,EAAE,IAAI,CAAC,KAAK,GACf,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG;IAAE,IAAI,EAAE,OAAO,MAAM,CAAA;CAAE,CAE9C"}
|
package/dist/portal.js
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { __DEV__ } from "./env.js";
|
|
2
|
+
import { KiruError } from "./error.js";
|
|
3
|
+
import { renderMode } from "./globals.js";
|
|
4
|
+
import { useVNode } from "./hooks/utils.js";
|
|
5
|
+
import { getVNodeAppContext } from "./utils.js";
|
|
6
|
+
export { Portal, isPortal };
|
|
7
|
+
function Portal({ children, container }) {
|
|
8
|
+
const vNode = useVNode();
|
|
9
|
+
switch (renderMode.current) {
|
|
10
|
+
case "dom":
|
|
11
|
+
vNode.dom = typeof container === "function" ? container() : container;
|
|
12
|
+
if (!(vNode.dom instanceof HTMLElement)) {
|
|
13
|
+
if (__DEV__) {
|
|
14
|
+
throw new KiruError({
|
|
15
|
+
message: `Invalid portal container, expected HTMLElement, got ${vNode.dom}`,
|
|
16
|
+
vNode: vNode,
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
return children;
|
|
22
|
+
case "hydrate":
|
|
23
|
+
const ctx = getVNodeAppContext(vNode);
|
|
24
|
+
ctx.scheduler?.nextIdle(() => ctx.requestUpdate(vNode));
|
|
25
|
+
return null;
|
|
26
|
+
case "stream":
|
|
27
|
+
case "string":
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
function isPortal(node) {
|
|
32
|
+
return node.type === Portal;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=portal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portal.js","sourceRoot":"","sources":["../src/portal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAE/C,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;AAO3B,SAAS,MAAM,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAe;IAClD,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;IACxB,QAAQ,UAAU,CAAC,OAAO,EAAE,CAAC;QAC3B,KAAK,KAAK;YACR,KAAK,CAAC,GAAG,GAAG,OAAO,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;YACrE,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,YAAY,WAAW,CAAC,EAAE,CAAC;gBACxC,IAAI,OAAO,EAAE,CAAC;oBACZ,MAAM,IAAI,SAAS,CAAC;wBAClB,OAAO,EAAE,uDAAuD,KAAK,CAAC,GAAG,EAAE;wBAC3E,KAAK,EAAE,KAAK;qBACb,CAAC,CAAA;gBACJ,CAAC;gBACD,OAAO,IAAI,CAAA;YACb,CAAC;YACD,OAAO,QAAQ,CAAA;QACjB,KAAK,SAAS;YACZ,MAAM,GAAG,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAA;YACrC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;YACvD,OAAO,IAAI,CAAA;QACb,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ;YACX,OAAO,IAAI,CAAA;IACf,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CACf,IAAgB;IAEhB,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,CAAA;AAC7B,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { AppContext } from "./appContext";
|
|
2
|
+
declare const ProfilingEvents: readonly ["updateNode", "createNode", "removeNode", "update", "updateDirtied", "signalTextUpdate", "signalAttrUpdate"];
|
|
3
|
+
export type ProfilingEvent = (typeof ProfilingEvents)[number];
|
|
4
|
+
type TickTS = {
|
|
5
|
+
start: number;
|
|
6
|
+
end: number;
|
|
7
|
+
};
|
|
8
|
+
type ProfilingEventListener = (app: AppContext) => void;
|
|
9
|
+
export declare function createProfilingContext(): {
|
|
10
|
+
appStats: Map<AppContext<{}>, {
|
|
11
|
+
timestamps: TickTS[];
|
|
12
|
+
mountDuration: number;
|
|
13
|
+
totalTicks: number;
|
|
14
|
+
}>;
|
|
15
|
+
emit: (event: ProfilingEvent, app: AppContext) => void;
|
|
16
|
+
addEventListener: (event: ProfilingEvent, listener: ProfilingEventListener) => void;
|
|
17
|
+
removeEventListener: (event: ProfilingEvent, listener: ProfilingEventListener) => void;
|
|
18
|
+
mountDuration: (app: AppContext) => number;
|
|
19
|
+
totalTicks: (app: AppContext) => number;
|
|
20
|
+
lastTickDuration: (app: AppContext) => number;
|
|
21
|
+
averageTickDuration: (app: AppContext) => number;
|
|
22
|
+
beginTick: (app: AppContext) => void;
|
|
23
|
+
endTick: (app: AppContext) => void;
|
|
24
|
+
};
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=profiling.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profiling.d.ts","sourceRoot":"","sources":["../src/profiling.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAI9C,QAAA,MAAM,eAAe,wHAQX,CAAA;AAEV,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAA;AAE7D,KAAK,MAAM,GAAG;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,KAAK,sBAAsB,GAAG,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAA;AAEvD,wBAAgB,sBAAsB;;oBAKpB,MAAM,EAAE;uBACL,MAAM;oBACT,MAAM;;kBAKN,cAAc,OAAO,UAAU;8BAIpC,cAAc,YACX,sBAAsB;iCAQzB,cAAc,YACX,sBAAsB;yBAKb,UAAU;sBAKb,UAAU;4BAKJ,UAAU;+BAMP,UAAU;qBASpB,UAAU;mBAYZ,UAAU;EAa5B"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
const MAX_TICKS = 100;
|
|
2
|
+
const ProfilingEvents = [
|
|
3
|
+
"updateNode",
|
|
4
|
+
"createNode",
|
|
5
|
+
"removeNode",
|
|
6
|
+
"update",
|
|
7
|
+
"updateDirtied",
|
|
8
|
+
"signalTextUpdate",
|
|
9
|
+
"signalAttrUpdate",
|
|
10
|
+
];
|
|
11
|
+
export function createProfilingContext() {
|
|
12
|
+
const eventListeners = new Map();
|
|
13
|
+
const appStats = new Map();
|
|
14
|
+
return {
|
|
15
|
+
appStats,
|
|
16
|
+
emit: (event, app) => {
|
|
17
|
+
eventListeners.get(event)?.forEach((listener) => listener(app));
|
|
18
|
+
},
|
|
19
|
+
addEventListener: (event, listener) => {
|
|
20
|
+
if (!eventListeners.has(event)) {
|
|
21
|
+
eventListeners.set(event, new Set());
|
|
22
|
+
}
|
|
23
|
+
eventListeners.get(event).add(listener);
|
|
24
|
+
},
|
|
25
|
+
removeEventListener: (event, listener) => {
|
|
26
|
+
if (!eventListeners.has(event))
|
|
27
|
+
return;
|
|
28
|
+
eventListeners.get(event).delete(listener);
|
|
29
|
+
},
|
|
30
|
+
mountDuration: (app) => {
|
|
31
|
+
const stats = appStats.get(app);
|
|
32
|
+
if (!stats)
|
|
33
|
+
return 0;
|
|
34
|
+
return stats.mountDuration;
|
|
35
|
+
},
|
|
36
|
+
totalTicks: (app) => {
|
|
37
|
+
const stats = appStats.get(app);
|
|
38
|
+
if (!stats)
|
|
39
|
+
return 0;
|
|
40
|
+
return stats.totalTicks;
|
|
41
|
+
},
|
|
42
|
+
lastTickDuration: (app) => {
|
|
43
|
+
const stats = appStats.get(app);
|
|
44
|
+
if (!stats)
|
|
45
|
+
return 0;
|
|
46
|
+
const last = stats.timestamps[stats.timestamps.length - 1];
|
|
47
|
+
return last.end - last.start;
|
|
48
|
+
},
|
|
49
|
+
averageTickDuration: (app) => {
|
|
50
|
+
const stats = appStats.get(app);
|
|
51
|
+
if (!stats)
|
|
52
|
+
return 0;
|
|
53
|
+
const completeTicks = stats.timestamps.filter((ts) => ts.end !== Infinity);
|
|
54
|
+
return (completeTicks.reduce((a, b) => a + (b.end - b.start), 0) /
|
|
55
|
+
completeTicks.length);
|
|
56
|
+
},
|
|
57
|
+
beginTick: (app) => {
|
|
58
|
+
if (!appStats.has(app)) {
|
|
59
|
+
appStats.set(app, {
|
|
60
|
+
mountDuration: Infinity,
|
|
61
|
+
timestamps: [],
|
|
62
|
+
totalTicks: 0,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
const stats = appStats.get(app);
|
|
66
|
+
stats.totalTicks++;
|
|
67
|
+
stats.timestamps.push({ start: performance.now(), end: Infinity });
|
|
68
|
+
},
|
|
69
|
+
endTick: (app) => {
|
|
70
|
+
if (!appStats.has(app))
|
|
71
|
+
return;
|
|
72
|
+
const stats = appStats.get(app);
|
|
73
|
+
const last = stats.timestamps[stats.timestamps.length - 1];
|
|
74
|
+
last.end = performance.now();
|
|
75
|
+
if (stats.mountDuration === Infinity) {
|
|
76
|
+
stats.mountDuration = last.end - last.start;
|
|
77
|
+
}
|
|
78
|
+
if (stats.timestamps.length > MAX_TICKS)
|
|
79
|
+
stats.timestamps.shift();
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=profiling.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profiling.js","sourceRoot":"","sources":["../src/profiling.ts"],"names":[],"mappings":"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"}
|
package/dist/props.d.ts
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare function assertValidElementProps(vNode: Kiru.VNode): void;
|
|
2
|
+
export declare function isValidElementKeyProp(thing: unknown): thing is string | number;
|
|
3
|
+
export declare function isValidElementRefProp(thing: unknown): thing is Kiru.Ref<any>;
|
|
4
|
+
//# sourceMappingURL=props.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"props.d.ts","sourceRoot":"","sources":["../src/props.ts"],"names":[],"mappings":"AAGA,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,QAgBxD;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,MAAM,GAAG,MAAM,CAE1B;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAM5E"}
|
package/dist/props.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { KiruError } from "./error.js";
|
|
2
|
+
import { Signal } from "./signals/base.js";
|
|
3
|
+
export function assertValidElementProps(vNode) {
|
|
4
|
+
if ("children" in vNode.props && vNode.props.innerHTML) {
|
|
5
|
+
throw new KiruError({
|
|
6
|
+
message: "Cannot use both children and innerHTML on an element",
|
|
7
|
+
vNode,
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
for (const key in vNode.props) {
|
|
11
|
+
if ("bind:" + key in vNode.props) {
|
|
12
|
+
throw new KiruError({
|
|
13
|
+
message: `Cannot use both bind:${key} and ${key} on an element`,
|
|
14
|
+
vNode,
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export function isValidElementKeyProp(thing) {
|
|
20
|
+
return typeof thing === "string" || typeof thing === "number";
|
|
21
|
+
}
|
|
22
|
+
export function isValidElementRefProp(thing) {
|
|
23
|
+
return (typeof thing === "function" ||
|
|
24
|
+
(typeof thing === "object" && !!thing && "current" in thing) ||
|
|
25
|
+
Signal.isSignal(thing));
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=props.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"props.js","sourceRoot":"","sources":["../src/props.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1C,MAAM,UAAU,uBAAuB,CAAC,KAAiB;IACvD,IAAI,UAAU,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QACvD,MAAM,IAAI,SAAS,CAAC;YAClB,OAAO,EAAE,sDAAsD;YAC/D,KAAK;SACN,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,OAAO,GAAG,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YACjC,MAAM,IAAI,SAAS,CAAC;gBAClB,OAAO,EAAE,wBAAwB,GAAG,QAAQ,GAAG,gBAAgB;gBAC/D,KAAK;aACN,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,KAAc;IAEd,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAA;AAC/D,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,OAAO,CACL,OAAO,KAAK,KAAK,UAAU;QAC3B,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC;QAC5D,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CACvB,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reconciler.d.ts","sourceRoot":"","sources":["../src/reconciler.ts"],"names":[],"mappings":"AAQA,KAAK,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AAEvB,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,qBAYjE"}
|