@alloy-js/core 0.23.0-dev.1 → 0.23.0-dev.10
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/CHANGELOG.md +0 -22
- package/dist/devtools/index.html +68 -0
- package/dist/src/binder.d.ts +2 -0
- package/dist/src/binder.d.ts.map +1 -1
- package/dist/src/binder.js +55 -12
- package/dist/src/binder.js.map +1 -1
- package/dist/src/components/AccessExpression.d.ts +78 -0
- package/dist/src/components/AccessExpression.d.ts.map +1 -0
- package/dist/src/components/AccessExpression.js +218 -0
- package/dist/src/components/AccessExpression.js.map +1 -0
- package/dist/src/components/AccessExpression.test.d.ts +2 -0
- package/dist/src/components/AccessExpression.test.d.ts.map +1 -0
- package/dist/src/components/AccessExpression.test.js +137 -0
- package/dist/src/components/AccessExpression.test.js.map +1 -0
- package/dist/src/components/AppendFile.d.ts.map +1 -1
- package/dist/src/components/AppendFile.js +14 -3
- package/dist/src/components/AppendFile.js.map +1 -1
- package/dist/src/components/Block.js +1 -1
- package/dist/src/components/Block.js.map +1 -1
- package/dist/src/components/Declaration.d.ts.map +1 -1
- package/dist/src/components/Declaration.js +2 -1
- package/dist/src/components/Declaration.js.map +1 -1
- package/dist/src/components/Prose.js +2 -2
- package/dist/src/components/Prose.js.map +1 -1
- package/dist/src/components/Scope.d.ts.map +1 -1
- package/dist/src/components/Scope.js +6 -1
- package/dist/src/components/Scope.js.map +1 -1
- package/dist/src/components/SourceDirectory.d.ts.map +1 -1
- package/dist/src/components/SourceDirectory.js +1 -2
- package/dist/src/components/SourceDirectory.js.map +1 -1
- package/dist/src/components/TemplateFile.d.ts.map +1 -1
- package/dist/src/components/TemplateFile.js +18 -3
- package/dist/src/components/TemplateFile.js.map +1 -1
- package/dist/src/components/index.d.ts +1 -0
- package/dist/src/components/index.d.ts.map +1 -1
- package/dist/src/components/index.js +1 -0
- package/dist/src/components/index.js.map +1 -1
- package/dist/src/content-slot.d.ts.map +1 -1
- package/dist/src/content-slot.js +7 -6
- package/dist/src/content-slot.js.map +1 -1
- package/dist/src/context.d.ts.map +1 -1
- package/dist/src/context.js +10 -3
- package/dist/src/context.js.map +1 -1
- package/dist/src/debug/cli.d.ts +6 -0
- package/dist/src/debug/cli.d.ts.map +1 -0
- package/dist/src/{debug.js → debug/cli.js} +79 -82
- package/dist/src/debug/cli.js.map +1 -0
- package/dist/src/debug/diagnostics.test.d.ts +2 -0
- package/dist/src/debug/diagnostics.test.d.ts.map +1 -0
- package/dist/src/debug/diagnostics.test.js +45 -0
- package/dist/src/debug/diagnostics.test.js.map +1 -0
- package/dist/src/debug/effects.d.ts +73 -0
- package/dist/src/debug/effects.d.ts.map +1 -0
- package/dist/src/debug/effects.js +228 -0
- package/dist/src/debug/effects.js.map +1 -0
- package/dist/src/debug/effects.test.d.ts +2 -0
- package/dist/src/debug/effects.test.d.ts.map +1 -0
- package/dist/src/debug/effects.test.js +84 -0
- package/dist/src/debug/effects.test.js.map +1 -0
- package/dist/src/debug/files.d.ts +14 -0
- package/dist/src/debug/files.d.ts.map +1 -0
- package/dist/src/debug/files.js +40 -0
- package/dist/src/debug/files.js.map +1 -0
- package/dist/src/debug/files.test.d.ts +2 -0
- package/dist/src/debug/files.test.d.ts.map +1 -0
- package/dist/src/debug/files.test.js +89 -0
- package/dist/src/debug/files.test.js.map +1 -0
- package/dist/src/debug/index.d.ts +61 -0
- package/dist/src/debug/index.d.ts.map +1 -0
- package/dist/src/debug/index.js +69 -0
- package/dist/src/debug/index.js.map +1 -0
- package/dist/src/debug/render.d.ts +57 -0
- package/dist/src/debug/render.d.ts.map +1 -0
- package/dist/src/debug/render.js +519 -0
- package/dist/src/debug/render.js.map +1 -0
- package/dist/src/debug/render.test.d.ts +2 -0
- package/dist/src/debug/render.test.d.ts.map +1 -0
- package/dist/src/debug/render.test.js +328 -0
- package/dist/src/debug/render.test.js.map +1 -0
- package/dist/src/debug/serialize.d.ts +9 -0
- package/dist/src/debug/serialize.d.ts.map +1 -0
- package/dist/src/debug/serialize.js +70 -0
- package/dist/src/debug/serialize.js.map +1 -0
- package/dist/src/debug/symbols.d.ts +15 -0
- package/dist/src/debug/symbols.d.ts.map +1 -0
- package/dist/src/debug/symbols.js +173 -0
- package/dist/src/debug/symbols.js.map +1 -0
- package/dist/src/debug/symbols.test.d.ts +2 -0
- package/dist/src/debug/symbols.test.d.ts.map +1 -0
- package/dist/src/debug/symbols.test.js +104 -0
- package/dist/src/debug/symbols.test.js.map +1 -0
- package/dist/src/debug/trace.d.ts +342 -0
- package/dist/src/debug/trace.d.ts.map +1 -0
- package/dist/src/debug/trace.js +443 -0
- package/dist/src/debug/trace.js.map +1 -0
- package/dist/src/devtools/devtools-protocol.d.ts +232 -0
- package/dist/src/devtools/devtools-protocol.d.ts.map +1 -0
- package/dist/src/devtools/devtools-protocol.js +2 -0
- package/dist/src/devtools/devtools-protocol.js.map +1 -0
- package/dist/src/devtools/devtools-server.browser.d.ts +28 -0
- package/dist/src/devtools/devtools-server.browser.d.ts.map +1 -0
- package/dist/src/devtools/devtools-server.browser.js +36 -0
- package/dist/src/devtools/devtools-server.browser.js.map +1 -0
- package/dist/src/devtools/devtools-server.d.ts +72 -0
- package/dist/src/devtools/devtools-server.d.ts.map +1 -0
- package/dist/src/devtools/devtools-server.js +256 -0
- package/dist/src/devtools/devtools-server.js.map +1 -0
- package/dist/src/devtools/devtools-transport.d.ts +23 -0
- package/dist/src/devtools/devtools-transport.d.ts.map +1 -0
- package/dist/src/devtools/devtools-transport.js +114 -0
- package/dist/src/devtools/devtools-transport.js.map +1 -0
- package/dist/src/devtools-entry.browser.d.ts +4 -0
- package/dist/src/devtools-entry.browser.d.ts.map +1 -0
- package/dist/src/devtools-entry.browser.js +2 -0
- package/dist/src/devtools-entry.browser.js.map +1 -0
- package/dist/src/devtools-entry.d.ts +4 -0
- package/dist/src/devtools-entry.d.ts.map +1 -0
- package/dist/src/devtools-entry.js +2 -0
- package/dist/src/devtools-entry.js.map +1 -0
- package/dist/src/diagnostics.d.ts +34 -0
- package/dist/src/diagnostics.d.ts.map +1 -0
- package/dist/src/diagnostics.js +89 -0
- package/dist/src/diagnostics.js.map +1 -0
- package/dist/src/index.d.ts +3 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +3 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/print-hook.d.ts +14 -0
- package/dist/src/print-hook.d.ts.map +1 -0
- package/dist/src/print-hook.js +10 -0
- package/dist/src/print-hook.js.map +1 -0
- package/dist/src/reactive-union-set.d.ts.map +1 -1
- package/dist/src/reactive-union-set.js +28 -3
- package/dist/src/reactive-union-set.js.map +1 -1
- package/dist/src/reactivity.d.ts +50 -8
- package/dist/src/reactivity.d.ts.map +1 -1
- package/dist/src/reactivity.js +225 -39
- package/dist/src/reactivity.js.map +1 -1
- package/dist/src/render-stack.d.ts +18 -1
- package/dist/src/render-stack.d.ts.map +1 -1
- package/dist/src/render-stack.js +61 -1
- package/dist/src/render-stack.js.map +1 -1
- package/dist/src/render.d.ts +8 -15
- package/dist/src/render.d.ts.map +1 -1
- package/dist/src/render.js +370 -109
- package/dist/src/render.js.map +1 -1
- package/dist/src/resource.d.ts.map +1 -1
- package/dist/src/resource.js +5 -0
- package/dist/src/resource.js.map +1 -1
- package/dist/src/scheduler.d.ts +8 -0
- package/dist/src/scheduler.d.ts.map +1 -1
- package/dist/src/scheduler.js +69 -3
- package/dist/src/scheduler.js.map +1 -1
- package/dist/src/symbols/basic-symbol.d.ts.map +1 -1
- package/dist/src/symbols/basic-symbol.js +6 -1
- package/dist/src/symbols/basic-symbol.js.map +1 -1
- package/dist/src/symbols/decl.d.ts.map +1 -1
- package/dist/src/symbols/decl.js +5 -1
- package/dist/src/symbols/decl.js.map +1 -1
- package/dist/src/symbols/output-scope.d.ts +2 -1
- package/dist/src/symbols/output-scope.d.ts.map +1 -1
- package/dist/src/symbols/output-scope.js +13 -8
- package/dist/src/symbols/output-scope.js.map +1 -1
- package/dist/src/symbols/output-symbol.d.ts +1 -0
- package/dist/src/symbols/output-symbol.d.ts.map +1 -1
- package/dist/src/symbols/output-symbol.js +25 -8
- package/dist/src/symbols/output-symbol.js.map +1 -1
- package/dist/src/symbols/symbol-flow.d.ts.map +1 -1
- package/dist/src/symbols/symbol-flow.js +24 -8
- package/dist/src/symbols/symbol-flow.js.map +1 -1
- package/dist/src/symbols/symbol-slot.d.ts.map +1 -1
- package/dist/src/symbols/symbol-slot.js +15 -0
- package/dist/src/symbols/symbol-slot.js.map +1 -1
- package/dist/src/symbols/symbol-slot.test.d.ts +2 -0
- package/dist/src/symbols/symbol-slot.test.d.ts.map +1 -0
- package/dist/src/symbols/symbol-slot.test.js +35 -0
- package/dist/src/symbols/symbol-slot.test.js.map +1 -0
- package/dist/src/symbols/symbol-table.d.ts.map +1 -1
- package/dist/src/symbols/symbol-table.js +6 -5
- package/dist/src/symbols/symbol-table.js.map +1 -1
- package/dist/src/trace.d.ts +2 -0
- package/dist/src/trace.d.ts.map +1 -0
- package/dist/src/trace.js +2 -0
- package/dist/src/trace.js.map +1 -0
- package/dist/src/tracer.d.ts +2 -228
- package/dist/src/tracer.d.ts.map +1 -1
- package/dist/src/tracer.js +5 -298
- package/dist/src/tracer.js.map +1 -1
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +7 -5
- package/dist/src/utils.js.map +1 -1
- package/dist/test/components/append-file.test.d.ts.map +1 -1
- package/dist/test/components/append-file.test.js +18 -10
- package/dist/test/components/append-file.test.js.map +1 -1
- package/dist/test/components/template-file.test.d.ts.map +1 -1
- package/dist/test/components/template-file.test.js +6 -4
- package/dist/test/components/template-file.test.js.map +1 -1
- package/dist/test/lazy-isempty.test.d.ts +2 -0
- package/dist/test/lazy-isempty.test.d.ts.map +1 -0
- package/dist/test/lazy-isempty.test.js +89 -0
- package/dist/test/lazy-isempty.test.js.map +1 -0
- package/dist/test/reactive-union-set-disposers.test.d.ts +2 -0
- package/dist/test/reactive-union-set-disposers.test.d.ts.map +1 -0
- package/dist/test/reactive-union-set-disposers.test.js +98 -0
- package/dist/test/reactive-union-set-disposers.test.js.map +1 -0
- package/dist/test/reactivity/shallow-reactive.test.d.ts +2 -0
- package/dist/test/reactivity/shallow-reactive.test.d.ts.map +1 -0
- package/dist/test/reactivity/shallow-reactive.test.js +52 -0
- package/dist/test/reactivity/shallow-reactive.test.js.map +1 -0
- package/dist/test/rendering/basic.test.js +3 -0
- package/dist/test/rendering/basic.test.js.map +1 -1
- package/dist/test/rendering/print-render-stack.test.d.ts.map +1 -1
- package/dist/test/rendering/print-render-stack.test.js +91 -98
- package/dist/test/rendering/print-render-stack.test.js.map +1 -1
- package/dist/test/scheduler-extended.test.d.ts +2 -0
- package/dist/test/scheduler-extended.test.d.ts.map +1 -0
- package/dist/test/scheduler-extended.test.js +96 -0
- package/dist/test/scheduler-extended.test.js.map +1 -0
- package/dist/test/scheduler.test.d.ts +2 -0
- package/dist/test/scheduler.test.d.ts.map +1 -0
- package/dist/test/scheduler.test.js +46 -0
- package/dist/test/scheduler.test.js.map +1 -0
- package/dist/testing/create-test-wrapper.d.ts +1 -1
- package/dist/testing/create-test-wrapper.d.ts.map +1 -1
- package/dist/testing/create-test-wrapper.js +1 -1
- package/dist/testing/create-test-wrapper.js.map +1 -1
- package/dist/testing/devtools-utils.d.ts +26 -0
- package/dist/testing/devtools-utils.d.ts.map +1 -0
- package/dist/testing/devtools-utils.js +140 -0
- package/dist/testing/devtools-utils.js.map +1 -0
- package/dist/testing/extend-expect.d.ts.map +1 -1
- package/dist/testing/extend-expect.js +63 -1
- package/dist/testing/extend-expect.js.map +1 -1
- package/dist/testing/render.d.ts +2 -2
- package/dist/testing/render.d.ts.map +1 -1
- package/dist/testing/render.js +2 -2
- package/dist/testing/render.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +21 -7
- package/scripts/copy-devtools-ui.mjs +26 -0
- package/src/binder.ts +71 -16
- package/src/components/AccessExpression.test.tsx +132 -0
- package/src/components/AccessExpression.tsx +344 -0
- package/src/components/AppendFile.tsx +14 -9
- package/src/components/Block.tsx +1 -1
- package/src/components/Declaration.tsx +2 -1
- package/src/components/Prose.tsx +1 -1
- package/src/components/Scope.tsx +6 -1
- package/src/components/SourceDirectory.tsx +1 -2
- package/src/components/TemplateFile.tsx +18 -9
- package/src/components/index.tsx +1 -0
- package/src/content-slot.tsx +7 -7
- package/src/context.ts +17 -6
- package/src/{debug.ts → debug/cli.ts} +114 -125
- package/src/debug/diagnostics.test.tsx +55 -0
- package/src/debug/effects.test.tsx +89 -0
- package/src/debug/effects.ts +317 -0
- package/src/debug/files.test.tsx +96 -0
- package/src/debug/files.ts +40 -0
- package/src/debug/index.ts +128 -0
- package/src/debug/render.test.tsx +379 -0
- package/src/debug/render.ts +639 -0
- package/src/debug/serialize.ts +85 -0
- package/src/debug/symbols.test.tsx +106 -0
- package/src/debug/symbols.ts +239 -0
- package/src/debug/trace.ts +312 -0
- package/src/devtools/devtools-protocol.ts +312 -0
- package/src/devtools/devtools-server.browser.ts +71 -0
- package/src/devtools/devtools-server.ts +290 -0
- package/src/devtools/devtools-transport.ts +154 -0
- package/src/devtools-entry.browser.ts +52 -0
- package/src/devtools-entry.ts +54 -0
- package/src/diagnostics.ts +141 -0
- package/src/index.ts +2 -7
- package/src/print-hook.ts +22 -0
- package/src/reactive-union-set.ts +85 -44
- package/src/reactivity.ts +301 -59
- package/src/render-stack.ts +73 -1
- package/src/render.ts +470 -161
- package/src/resource.ts +28 -19
- package/src/scheduler.ts +80 -4
- package/src/symbols/basic-symbol.ts +6 -1
- package/src/symbols/decl.ts +5 -1
- package/src/symbols/output-scope.ts +21 -13
- package/src/symbols/output-symbol.ts +34 -14
- package/src/symbols/symbol-flow.ts +76 -39
- package/src/symbols/symbol-slot.test.tsx +41 -0
- package/src/symbols/symbol-slot.tsx +47 -20
- package/src/symbols/symbol-table.ts +6 -10
- package/src/trace.ts +1 -0
- package/src/tracer.ts +13 -242
- package/src/utils.tsx +24 -17
- package/temp/api.json +5658 -3095
- package/test/components/append-file.test.tsx +36 -29
- package/test/components/template-file.test.tsx +11 -11
- package/test/lazy-isempty.test.tsx +106 -0
- package/test/reactive-union-set-disposers.test.tsx +112 -0
- package/test/reactivity/shallow-reactive.test.tsx +56 -0
- package/test/rendering/basic.test.tsx +4 -0
- package/test/rendering/print-render-stack.test.tsx +52 -43
- package/test/scheduler-extended.test.tsx +122 -0
- package/test/scheduler.test.tsx +50 -0
- package/testing/create-test-wrapper.tsx +1 -1
- package/testing/devtools-utils.ts +203 -0
- package/testing/extend-expect.ts +89 -0
- package/testing/render.ts +2 -2
- package/testing/vitest.d.ts +9 -0
- package/dist/src/debug.d.ts +0 -14
- package/dist/src/debug.d.ts.map +0 -1
- package/dist/src/debug.js.map +0 -1
package/dist/src/reactivity.js
CHANGED
|
@@ -1,38 +1,63 @@
|
|
|
1
|
-
import { isRef, pauseTracking, ref,
|
|
1
|
+
import { isRef, pauseTracking, resetTracking, stop, computed as vueComputed, effect as vueEffect, ref as vueRef, shallowReactive as vueShallowReactive, shallowRef as vueShallowRef, toRef as vueToRef, toRefs as vueToRefs } from "@vue/reactivity";
|
|
2
|
+
import { captureSourceLocation, debug, isDevtoolsEnabled } from "./debug/index.js";
|
|
2
3
|
import { scheduler } from "./scheduler.js";
|
|
3
|
-
import { trace, TracePhase } from "./tracer.js";
|
|
4
|
-
|
|
5
|
-
// check for multiple versions of alloy here.
|
|
6
4
|
if (globalThis.__ALLOY__) {
|
|
7
5
|
throw new Error("Multiple versions of Alloy are loaded for this project. This will likely cause undesirable behavior.");
|
|
8
6
|
}
|
|
9
7
|
globalThis.__ALLOY__ = true;
|
|
10
8
|
export function getElementCache() {
|
|
11
|
-
|
|
9
|
+
const ctx = getContext();
|
|
10
|
+
return ctx.elementCache ??= new Map();
|
|
12
11
|
}
|
|
12
|
+
let contextIdCounter = 0;
|
|
13
13
|
let globalContext = null;
|
|
14
14
|
export function getContext() {
|
|
15
15
|
return globalContext;
|
|
16
16
|
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Walk up the owner chain to find the nearest ancestor context that
|
|
20
|
+
* corresponds to an effect (has meta.effectId). This bridges non-effect
|
|
21
|
+
* scopes (like createRoot iterations in For) so the owner chain always
|
|
22
|
+
* connects effect-to-effect.
|
|
23
|
+
*/
|
|
24
|
+
function resolveOwnerEffectContextId(context) {
|
|
25
|
+
let owner = context.owner;
|
|
26
|
+
while (owner) {
|
|
27
|
+
if (owner.meta?.effectId !== undefined) {
|
|
28
|
+
return owner.id;
|
|
29
|
+
}
|
|
30
|
+
owner = owner.owner;
|
|
31
|
+
}
|
|
32
|
+
return context.owner?.id ?? null;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Ensure that a context has an isEmpty ref, creating one if needed.
|
|
37
|
+
* Only call this when you need to reactively observe isEmpty (e.g.,
|
|
38
|
+
* ContentSlot, mapJoin). Most contexts don't need an isEmpty ref.
|
|
39
|
+
*/
|
|
40
|
+
export function ensureIsEmpty(context) {
|
|
41
|
+
context.isEmpty ??= ref(context.childrenWithContent === 0);
|
|
42
|
+
return context.isEmpty;
|
|
43
|
+
}
|
|
17
44
|
export function root(fn, options) {
|
|
18
45
|
const context = {
|
|
46
|
+
id: contextIdCounter++,
|
|
19
47
|
componentOwner: options?.componentOwner,
|
|
20
|
-
disposables: [],
|
|
21
48
|
owner: globalContext,
|
|
22
|
-
context: {},
|
|
23
|
-
elementCache: new Map(),
|
|
24
49
|
takesSymbols: false,
|
|
25
50
|
takenSymbols: undefined,
|
|
26
51
|
childrenWithContent: 0,
|
|
27
|
-
|
|
52
|
+
_lastEmpty: true,
|
|
28
53
|
isRoot: true
|
|
29
54
|
};
|
|
30
55
|
globalContext = context;
|
|
31
56
|
let ret;
|
|
32
57
|
try {
|
|
33
58
|
ret = untrack(() => fn(() => {
|
|
34
|
-
for (const d of context.disposables) {
|
|
35
|
-
d
|
|
59
|
+
for (const d of context.disposables ?? []) {
|
|
60
|
+
untrack(d);
|
|
36
61
|
}
|
|
37
62
|
}));
|
|
38
63
|
} finally {
|
|
@@ -46,36 +71,127 @@ export function untrack(fn) {
|
|
|
46
71
|
resetTracking();
|
|
47
72
|
return v;
|
|
48
73
|
}
|
|
49
|
-
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Walk up the context owner chain to find the nearest effect ID.
|
|
77
|
+
* Used to attribute reactive mutations to the effect that caused them.
|
|
78
|
+
*/
|
|
79
|
+
export function findCurrentEffectId() {
|
|
80
|
+
let ctx = globalContext;
|
|
81
|
+
while (ctx) {
|
|
82
|
+
const id = ctx.meta?.effectId;
|
|
83
|
+
if (id !== undefined && id !== -1) return id;
|
|
84
|
+
ctx = ctx.owner;
|
|
85
|
+
}
|
|
86
|
+
return undefined;
|
|
87
|
+
}
|
|
88
|
+
export function memo(fn, equal, name) {
|
|
50
89
|
const o = shallowRef();
|
|
51
90
|
effect(prev => {
|
|
52
91
|
const res = fn();
|
|
53
92
|
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
|
54
93
|
(!equal || prev !== res) && (o.value = res);
|
|
55
94
|
return res;
|
|
56
|
-
}, undefined
|
|
57
|
-
|
|
95
|
+
}, undefined, {
|
|
96
|
+
debug: {
|
|
97
|
+
name: name ? `memo:${name}` : "memo"
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
const getter = () => o.value;
|
|
101
|
+
if (name) {
|
|
102
|
+
Object.defineProperty(getter, "name", {
|
|
103
|
+
value: name,
|
|
104
|
+
configurable: true
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
return getter;
|
|
58
108
|
}
|
|
59
|
-
export function effect(fn, current) {
|
|
109
|
+
export function effect(fn, current, options) {
|
|
60
110
|
const context = {
|
|
61
|
-
|
|
62
|
-
disposables: [],
|
|
111
|
+
id: contextIdCounter++,
|
|
63
112
|
owner: globalContext,
|
|
64
|
-
elementCache: new Map(),
|
|
65
113
|
takesSymbols: false,
|
|
66
114
|
takenSymbols: undefined,
|
|
67
115
|
childrenWithContent: 0,
|
|
116
|
+
_lastEmpty: true,
|
|
68
117
|
isRoot: false
|
|
69
118
|
};
|
|
119
|
+
const debugInfo = options?.debug;
|
|
120
|
+
const effectId = debug.effect.register({
|
|
121
|
+
name: debugInfo?.name ?? fn.name,
|
|
122
|
+
type: debugInfo?.type,
|
|
123
|
+
createdAt: captureSourceLocation(),
|
|
124
|
+
contextId: context.id,
|
|
125
|
+
ownerContextId: resolveOwnerEffectContextId(context)
|
|
126
|
+
});
|
|
127
|
+
if (effectId !== -1) {
|
|
128
|
+
context.meta ??= {};
|
|
129
|
+
context.meta.effectId = effectId;
|
|
130
|
+
}
|
|
70
131
|
const cleanupFn = final => {
|
|
71
132
|
const d = context.disposables;
|
|
72
|
-
context.disposables =
|
|
73
|
-
|
|
133
|
+
context.disposables = undefined;
|
|
134
|
+
if (d) {
|
|
135
|
+
for (let k = 0, len = d.length; k < len; k++) untrack(d[k]);
|
|
136
|
+
}
|
|
74
137
|
|
|
75
138
|
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
|
76
139
|
final && stop(runner);
|
|
77
140
|
};
|
|
78
141
|
onCleanup(() => cleanupFn(true));
|
|
142
|
+
const effectOpts = {
|
|
143
|
+
// allow recursive effects with 32, 1 and 4 are default flags
|
|
144
|
+
flags: 1 | 4 | 32,
|
|
145
|
+
scheduler: scheduler()
|
|
146
|
+
};
|
|
147
|
+
if (effectId !== -1) {
|
|
148
|
+
effectOpts.onTrack = event => {
|
|
149
|
+
const targetKey = typeof event.key === "symbol" ? event.key.toString() : event.key;
|
|
150
|
+
if (isRef(event.target)) {
|
|
151
|
+
const id = refId(event.target);
|
|
152
|
+
debug.effect.ensureRef({
|
|
153
|
+
id,
|
|
154
|
+
kind: "ref"
|
|
155
|
+
});
|
|
156
|
+
debug.effect.track({
|
|
157
|
+
effectId,
|
|
158
|
+
target: event.target,
|
|
159
|
+
refId: id,
|
|
160
|
+
targetKey
|
|
161
|
+
});
|
|
162
|
+
} else {
|
|
163
|
+
debug.effect.track({
|
|
164
|
+
effectId,
|
|
165
|
+
target: event.target,
|
|
166
|
+
targetKey
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
};
|
|
170
|
+
effectOpts.onTrigger = event => {
|
|
171
|
+
const targetKey = typeof event.key === "symbol" ? event.key.toString() : event.key;
|
|
172
|
+
if (isRef(event.target)) {
|
|
173
|
+
const id = refId(event.target);
|
|
174
|
+
debug.effect.ensureRef({
|
|
175
|
+
id,
|
|
176
|
+
kind: "ref"
|
|
177
|
+
});
|
|
178
|
+
debug.effect.trigger({
|
|
179
|
+
effectId,
|
|
180
|
+
target: event.target,
|
|
181
|
+
refId: id,
|
|
182
|
+
targetKey,
|
|
183
|
+
kind: "triggered-by"
|
|
184
|
+
});
|
|
185
|
+
} else {
|
|
186
|
+
debug.effect.trigger({
|
|
187
|
+
effectId,
|
|
188
|
+
target: event.target,
|
|
189
|
+
targetKey,
|
|
190
|
+
kind: "triggered-by"
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
};
|
|
194
|
+
}
|
|
79
195
|
const runner = vueEffect(() => {
|
|
80
196
|
cleanupFn(false);
|
|
81
197
|
const oldContext = globalContext;
|
|
@@ -85,22 +201,10 @@ export function effect(fn, current) {
|
|
|
85
201
|
} finally {
|
|
86
202
|
globalContext = oldContext;
|
|
87
203
|
}
|
|
88
|
-
},
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
scheduler: scheduler(),
|
|
93
|
-
onTrack(event) {
|
|
94
|
-
trace(TracePhase.effect.track, () => {
|
|
95
|
-
return `tracking ${isRef(event.target) ? `Ref:${refId(event.target)}` : event.target}, ${String(event.key)}`;
|
|
96
|
-
});
|
|
97
|
-
},
|
|
98
|
-
onTrigger(event) {
|
|
99
|
-
trace(TracePhase.effect.trigger, () => {
|
|
100
|
-
return `triggering ${isRef(event.target) ? `Ref:${refId(event.target)}` : event.target}, ${String(event.key)}`;
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
});
|
|
204
|
+
}, effectOpts);
|
|
205
|
+
if (effectId !== -1) {
|
|
206
|
+
effectIdMap.set(runner.effect, effectId);
|
|
207
|
+
}
|
|
104
208
|
}
|
|
105
209
|
|
|
106
210
|
/**
|
|
@@ -123,7 +227,7 @@ export function effect(fn, current) {
|
|
|
123
227
|
*/
|
|
124
228
|
export function onCleanup(fn) {
|
|
125
229
|
if (globalContext != null) {
|
|
126
|
-
globalContext.disposables.push(fn);
|
|
230
|
+
(globalContext.disposables ??= []).push(fn);
|
|
127
231
|
}
|
|
128
232
|
}
|
|
129
233
|
|
|
@@ -144,14 +248,96 @@ export function createCustomContext(useCallback) {
|
|
|
144
248
|
export function isCustomContext(child) {
|
|
145
249
|
return typeof child === "object" && child !== null && Object.hasOwn(child, CUSTOM_CONTEXT_SYM);
|
|
146
250
|
}
|
|
251
|
+
export function ref(value, options) {
|
|
252
|
+
const result = vueRef(value);
|
|
253
|
+
debug.effect.registerRef({
|
|
254
|
+
id: refId(result, options?.isInfrastructure),
|
|
255
|
+
kind: "ref",
|
|
256
|
+
createdAt: captureSourceLocation(),
|
|
257
|
+
createdByEffectId: globalContext?.meta?.effectId,
|
|
258
|
+
isInfrastructure: options?.isInfrastructure
|
|
259
|
+
});
|
|
260
|
+
return result;
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
// Stores creation location for shallowReactive objects so registerNonRefTarget
|
|
264
|
+
// can look it up later (since targets are lazily registered on first track/trigger).
|
|
265
|
+
const reactiveCreationLocations = new WeakMap();
|
|
266
|
+
export function getReactiveCreationLocation(target) {
|
|
267
|
+
return reactiveCreationLocations.get(target);
|
|
268
|
+
}
|
|
269
|
+
export function shallowReactive(target) {
|
|
270
|
+
const result = vueShallowReactive(target);
|
|
271
|
+
if (isDevtoolsEnabled()) {
|
|
272
|
+
// Store by raw target — Vue's onTrack/onTrigger events pass the raw object, not the proxy.
|
|
273
|
+
reactiveCreationLocations.set(target, captureSourceLocation());
|
|
274
|
+
}
|
|
275
|
+
return result;
|
|
276
|
+
}
|
|
277
|
+
export function shallowRef(value) {
|
|
278
|
+
const result = vueShallowRef(value);
|
|
279
|
+
debug.effect.registerRef({
|
|
280
|
+
id: refId(result),
|
|
281
|
+
kind: "shallowRef",
|
|
282
|
+
createdAt: captureSourceLocation(),
|
|
283
|
+
createdByEffectId: globalContext?.meta?.effectId
|
|
284
|
+
});
|
|
285
|
+
return result;
|
|
286
|
+
}
|
|
287
|
+
export function computed(getter) {
|
|
288
|
+
const result = vueComputed(getter);
|
|
289
|
+
debug.effect.registerRef({
|
|
290
|
+
id: refId(result),
|
|
291
|
+
kind: "computed",
|
|
292
|
+
createdAt: captureSourceLocation(),
|
|
293
|
+
createdByEffectId: globalContext?.meta?.effectId
|
|
294
|
+
});
|
|
295
|
+
return result;
|
|
296
|
+
}
|
|
297
|
+
export function toRef(object, key, defaultValue) {
|
|
298
|
+
const result = defaultValue === undefined ? vueToRef(object, key) : vueToRef(object, key, defaultValue);
|
|
299
|
+
debug.effect.registerRef({
|
|
300
|
+
id: refId(result),
|
|
301
|
+
kind: "toRef",
|
|
302
|
+
createdAt: captureSourceLocation(),
|
|
303
|
+
createdByEffectId: globalContext?.meta?.effectId
|
|
304
|
+
});
|
|
305
|
+
return result;
|
|
306
|
+
}
|
|
307
|
+
export function toRefs(object) {
|
|
308
|
+
const result = vueToRefs(object);
|
|
309
|
+
for (const refValue of Object.values(result)) {
|
|
310
|
+
debug.effect.registerRef({
|
|
311
|
+
id: refId(refValue),
|
|
312
|
+
kind: "toRef",
|
|
313
|
+
createdAt: captureSourceLocation(),
|
|
314
|
+
createdByEffectId: globalContext?.meta?.effectId
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
return result;
|
|
318
|
+
}
|
|
147
319
|
const seenRefs = new WeakMap();
|
|
148
320
|
let refIdCounter = 1;
|
|
149
|
-
|
|
321
|
+
let infraRefIdCounter = -1;
|
|
322
|
+
const effectIdMap = new WeakMap();
|
|
323
|
+
export function refId(ref, isInfrastructure) {
|
|
150
324
|
let id = seenRefs.get(ref);
|
|
151
325
|
if (id === undefined) {
|
|
152
|
-
id = refIdCounter++;
|
|
326
|
+
id = isInfrastructure ? infraRefIdCounter-- : refIdCounter++;
|
|
153
327
|
seenRefs.set(ref, id);
|
|
154
328
|
}
|
|
155
329
|
return id;
|
|
156
330
|
}
|
|
331
|
+
|
|
332
|
+
/** Allocate a unique reactive target ID from the same counter space as ref IDs. */
|
|
333
|
+
export function nextReactiveId() {
|
|
334
|
+
return refIdCounter++;
|
|
335
|
+
}
|
|
336
|
+
export function resetRefIdCounter() {
|
|
337
|
+
refIdCounter = 1;
|
|
338
|
+
infraRefIdCounter = -1;
|
|
339
|
+
}
|
|
340
|
+
export function getEffectDebugId(effect) {
|
|
341
|
+
return effectIdMap.get(effect);
|
|
342
|
+
}
|
|
157
343
|
//# sourceMappingURL=reactivity.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isRef","pauseTracking","ref","resetTracking","shallowRef","stop","effect","vueEffect","scheduler","trace","TracePhase","globalThis","__ALLOY__","Error","getElementCache","getContext","elementCache","globalContext","root","fn","options","context","componentOwner","disposables","owner","Map","takesSymbols","takenSymbols","undefined","childrenWithContent","isEmpty","isRoot","ret","untrack","d","v","memo","equal","o","prev","res","value","current","cleanupFn","final","k","len","length","runner","onCleanup","oldContext","flags","onTrack","event","track","target","refId","String","key","onTrigger","trigger","push","CUSTOM_CONTEXT_SYM","Symbol","createCustomContext","useCallback","useCustomContext","useCb","isCustomContext","child","Object","hasOwn","seenRefs","WeakMap","refIdCounter","id","get","set"],"sources":["../../src/reactivity.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["isRef","pauseTracking","resetTracking","stop","computed","vueComputed","effect","vueEffect","ref","vueRef","shallowReactive","vueShallowReactive","shallowRef","vueShallowRef","toRef","vueToRef","toRefs","vueToRefs","captureSourceLocation","debug","isDevtoolsEnabled","scheduler","globalThis","__ALLOY__","Error","getElementCache","ctx","getContext","elementCache","Map","contextIdCounter","globalContext","resolveOwnerEffectContextId","context","owner","meta","effectId","undefined","id","ensureIsEmpty","isEmpty","childrenWithContent","root","fn","options","componentOwner","takesSymbols","takenSymbols","_lastEmpty","isRoot","ret","untrack","d","disposables","v","findCurrentEffectId","memo","equal","name","o","prev","res","value","getter","Object","defineProperty","configurable","current","debugInfo","register","type","createdAt","contextId","ownerContextId","cleanupFn","final","k","len","length","runner","onCleanup","effectOpts","flags","onTrack","event","targetKey","key","toString","target","refId","ensureRef","kind","track","onTrigger","trigger","oldContext","effectIdMap","set","push","CUSTOM_CONTEXT_SYM","Symbol","createCustomContext","useCallback","useCustomContext","useCb","isCustomContext","child","hasOwn","result","registerRef","isInfrastructure","createdByEffectId","reactiveCreationLocations","WeakMap","getReactiveCreationLocation","get","object","defaultValue","refValue","values","seenRefs","refIdCounter","infraRefIdCounter","nextReactiveId","resetRefIdCounter","getEffectDebugId"],"sources":["../../src/reactivity.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,13 +1,30 @@
|
|
|
1
|
+
import { Context } from "./reactivity.js";
|
|
1
2
|
import { Component, Props, SourceLocation } from "./runtime/component.js";
|
|
3
|
+
export interface RenderStackSnapshotEntry {
|
|
4
|
+
component: Component<any>;
|
|
5
|
+
props: Props;
|
|
6
|
+
context: Context | null;
|
|
7
|
+
source?: SourceLocation;
|
|
8
|
+
displayName: string;
|
|
9
|
+
}
|
|
2
10
|
export declare function pushStack(component: Component<any>, props: Props, source?: SourceLocation): void;
|
|
3
11
|
export declare function popStack(): void;
|
|
12
|
+
export declare function currentComponentName(): string | undefined;
|
|
4
13
|
export declare function clearRenderStack(): void;
|
|
14
|
+
/**
|
|
15
|
+
* Get the current rendering path from the render stack context.
|
|
16
|
+
* Prefers SourceFileContext over SourceDirectoryContext.
|
|
17
|
+
*/
|
|
18
|
+
export declare function getCurrentRenderPath(): string | undefined;
|
|
19
|
+
export declare function getRenderStackSnapshot(): RenderStackSnapshotEntry[];
|
|
5
20
|
/**
|
|
6
21
|
* Print the current render stack to the console for debugging.
|
|
7
22
|
*
|
|
8
23
|
* This differs from debug.component.stack in that this uses a purpose-built
|
|
9
24
|
* stack rather than walking the context chain. When this is called, the context
|
|
10
25
|
* chain has been restored. In the future this can probably be unified nicely.
|
|
26
|
+
*
|
|
27
|
+
* @param error - Optional error to print the stack trace from
|
|
11
28
|
*/
|
|
12
|
-
export declare function printRenderStack(): void;
|
|
29
|
+
export declare function printRenderStack(error?: unknown): void;
|
|
13
30
|
//# sourceMappingURL=render-stack.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-stack.d.ts","sourceRoot":"","sources":["../../src/render-stack.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"render-stack.d.ts","sourceRoot":"","sources":["../../src/render-stack.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAc,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAU1E,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;IAC1B,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,SAAS,CACvB,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,EACzB,KAAK,EAAE,KAAK,EACZ,MAAM,CAAC,EAAE,cAAc,QAGxB;AAED,wBAAgB,QAAQ,SAEvB;AAED,wBAAgB,oBAAoB,IAAI,MAAM,GAAG,SAAS,CAGzD;AAED,wBAAgB,gBAAgB,SAE/B;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,GAAG,SAAS,CAoBzD;AAED,wBAAgB,sBAAsB,IAAI,wBAAwB,EAAE,CAQnE;AA4DD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,CAAC,EAAE,OAAO,QAkJ/C"}
|
package/dist/src/render-stack.js
CHANGED
|
@@ -16,10 +16,47 @@ export function pushStack(component, props, source) {
|
|
|
16
16
|
export function popStack() {
|
|
17
17
|
renderStack.pop();
|
|
18
18
|
}
|
|
19
|
+
export function currentComponentName() {
|
|
20
|
+
const entry = renderStack[renderStack.length - 1];
|
|
21
|
+
return entry?.component.name || undefined;
|
|
22
|
+
}
|
|
19
23
|
export function clearRenderStack() {
|
|
20
24
|
renderStack.length = 0;
|
|
21
25
|
}
|
|
22
26
|
|
|
27
|
+
/**
|
|
28
|
+
* Get the current rendering path from the render stack context.
|
|
29
|
+
* Prefers SourceFileContext over SourceDirectoryContext.
|
|
30
|
+
*/
|
|
31
|
+
export function getCurrentRenderPath() {
|
|
32
|
+
let currentPath;
|
|
33
|
+
for (let i = renderStack.length - 1; i >= 0; i--) {
|
|
34
|
+
const {
|
|
35
|
+
context
|
|
36
|
+
} = renderStack[i];
|
|
37
|
+
// Prefer SourceFileContext over SourceDirectoryContext
|
|
38
|
+
if (context?.context?.[SourceFileContext.id]) {
|
|
39
|
+
const fileContext = context.context[SourceFileContext.id];
|
|
40
|
+
return fileContext.path;
|
|
41
|
+
}
|
|
42
|
+
if (!currentPath && context?.context?.[SourceDirectoryContext.id]) {
|
|
43
|
+
const dirContext = context.context[SourceDirectoryContext.id];
|
|
44
|
+
currentPath = dirContext.path;
|
|
45
|
+
// Don't break - keep looking for a SourceFileContext
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return currentPath;
|
|
49
|
+
}
|
|
50
|
+
export function getRenderStackSnapshot() {
|
|
51
|
+
return renderStack.map(entry => ({
|
|
52
|
+
component: entry.component,
|
|
53
|
+
props: entry.props,
|
|
54
|
+
context: entry.context,
|
|
55
|
+
source: entry.source,
|
|
56
|
+
displayName: getComponentDisplayName(entry.component, entry.props)
|
|
57
|
+
}));
|
|
58
|
+
}
|
|
59
|
+
|
|
23
60
|
// Helper functions
|
|
24
61
|
function getComponentDisplayName(component, props) {
|
|
25
62
|
// Check if this is a Provider and if we can find its context name
|
|
@@ -75,8 +112,10 @@ function formatSourceLocation(source) {
|
|
|
75
112
|
* This differs from debug.component.stack in that this uses a purpose-built
|
|
76
113
|
* stack rather than walking the context chain. When this is called, the context
|
|
77
114
|
* chain has been restored. In the future this can probably be unified nicely.
|
|
115
|
+
*
|
|
116
|
+
* @param error - Optional error to print the stack trace from
|
|
78
117
|
*/
|
|
79
|
-
export function printRenderStack() {
|
|
118
|
+
export function printRenderStack(error) {
|
|
80
119
|
// Find the nearest SourceFileContext or SourceDirectoryContext from the render stack
|
|
81
120
|
let currentPath;
|
|
82
121
|
for (let i = renderStack.length - 1; i >= 0; i--) {
|
|
@@ -103,6 +142,27 @@ export function printRenderStack() {
|
|
|
103
142
|
console.error(pc.red("Error rendering:"));
|
|
104
143
|
}
|
|
105
144
|
|
|
145
|
+
// Print the error message and stack if provided
|
|
146
|
+
if (error) {
|
|
147
|
+
if (error instanceof Error) {
|
|
148
|
+
// eslint-disable-next-line no-console
|
|
149
|
+
console.error(pc.red(` ${error.message}`));
|
|
150
|
+
if (error.stack) {
|
|
151
|
+
// Print stack lines (skip the first line which is the error message)
|
|
152
|
+
const stackLines = error.stack.split("\n").slice(1);
|
|
153
|
+
for (const line of stackLines) {
|
|
154
|
+
// eslint-disable-next-line no-console
|
|
155
|
+
console.error(pc.gray(line));
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
} else {
|
|
159
|
+
// eslint-disable-next-line no-console
|
|
160
|
+
console.error(pc.red(` ${String(error)}`));
|
|
161
|
+
}
|
|
162
|
+
// eslint-disable-next-line no-console
|
|
163
|
+
console.error(); // Empty line before component stack
|
|
164
|
+
}
|
|
165
|
+
|
|
106
166
|
// First pass: determine which providers should be nested vs standalone
|
|
107
167
|
// A provider should be nested under its parent if it's from a different file
|
|
108
168
|
// (i.e., it's part of the component's implementation, not user-provided)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["pc","contextsByKey","SourceDirectoryContext","SourceFileContext","getContext","renderStack","pushStack","component","props","source","push","context","popStack","pop","
|
|
1
|
+
{"version":3,"names":["pc","contextsByKey","SourceDirectoryContext","SourceFileContext","getContext","renderStack","pushStack","component","props","source","push","context","popStack","pop","currentComponentName","entry","length","name","undefined","clearRenderStack","getCurrentRenderPath","currentPath","i","id","fileContext","path","dirContext","getRenderStackSnapshot","map","displayName","getComponentDisplayName","ctx","values","Provider","inspectProps","entries","Object","filter","key","value","formattedValue","formatValue","dim","join","blue","String","gray","formatSourceLocation","cwd","process","filePath","fileName","startsWith","slice","lineNumber","columnNumber","printRenderStack","error","console","red","Error","message","stack","stackLines","split","line","nestedProviderIndices","Set","j","providerEntry","shouldNest","add","has","sourceStr","cyan","bold","propsStr","providerName","providerSourceStr","magenta","providerPropsStr"],"sources":["../../src/render-stack.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/src/render.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { printHookTag, type PrintHook, type RenderedTextTree } from "./print-hook.js";
|
|
2
2
|
import { Context } from "./reactivity.js";
|
|
3
3
|
import { Children } from "./runtime/component.js";
|
|
4
4
|
/**
|
|
@@ -98,16 +98,9 @@ export interface ContentOutputFile extends OutputFileBase {
|
|
|
98
98
|
}
|
|
99
99
|
export type OutputFile = ContentOutputFile | CopyOutputFile;
|
|
100
100
|
export declare function getContextForRenderNode(node: RenderedTextTree): Context | undefined;
|
|
101
|
-
export declare
|
|
102
|
-
export
|
|
103
|
-
[printHookTag]: true;
|
|
104
|
-
transform?(tree: RenderedTextTree): RenderedTextTree;
|
|
105
|
-
print?(tree: RenderedTextTree, print: (subtree: RenderedTextTree) => Doc): Doc;
|
|
106
|
-
subtree: RenderedTextTree;
|
|
107
|
-
}
|
|
101
|
+
export declare function getDiagnosticsForTree(tree: RenderedTextTree): import("./diagnostics.js").Diagnostic[];
|
|
102
|
+
export { isPrintHook, printHookTag, type PrintHook, type RenderedTextTree, } from "./print-hook.js";
|
|
108
103
|
export declare function createRenderTreeHook(subtree: RenderedTextTree, hooks: Omit<PrintHook, typeof printHookTag | "subtree">): PrintHook;
|
|
109
|
-
export declare function isPrintHook(type: unknown): type is PrintHook;
|
|
110
|
-
export type RenderedTextTree = (string | RenderedTextTree | PrintHook)[];
|
|
111
104
|
/**
|
|
112
105
|
* Render a component tree to source directories and files. Will ensure that
|
|
113
106
|
* all non-async scheduled jobs are completed before returning. If async jobs
|
|
@@ -120,11 +113,6 @@ export declare function render(children: Children, options?: PrintTreeOptions):
|
|
|
120
113
|
* scheduled jobs are completed before returning.
|
|
121
114
|
*/
|
|
122
115
|
export declare function renderAsync(children: Children, options?: PrintTreeOptions): Promise<OutputDirectory>;
|
|
123
|
-
/**
|
|
124
|
-
* Convert a rendered text tree to source directories and files. Will ensure that
|
|
125
|
-
* all scheduled jobs are completed, including async ones.
|
|
126
|
-
*/
|
|
127
|
-
export declare function sourceFilesForTreeAsync(tree: RenderedTextTree, options?: PrintTreeOptions): Promise<OutputDirectory>;
|
|
128
116
|
/**
|
|
129
117
|
* Convert a rendered text tree to source directories and files. Will ensure
|
|
130
118
|
* that all scheduled jobs are completed before returning.
|
|
@@ -151,6 +139,11 @@ export interface PrintTreeOptions {
|
|
|
151
139
|
* @default true
|
|
152
140
|
*/
|
|
153
141
|
insertFinalNewLine?: boolean;
|
|
142
|
+
/**
|
|
143
|
+
* Skip flushing scheduled jobs before printing.
|
|
144
|
+
* @default false
|
|
145
|
+
*/
|
|
146
|
+
noFlush?: boolean;
|
|
154
147
|
}
|
|
155
148
|
/**
|
|
156
149
|
* Convert a rendered text tree to a string. Will ensure that the scheduler is
|
package/dist/src/render.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/render.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/render.ts"],"names":[],"mappings":"AAkBA,OAAO,EAEL,YAAY,EACZ,KAAK,SAAS,EACd,KAAK,gBAAgB,EACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,OAAO,EAUR,MAAM,iBAAiB,CAAC;AAQzB,OAAO,EAEL,QAAQ,EAIT,MAAM,wBAAwB,CAAC;AA6GhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8EG;AAEH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,CAAC,eAAe,GAAG,UAAU,CAAC,EAAE,CAAC;CAC5C;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,UAAU,GAAG,iBAAiB,GAAG,cAAc,CAAC;AAK5D,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,gBAAgB,uBAE7D;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,gBAAgB,2CAE3D;AAeD,OAAO,EACL,WAAW,EACX,YAAY,EACZ,KAAK,SAAS,EACd,KAAK,gBAAgB,GACtB,MAAM,iBAAiB,CAAC;AAEzB,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,YAAY,GAAG,SAAS,CAAC,GACtD,SAAS,CAMX;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CACpB,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,gBAAgB,GACzB,eAAe,CAWjB;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,eAAe,CAAC,CAW1B;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,gBAAgB,EACtB,OAAO,CAAC,EAAE,gBAAgB,GACzB,eAAe,CA4FjB;AACD,wBAAgB,UAAU,CAAC,QAAQ,EAAE,QAAQ,oBAsB5C;AA6BD,wBAAgB,kBAAkB,SA6DjC;AAwbD,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAOD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,gBAAgB,UAsB3E"}
|