@darajs/core 1.25.0 → 1.25.2
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/dist/components/for/templating.d.ts +5 -0
- package/dist/components/for/templating.d.ts.map +1 -1
- package/dist/components/for/templating.js +53 -0
- package/dist/components/for/templating.js.map +1 -1
- package/dist/{dara_core-1.25.0-py3-none-any.whl → dara_core-1.25.2-py3-none-any.whl} +0 -0
- package/dist/shared/interactivity/find-stream-variables.d.ts +29 -0
- package/dist/shared/interactivity/find-stream-variables.d.ts.map +1 -0
- package/dist/shared/interactivity/find-stream-variables.js +98 -0
- package/dist/shared/interactivity/find-stream-variables.js.map +1 -0
- package/dist/shared/interactivity/nested.d.ts +13 -4
- package/dist/shared/interactivity/nested.d.ts.map +1 -1
- package/dist/shared/interactivity/nested.js +15 -5
- package/dist/shared/interactivity/nested.js.map +1 -1
- package/dist/shared/interactivity/plain-variable.d.ts.map +1 -1
- package/dist/shared/interactivity/plain-variable.js +4 -2
- package/dist/shared/interactivity/plain-variable.js.map +1 -1
- package/dist/shared/interactivity/resolve-variable.d.ts.map +1 -1
- package/dist/shared/interactivity/resolve-variable.js +2 -0
- package/dist/shared/interactivity/resolve-variable.js.map +1 -1
- package/dist/shared/interactivity/stream-usage-tracker.d.ts +114 -0
- package/dist/shared/interactivity/stream-usage-tracker.d.ts.map +1 -0
- package/dist/shared/interactivity/stream-usage-tracker.js +304 -0
- package/dist/shared/interactivity/stream-usage-tracker.js.map +1 -0
- package/dist/shared/interactivity/stream-variable.d.ts +6 -4
- package/dist/shared/interactivity/stream-variable.d.ts.map +1 -1
- package/dist/shared/interactivity/stream-variable.js +82 -101
- package/dist/shared/interactivity/stream-variable.js.map +1 -1
- package/dist/shared/interactivity/use-server-component.d.ts.map +1 -1
- package/dist/shared/interactivity/use-server-component.js +8 -1
- package/dist/shared/interactivity/use-server-component.js.map +1 -1
- package/dist/shared/interactivity/use-stream-subscription.d.ts +12 -0
- package/dist/shared/interactivity/use-stream-subscription.d.ts.map +1 -0
- package/dist/shared/interactivity/use-stream-subscription.js +40 -0
- package/dist/shared/interactivity/use-stream-subscription.js.map +1 -0
- package/dist/shared/interactivity/use-variable.d.ts.map +1 -1
- package/dist/shared/interactivity/use-variable.js +8 -0
- package/dist/shared/interactivity/use-variable.js.map +1 -1
- package/dist/shared/utils/hashing.d.ts.map +1 -1
- package/dist/shared/utils/hashing.js +17 -1
- package/dist/shared/utils/hashing.js.map +1 -1
- package/dist/shared/utils/normalization.d.ts.map +1 -1
- package/dist/shared/utils/normalization.js +17 -1
- package/dist/shared/utils/normalization.js.map +1 -1
- package/dist/types/core.d.ts +12 -8
- package/dist/types/core.d.ts.map +1 -1
- package/dist/types/core.js.map +1 -1
- package/dist/umd/dara.core.umd.cjs +817 -381
- package/package.json +9 -9
|
@@ -15,6 +15,11 @@ export type Marker = {
|
|
|
15
15
|
type: 'server_component';
|
|
16
16
|
path: string;
|
|
17
17
|
loopInstanceUid: string;
|
|
18
|
+
} | {
|
|
19
|
+
type: 'nested_loop_var';
|
|
20
|
+
path: string;
|
|
21
|
+
nestedIndex: number;
|
|
22
|
+
loopVarNested: string[];
|
|
18
23
|
};
|
|
19
24
|
/**
|
|
20
25
|
* Get markers for injection points in a renderer
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templating.d.ts","sourceRoot":"","sources":["../../../js/components/for/templating.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"templating.d.ts","sourceRoot":"","sources":["../../../js/components/for/templating.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,iBAAiB,EAAa,MAAM,SAAS,CAAC;AAG5D,MAAM,MAAM,MAAM,GACZ;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,GACpD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChC;IACI,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;CAC3B,GACD;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,GAEnE;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AA+D9F;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,EAAE,CA6D3E;AAGD,eAAO,MAAM,YAAY,YAAY,CAAC;AACtC,eAAO,MAAM,cAAc,cAAc,CAAC;AAC1C,eAAO,MAAM,eAAe,eAAe,CAAC;AAE5C;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EACxD,QAAQ,EACR,OAAO,EACP,SAAS,EACT,OAAO,EACP,KAAK,EACL,WAAW,GACd,EAAE;IACC,QAAQ,EAAE,CAAC,CAAC;IACZ,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,GAAG,CAAC;IACf,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACvB,GAAG,CAAC,CAyDJ;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI,CAQtE"}
|
|
@@ -1,10 +1,23 @@
|
|
|
1
1
|
import cloneDeep from 'lodash/cloneDeep';
|
|
2
|
+
import get from 'lodash/get';
|
|
2
3
|
import isPlainObject from 'lodash/isPlainObject';
|
|
3
4
|
import set from 'lodash/set';
|
|
4
5
|
import { nanoid } from 'nanoid';
|
|
5
6
|
import * as React from 'react';
|
|
6
7
|
import { resolveNested } from '../../shared/interactivity/nested';
|
|
7
8
|
import { isAnnotatedAction, isDerivedVariable, isLoopVariable, isPyComponent } from '../../types/utils';
|
|
9
|
+
/**
|
|
10
|
+
* Check if a value is a variable with a nested array (Variable, DerivedVariable, StreamVariable)
|
|
11
|
+
*/
|
|
12
|
+
function isVariableWithNested(value) {
|
|
13
|
+
return (value &&
|
|
14
|
+
typeof value === 'object' &&
|
|
15
|
+
'__typename' in value &&
|
|
16
|
+
typeof value.__typename === 'string' &&
|
|
17
|
+
value.__typename.includes('Variable') &&
|
|
18
|
+
'nested' in value &&
|
|
19
|
+
Array.isArray(value.nested));
|
|
20
|
+
}
|
|
8
21
|
/**
|
|
9
22
|
* Create markers for a given scope and loop instance uid.
|
|
10
23
|
* Used in the terminal case when we find a loop variable. Adds markers for the current action/derived variable/server component we're within.
|
|
@@ -51,6 +64,36 @@ export function getInjectionMarkers(renderer) {
|
|
|
51
64
|
markers.push({ path: dotPath, nested: value.nested, type: 'loop_var' }, ...createMarkers(scope, value.uid));
|
|
52
65
|
continue;
|
|
53
66
|
}
|
|
67
|
+
// Check if this is a variable with a nested array containing LoopVariables
|
|
68
|
+
// (Variable, DerivedVariable, StreamVariable - but not LoopVariable itself)
|
|
69
|
+
if (isVariableWithNested(value) && !isLoopVariable(value)) {
|
|
70
|
+
for (let i = 0; i < value.nested.length; i++) {
|
|
71
|
+
const nestedKey = value.nested[i];
|
|
72
|
+
if (isLoopVariable(nestedKey)) {
|
|
73
|
+
markers.push({
|
|
74
|
+
type: 'nested_loop_var',
|
|
75
|
+
path: dotPath,
|
|
76
|
+
nestedIndex: i,
|
|
77
|
+
loopVarNested: nestedKey.nested,
|
|
78
|
+
});
|
|
79
|
+
// Also add derived_var/server_component markers if this variable needs separate caching
|
|
80
|
+
if (isDerivedVariable(value)) {
|
|
81
|
+
markers.push({
|
|
82
|
+
type: 'derived_var',
|
|
83
|
+
path: dotPath,
|
|
84
|
+
loopInstanceUid: nestedKey.uid,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
if (isPyComponent(value)) {
|
|
88
|
+
markers.push({
|
|
89
|
+
type: 'server_component',
|
|
90
|
+
path: dotPath,
|
|
91
|
+
loopInstanceUid: nestedKey.uid,
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
54
97
|
if (isPlainObject(value) || Array.isArray(value)) {
|
|
55
98
|
const newScope = updateScope(scope, value, dotPath);
|
|
56
99
|
// recurse into objects/arrays, keeping track of the path
|
|
@@ -100,6 +143,16 @@ export function applyMarkers({ renderer, markers, loopValue, itemKey, index, ite
|
|
|
100
143
|
set(clonedRenderer, marker.path, value);
|
|
101
144
|
break;
|
|
102
145
|
}
|
|
146
|
+
case 'nested_loop_var': {
|
|
147
|
+
// Resolve LoopVariable inside a variable's nested array to a string key
|
|
148
|
+
const resolvedKey = resolveNested(loopValue, marker.loopVarNested);
|
|
149
|
+
// Replace the LoopVariable in the nested array with the resolved string
|
|
150
|
+
const variable = get(clonedRenderer, marker.path);
|
|
151
|
+
if (variable && Array.isArray(variable.nested)) {
|
|
152
|
+
variable.nested[marker.nestedIndex] = String(resolvedKey);
|
|
153
|
+
}
|
|
154
|
+
break;
|
|
155
|
+
}
|
|
103
156
|
case 'action': {
|
|
104
157
|
// regenerate uids for actions for the loading variables as well so they are separate
|
|
105
158
|
set(clonedRenderer, `${marker.path}.loading.uid`, nanoid());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templating.js","sourceRoot":"","sources":["../../../js/components/for/templating.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,kBAAkB,CAAC;AACzC,OAAO,aAAa,MAAM,sBAAsB,CAAC;AACjD,OAAO,GAAG,MAAM,YAAY,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE9D,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"templating.js","sourceRoot":"","sources":["../../../js/components/for/templating.ts"],"names":[],"mappings":"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"}
|
|
Binary file
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Find Stream Variables
|
|
3
|
+
*
|
|
4
|
+
* Recursively walks a variable's dependency tree to find all StreamVariables.
|
|
5
|
+
* Used for tracking stream usage when components mount/unmount.
|
|
6
|
+
*/
|
|
7
|
+
import { type AnyVariable, type StreamVariable } from '../../types';
|
|
8
|
+
/**
|
|
9
|
+
* Recursively find all StreamVariables in a variable's dependency tree.
|
|
10
|
+
*
|
|
11
|
+
* Handles all variable types:
|
|
12
|
+
* - DerivedVariable: walks `variables` array
|
|
13
|
+
* - SwitchVariable: walks `value`, `value_map`, `default`
|
|
14
|
+
* - StateVariable: walks `parent_variable`
|
|
15
|
+
* - SingleVariable: walks `default` (can be DerivedVariable via create_from_derived)
|
|
16
|
+
* - StreamVariable: collects it and walks its `variables` array
|
|
17
|
+
*
|
|
18
|
+
* @param variable The variable to search
|
|
19
|
+
* @returns Array of all StreamVariables found in the dependency tree
|
|
20
|
+
*/
|
|
21
|
+
export declare function findStreamVariables(variable: AnyVariable<unknown>): StreamVariable[];
|
|
22
|
+
/**
|
|
23
|
+
* Find all StreamVariables in an array of variables.
|
|
24
|
+
*
|
|
25
|
+
* @param variables Array of variables to search
|
|
26
|
+
* @returns Array of all unique StreamVariables found
|
|
27
|
+
*/
|
|
28
|
+
export declare function findStreamVariablesInArray(variables: unknown[]): StreamVariable[];
|
|
29
|
+
//# sourceMappingURL=find-stream-variables.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-stream-variables.d.ts","sourceRoot":"","sources":["../../../js/shared/interactivity/find-stream-variables.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EACH,KAAK,WAAW,EAChB,KAAK,cAAc,EAOtB,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,cAAc,EAAE,CA6DpF;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,cAAc,EAAE,CAiBjF"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Find Stream Variables
|
|
3
|
+
*
|
|
4
|
+
* Recursively walks a variable's dependency tree to find all StreamVariables.
|
|
5
|
+
* Used for tracking stream usage when components mount/unmount.
|
|
6
|
+
*/
|
|
7
|
+
import { isCondition, isDerivedVariable, isStateVariable, isStreamVariable, isSwitchVariable, isVariable, } from '../../types';
|
|
8
|
+
/**
|
|
9
|
+
* Recursively find all StreamVariables in a variable's dependency tree.
|
|
10
|
+
*
|
|
11
|
+
* Handles all variable types:
|
|
12
|
+
* - DerivedVariable: walks `variables` array
|
|
13
|
+
* - SwitchVariable: walks `value`, `value_map`, `default`
|
|
14
|
+
* - StateVariable: walks `parent_variable`
|
|
15
|
+
* - SingleVariable: walks `default` (can be DerivedVariable via create_from_derived)
|
|
16
|
+
* - StreamVariable: collects it and walks its `variables` array
|
|
17
|
+
*
|
|
18
|
+
* @param variable The variable to search
|
|
19
|
+
* @returns Array of all StreamVariables found in the dependency tree
|
|
20
|
+
*/
|
|
21
|
+
export function findStreamVariables(variable) {
|
|
22
|
+
const streams = [];
|
|
23
|
+
const visited = new Set();
|
|
24
|
+
function walk(v) {
|
|
25
|
+
if (!isVariable(v)) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
// Prevent infinite loops from circular dependencies
|
|
29
|
+
if (visited.has(v.uid)) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
visited.add(v.uid);
|
|
33
|
+
if (isStreamVariable(v)) {
|
|
34
|
+
streams.push(v);
|
|
35
|
+
// Also walk stream's own dependencies (stream can depend on other variables)
|
|
36
|
+
if (v.variables && Array.isArray(v.variables)) {
|
|
37
|
+
v.variables.forEach(walk);
|
|
38
|
+
}
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
if (isDerivedVariable(v)) {
|
|
42
|
+
if (v.variables && Array.isArray(v.variables)) {
|
|
43
|
+
v.variables.forEach(walk);
|
|
44
|
+
}
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
if (isSwitchVariable(v)) {
|
|
48
|
+
// value can be Variable or Condition (which has .variable)
|
|
49
|
+
if (isVariable(v.value)) {
|
|
50
|
+
walk(v.value);
|
|
51
|
+
}
|
|
52
|
+
else if (isCondition(v.value)) {
|
|
53
|
+
walk(v.value.variable);
|
|
54
|
+
}
|
|
55
|
+
// value_map is Record<string, Variable> - walk all values
|
|
56
|
+
if (v.value_map && typeof v.value_map === 'object') {
|
|
57
|
+
Object.values(v.value_map).forEach(walk);
|
|
58
|
+
}
|
|
59
|
+
if (isVariable(v.default)) {
|
|
60
|
+
walk(v.default);
|
|
61
|
+
}
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
if (isStateVariable(v)) {
|
|
65
|
+
walk(v.parent_variable);
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
// SingleVariable (plain variable) - default can be DerivedVariable
|
|
69
|
+
if ('default' in v && isVariable(v.default)) {
|
|
70
|
+
walk(v.default);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
walk(variable);
|
|
74
|
+
return streams;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Find all StreamVariables in an array of variables.
|
|
78
|
+
*
|
|
79
|
+
* @param variables Array of variables to search
|
|
80
|
+
* @returns Array of all unique StreamVariables found
|
|
81
|
+
*/
|
|
82
|
+
export function findStreamVariablesInArray(variables) {
|
|
83
|
+
const allStreams = [];
|
|
84
|
+
const seenUids = new Set();
|
|
85
|
+
for (const v of variables) {
|
|
86
|
+
if (isVariable(v)) {
|
|
87
|
+
const streams = findStreamVariables(v);
|
|
88
|
+
for (const stream of streams) {
|
|
89
|
+
if (!seenUids.has(stream.uid)) {
|
|
90
|
+
seenUids.add(stream.uid);
|
|
91
|
+
allStreams.push(stream);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return allStreams;
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=find-stream-variables.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-stream-variables.js","sourceRoot":"","sources":["../../../js/shared/interactivity/find-stream-variables.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,25 @@
|
|
|
1
|
+
import type { NestedKey } from '../../types/core';
|
|
1
2
|
/**
|
|
2
3
|
* Resolve the value of the variable using it's optional nested
|
|
3
4
|
*
|
|
5
|
+
* By the time this function is called, templating should have resolved any LoopVariables
|
|
6
|
+
* in the nested array to strings. This function accepts NestedKey[] for type compatibility
|
|
7
|
+
* but expects all elements to be strings at runtime.
|
|
8
|
+
*
|
|
4
9
|
* @param obj an object to resolve from
|
|
5
|
-
* @param nested a list of keys to resolve
|
|
10
|
+
* @param nested a list of keys to resolve (should be strings after templating)
|
|
6
11
|
*/
|
|
7
|
-
export declare function resolveNested<T extends Record<string, any>>(obj: T, nested:
|
|
12
|
+
export declare function resolveNested<T extends Record<string, any>>(obj: T, nested: NestedKey[]): any;
|
|
8
13
|
/**
|
|
9
14
|
* Set a nested value inside a given object.
|
|
10
15
|
*
|
|
16
|
+
* By the time this function is called, templating should have resolved any LoopVariables
|
|
17
|
+
* in the nested array to strings. This function accepts NestedKey[] for type compatibility
|
|
18
|
+
* but expects all elements to be strings at runtime.
|
|
19
|
+
*
|
|
11
20
|
* @param obj an object to set the value of
|
|
12
|
-
* @param nested a list of keys pointing at the value to set
|
|
21
|
+
* @param nested a list of keys pointing at the value to set (should be strings after templating)
|
|
13
22
|
* @param newValue a new value to set
|
|
14
23
|
*/
|
|
15
|
-
export declare function setNested<T extends Record<string, any>>(obj: T, nested:
|
|
24
|
+
export declare function setNested<T extends Record<string, any>>(obj: T, nested: NestedKey[], newValue: unknown): T;
|
|
16
25
|
//# sourceMappingURL=nested.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nested.d.ts","sourceRoot":"","sources":["../../../js/shared/interactivity/nested.tsx"],"names":[],"mappings":"AAGA
|
|
1
|
+
{"version":3,"file":"nested.d.ts","sourceRoot":"","sources":["../../../js/shared/interactivity/nested.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,CA0B7F;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,OAAO,GAAG,CAAC,CAuB1G"}
|
|
@@ -3,8 +3,12 @@ import cloneDeep from 'lodash/cloneDeep';
|
|
|
3
3
|
/**
|
|
4
4
|
* Resolve the value of the variable using it's optional nested
|
|
5
5
|
*
|
|
6
|
+
* By the time this function is called, templating should have resolved any LoopVariables
|
|
7
|
+
* in the nested array to strings. This function accepts NestedKey[] for type compatibility
|
|
8
|
+
* but expects all elements to be strings at runtime.
|
|
9
|
+
*
|
|
6
10
|
* @param obj an object to resolve from
|
|
7
|
-
* @param nested a list of keys to resolve
|
|
11
|
+
* @param nested a list of keys to resolve (should be strings after templating)
|
|
8
12
|
*/
|
|
9
13
|
export function resolveNested(obj, nested) {
|
|
10
14
|
// Nested not provided
|
|
@@ -17,19 +21,25 @@ export function resolveNested(obj, nested) {
|
|
|
17
21
|
}
|
|
18
22
|
let returnVal = obj;
|
|
19
23
|
for (const key of nested) {
|
|
24
|
+
// After templating, all keys are guaranteed to be strings
|
|
25
|
+
const stringKey = key;
|
|
20
26
|
// If the key doesn't exist, return null as we're referring to a path which doesn't exist yet
|
|
21
|
-
if (!Object.keys(returnVal).includes(
|
|
27
|
+
if (!Object.keys(returnVal).includes(stringKey)) {
|
|
22
28
|
return null;
|
|
23
29
|
}
|
|
24
|
-
returnVal = returnVal[
|
|
30
|
+
returnVal = returnVal[stringKey];
|
|
25
31
|
}
|
|
26
32
|
return returnVal;
|
|
27
33
|
}
|
|
28
34
|
/**
|
|
29
35
|
* Set a nested value inside a given object.
|
|
30
36
|
*
|
|
37
|
+
* By the time this function is called, templating should have resolved any LoopVariables
|
|
38
|
+
* in the nested array to strings. This function accepts NestedKey[] for type compatibility
|
|
39
|
+
* but expects all elements to be strings at runtime.
|
|
40
|
+
*
|
|
31
41
|
* @param obj an object to set the value of
|
|
32
|
-
* @param nested a list of keys pointing at the value to set
|
|
42
|
+
* @param nested a list of keys pointing at the value to set (should be strings after templating)
|
|
33
43
|
* @param newValue a new value to set
|
|
34
44
|
*/
|
|
35
45
|
export function setNested(obj, nested, newValue) {
|
|
@@ -43,7 +53,7 @@ export function setNested(obj, nested, newValue) {
|
|
|
43
53
|
}
|
|
44
54
|
// Need to clone to prevent reference issues
|
|
45
55
|
const cloned = clone(obj);
|
|
46
|
-
//
|
|
56
|
+
// After templating, all keys are guaranteed to be strings
|
|
47
57
|
const key = nested[0];
|
|
48
58
|
if (!Object.keys(obj).includes(key)) {
|
|
49
59
|
cloned[key] = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nested.js","sourceRoot":"","sources":["../../../js/shared/interactivity/nested.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,cAAc,CAAC;AACjC,OAAO,SAAS,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"nested.js","sourceRoot":"","sources":["../../../js/shared/interactivity/nested.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,cAAc,CAAC;AACjC,OAAO,SAAS,MAAM,kBAAkB,CAAC;AAIzC;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAAgC,GAAM,EAAE,MAAmB;IACpF,sBAAsB;IACtB,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,GAAG,CAAC;IACf,CAAC;IAED,gBAAgB;IAChB,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC5D,OAAO,GAAG,CAAC;IACf,CAAC;IAED,IAAI,SAAS,GAAG,GAAG,CAAC;IAEpB,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACvB,0DAA0D;QAC1D,MAAM,SAAS,GAAG,GAAa,CAAC;QAEhC,6FAA6F;QAC7F,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,SAAS,CAAgC,GAAM,EAAE,MAAmB,EAAE,QAAiB;IACnG,sBAAsB;IACtB,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,gBAAgB;IAChB,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC5D,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,4CAA4C;IAC5C,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IAE1B,0DAA0D;IAC1D,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAW,CAAC;IAChC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,MAAc,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IAC9B,CAAC;IAEA,MAAc,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAE1G,OAAO,MAAM,CAAC;AAClB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plain-variable.d.ts","sourceRoot":"","sources":["../../../js/shared/interactivity/plain-variable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAmB,KAAK,WAAW,EAAE,KAAK,QAAQ,EAA8B,MAAM,QAAQ,CAAC;AAEtG,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EAAE,KAAK,aAAa,EAA6B,MAAM,YAAY,CAAC;AAE3E,OAAO,EACH,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EAGtB,MAAM,SAAS,CAAC;AASjB;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,EACxC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,EAC3B,QAAQ,EAAE,wBAAwB,EAClC,WAAW,EAAE,iBAAiB,EAC9B,MAAM,EAAE,aAAa,GACtB,WAAW,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"plain-variable.d.ts","sourceRoot":"","sources":["../../../js/shared/interactivity/plain-variable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAmB,KAAK,WAAW,EAAE,KAAK,QAAQ,EAA8B,MAAM,QAAQ,CAAC;AAEtG,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EAAE,KAAK,aAAa,EAA6B,MAAM,YAAY,CAAC;AAE3E,OAAO,EACH,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EAGtB,MAAM,SAAS,CAAC;AASjB;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,EACxC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,EAC3B,QAAQ,EAAE,wBAAwB,EAClC,WAAW,EAAE,iBAAiB,EAC9B,MAAM,EAAE,aAAa,GACtB,WAAW,CAAC,CAAC,CAAC,CAkJhB;AAED,wBAAgB,0BAA0B,CAAC,CAAC,EACxC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,EAC3B,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GACvB,eAAe,GAAG,CAAC,CAoBrB"}
|
|
@@ -109,11 +109,13 @@ export function getOrRegisterPlainVariable(variable, wsClient, taskContext, extr
|
|
|
109
109
|
selectorFamilyRegistry.set(key, selectorFamily({
|
|
110
110
|
get: (currentExtras) => ({ get }) => {
|
|
111
111
|
const variableValue = get(family(currentExtras));
|
|
112
|
-
|
|
112
|
+
// After templating, all nested keys are guaranteed to be strings
|
|
113
|
+
return resolveNested(variableValue, variable.nested);
|
|
113
114
|
},
|
|
114
115
|
key,
|
|
115
116
|
set: (currentExtras) => ({ set }, newValue) => {
|
|
116
|
-
|
|
117
|
+
// After templating, all nested keys are guaranteed to be strings
|
|
118
|
+
set(family(currentExtras), (v) => setNested(v, variable.nested, newValue));
|
|
117
119
|
},
|
|
118
120
|
}));
|
|
119
121
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plain-variable.js","sourceRoot":"","sources":["../../../js/shared/interactivity/plain-variable.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"plain-variable.js","sourceRoot":"","sources":["../../../js/shared/interactivity/plain-variable.tsx"],"names":[],"mappings":"AACA,OAAO,EAAoD,UAAU,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAEtG,OAAO,EAAiC,MAAM,OAAO,CAAC;AACtD,OAAO,EAAsB,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAIH,iBAAiB,EACjB,gBAAgB,GACnB,MAAM,SAAS,CAAC;AAEjB,2CAA2C;AAC3C,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,4BAA4B,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvG,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEhH,MAAM,kBAAkB,GAAG,IAAI,iBAAiB,EAAE,CAAC;AAEnD;;;;;;;;;GASG;AACH,MAAM,UAAU,0BAA0B,CACtC,QAA2B,EAC3B,QAAkC,EAClC,WAA8B,EAC9B,MAAqB;IAErB,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAC/D,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAE7D,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxC,kBAAkB,CAAC,GAAG,CAClB,QAAQ,CAAC,GAAG,EACZ,UAAU,CAAC;YACP;;;;;;;cAOE;YACF,OAAO,EACH,gBAAgB,CAAC,CAAC;gBACd,CAAC,kBAA6C,EAAE,EAAE,CAC9C,4BAA4B,CACxB,QAAQ,CAAC,OAA0B,EACnC,QAAQ,EACR,WAAW,EACX,kBAAkB,CAAC,MAAM,CAC5B;gBACT,CAAC,CAAG,QAAQ,CAAC,OAAO;YACxB,OAAO,EAAE,CAAC,kBAA6C,EAAE,EAAE;gBACvD,MAAM,UAAU,GAAkB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE;oBACtE,wEAAwE;oBACxE,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;wBACjD,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;oBAChE,CAAC;yBAAM,CAAC;wBACJ,MAAM,YAAY,GAAG,kBAAkB,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;wBAEtE,IAAI,CAAC,gBAAgB,IAAI,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,IAAI,MAAK,SAAS,EAAE,CAAC;4BACxD,2CAA2C;4BAC3C,2EAA2E;4BAC3E,6FAA6F;4BAC7F,OAAO,CAAC,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,KAAK,CAAC,CAAC;wBACjC,CAAC;oBACL,CAAC;oBAED,sDAAsD;oBACtD,MAAM,KAAK,GAAG,kBAAkB,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE;wBAChE,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;4BAC5B,OAAO;wBACX,CAAC;wBAED,kCAAkC;wBAClC,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;4BAC9B,OAAO;wBACX,CAAC;wBAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;4BACjB,SAAS,EAAE,CAAC;wBAChB,CAAC;6BAAM,CAAC;4BACJ,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBAC1B,CAAC;oBACL,CAAC,CAAC,CAAC;oBAEH,KAAK,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;wBAClC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE;4BACpC,OAAO;4BACP,OAAO,EAAE,IAAI,CAAC,GAAG;4BACjB,QAAQ;4BACR,IAAI,EAAE,QAAQ;4BACd,KAAK,EAAE,QAAQ;yBAClB,CAAC,CAAC;oBACP,CAAC,CAAC,CAAC;oBAEH,OAAO,KAAK,CAAC;gBACjB,CAAC,CAAC;gBAEF,MAAM,OAAO,GAAoB,CAAC,UAAU,CAAC,CAAC;gBAE9C,MAAM,WAAW,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;gBACxC,IAAI,WAAW,EAAE,CAAC;oBACd,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;gBACnF,CAAC;qBAAM,IAAI,UAAU,EAAE,EAAE,CAAC;oBACtB,mFAAmF;oBACnF,8BAA8B;oBAC9B,OAAO,CAAC,IAAI,CACR,MAAM,CAAC,YAAY,CAAC,MAAM,CACtB,QAAkC,EAClC,kBAAkB,EAClB,QAAQ,EACR,WAAW,CACd,CACJ,CAAC;gBACN,CAAC;gBAED,OAAO,OAAO,CAAC;YACnB,CAAC;YACD,GAAG,EAAE,QAAQ,CAAC,GAAG;SACpB,CAAC,CACL,CAAC;IACN,CAAC;IAED,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAE,CAAC;IACrD,MAAM,kBAAkB,GAAG,IAAI,yBAAyB,CAAC,MAAM,CAAC,CAAC;IACjE,MAAM,YAAY,GAAmB,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAEhE,0FAA0F;IAC1F,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACzC,yBAAyB,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,yBAAyB,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,GAAG,CAAC,kBAAkB,CAAC,MAAM,EAAE,EAAE,YAAY,CAAC,CAAC;IAEtF,4FAA4F;IAC5F,IAAI,QAAQ,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,cAAc,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QAExD,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,iDAAiD;YACjD,gHAAgH;YAChH,4CAA4C;YAC5C,sBAAsB,CAAC,GAAG,CACtB,GAAG,EACH,cAAc,CAAC;gBACX,GAAG,EACC,CAAC,aAAwC,EAAE,EAAE,CAC7C,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;oBACR,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;oBAEjD,iEAAiE;oBACjE,OAAO,aAAa,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAkB,CAAC,CAAC;gBACrE,CAAC;gBACL,GAAG;gBACH,GAAG,EACC,CAAC,aAAwC,EAAE,EAAE,CAC7C,CAAC,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,EAAE;oBAClB,iEAAiE;oBACjE,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAsB,EAAE,EAAE,CAClD,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAkB,EAAE,QAAQ,CAAC,CACtD,CAAC;gBACN,CAAC;aACR,CAAC,CACL,CAAC;QACN,CAAC;QACD,MAAM,sBAAsB,GAAG,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;QAEhE,6CAA6C;QAC7C,OAAO,sBAAsB,CAAC,kBAAkB,CAAmB,CAAC;IACxE,CAAC;IAED,OAAO,YAAY,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,0BAA0B,CACtC,QAA2B,EAC3B,QAAkB,EAClB,MAAsB;IAEtB,gEAAgE;IAChE,IAAI,QAAQ,CAAC,KAAK,IAAI,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrD,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAO,CAAC;IACnD,CAAC;IAED,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAEpD,IAAI,MAAM,EAAE,CAAC;QACT,MAAM,kBAAkB,GAAG,IAAI,yBAAyB,CAAC,EAAE,CAAC,CAAC;QAC7D,MAAM,YAAY,GAAG,yBAAyB,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,GAAG,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7F,IAAI,YAAY,EAAE,CAAC;YACf,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,UAAU,EAAE,CAAC;YAClE,IAAI,SAAS,KAAK,IAAI,IAAI,CAAC,CAAC,SAAS,YAAY,OAAO,CAAC,EAAE,CAAC;gBACxD,OAAO,SAAS,CAAC;YACrB,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC,OAAO,CAAC;AAC5B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-variable.d.ts","sourceRoot":"","sources":["../../../js/shared/interactivity/resolve-variable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAEzD,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EACH,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAU9B,MAAM,SAAS,CAAC;AAOjB;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,KAAK;gBAC3B,OAAO,EAAE,MAAM;CAI9B;AAED,wBAAsB,eAAe,CAAC,YAAY,EAC9C,QAAQ,EAAE,WAAW,CAAC,YAAY,CAAC,EACnC,MAAM,EAAE,wBAAwB,EAChC,WAAW,EAAE,iBAAiB,EAC9B,MAAM,EAAE,aAAa,EACrB,QAAQ,GAAE,CACN,KAAK,EAAE,WAAW,CAAC,YAAY,CAAC,KAC/B,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,uBAAuB,GAAG,YAAY,CAAqC,GACrH,OAAO,CACN,WAAW,CAAC,YAAY,CAAC,GAAG,uBAAuB,GAAG,sBAAsB,GAAG,sBAAsB,GAAG,YAAY,CACvH,
|
|
1
|
+
{"version":3,"file":"resolve-variable.d.ts","sourceRoot":"","sources":["../../../js/shared/interactivity/resolve-variable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAEzD,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EACH,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAU9B,MAAM,SAAS,CAAC;AAOjB;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,KAAK;gBAC3B,OAAO,EAAE,MAAM;CAI9B;AAED,wBAAsB,eAAe,CAAC,YAAY,EAC9C,QAAQ,EAAE,WAAW,CAAC,YAAY,CAAC,EACnC,MAAM,EAAE,wBAAwB,EAChC,WAAW,EAAE,iBAAiB,EAC9B,MAAM,EAAE,aAAa,EACrB,QAAQ,GAAE,CACN,KAAK,EAAE,WAAW,CAAC,YAAY,CAAC,KAC/B,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,uBAAuB,GAAG,YAAY,CAAqC,GACrH,OAAO,CACN,WAAW,CAAC,YAAY,CAAC,GAAG,uBAAuB,GAAG,sBAAsB,GAAG,sBAAsB,GAAG,YAAY,CACvH,CA2EA;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CA2EjH;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,GAAG,CAuBhF;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAQ9G;AAED;;;;;;GAMG;AAEH,wBAAgB,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,GAAG,uBAAuB,CAAC,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,GAAG,EAAE,CAE/G"}
|
|
@@ -49,6 +49,7 @@ export function resolveVariable(variable_1, client_1, taskContext_1, extras_1) {
|
|
|
49
49
|
type: 'derived',
|
|
50
50
|
uid: variable.uid,
|
|
51
51
|
values,
|
|
52
|
+
// After templating, nested should be all strings
|
|
52
53
|
nested: variable.nested,
|
|
53
54
|
};
|
|
54
55
|
}
|
|
@@ -108,6 +109,7 @@ export function resolveVariableStatic(variable, snapshot, params) {
|
|
|
108
109
|
type: 'derived',
|
|
109
110
|
uid: variable.uid,
|
|
110
111
|
values,
|
|
112
|
+
// After templating, nested should be all strings
|
|
111
113
|
nested: variable.nested,
|
|
112
114
|
};
|
|
113
115
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-variable.js","sourceRoot":"","sources":["../../../js/shared/interactivity/resolve-variable.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AACA,OAAO,EAAmC,MAAM,QAAQ,CAAC;AAEzD,OAAO,EAAiC,MAAM,OAAO,CAAC;AACtD,OAAO,EAAsB,MAAM,YAAY,CAAC;AAChD,OAAO,EAMH,WAAW,EACX,iBAAiB,EACjB,yBAAyB,EACzB,wBAAwB,EACxB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,GACb,MAAM,SAAS,CAAC;AAEjB,2CAA2C;AAC3C,OAAO,EAAE,4BAA4B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAClH,OAAO,EAAE,2BAA2B,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AACpH,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAEhE;;;GAGG;AACH,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACvC,YAAY,OAAe;QACvB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACnC,CAAC;CACJ;AAED,MAAM,UAAgB,eAAe;yDACjC,QAAmC,EACnC,MAAgC,EAChC,WAA8B,EAC9B,MAAqB,EACrB,WAEmF,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;QAIpH,IAAI,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9B,4BAA4B,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;YAEpE,6DAA6D;YAC7D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC5B,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAC3F,CAAC;YAEF,4CAA4C;YAC5C,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAEhG,OAAO;gBACH,IAAI;gBACJ,IAAI,EAAE,SAAS;gBACf,GAAG,EAAE,QAAQ,CAAC,GAAG;gBACjB,MAAM;gBACN,MAAM,EAAE,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"resolve-variable.js","sourceRoot":"","sources":["../../../js/shared/interactivity/resolve-variable.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stream Usage Tracker
|
|
3
|
+
*
|
|
4
|
+
* Tracks which stream variables are actively used by components via useEffect.
|
|
5
|
+
* This is the ONLY reliable signal for component lifecycle (not render-time).
|
|
6
|
+
*
|
|
7
|
+
* Architecture:
|
|
8
|
+
* 1. Atom effect starts SSE immediately and registers a cleanup callback
|
|
9
|
+
* 2. Components register via useEffect (increment count)
|
|
10
|
+
* 3. Components unregister via useEffect cleanup (decrement count)
|
|
11
|
+
* 4. When count hits 0 → debounce → call cleanup callbacks → SSE stops
|
|
12
|
+
*
|
|
13
|
+
* The atom effect cleanup is NOT reliable (Recoil caching), so we actively
|
|
14
|
+
* manage cleanup from here when components unregister.
|
|
15
|
+
*
|
|
16
|
+
* Subscriptions are keyed by uid+extras to handle different auth contexts
|
|
17
|
+
* using the same variable independently.
|
|
18
|
+
*/
|
|
19
|
+
import { type RequestExtras } from '../../api/http';
|
|
20
|
+
interface StreamConnection {
|
|
21
|
+
/** Function to start/restart the SSE connection, returns cleanup and controller */
|
|
22
|
+
start: () => {
|
|
23
|
+
cleanup: () => void;
|
|
24
|
+
controller: AbortController;
|
|
25
|
+
};
|
|
26
|
+
/** Cleanup function to abort SSE connection (set when start() is called) */
|
|
27
|
+
cleanup?: () => void;
|
|
28
|
+
/** AbortController for this connection (for direct abort access) */
|
|
29
|
+
controller?: AbortController;
|
|
30
|
+
/** Whether connection is currently active */
|
|
31
|
+
active: boolean;
|
|
32
|
+
}
|
|
33
|
+
interface StreamUsage {
|
|
34
|
+
/** Number of components actively subscribed (via useEffect) */
|
|
35
|
+
count: number;
|
|
36
|
+
/** Timer for debounced cleanup when count reaches 0 */
|
|
37
|
+
cleanupTimer?: ReturnType<typeof setTimeout>;
|
|
38
|
+
/** Timer for orphan cleanup when connection registers but no subscription arrives */
|
|
39
|
+
orphanTimer?: ReturnType<typeof setTimeout>;
|
|
40
|
+
/** Registered connections for this uid (atomKey -> connection) */
|
|
41
|
+
connections: Map<string, StreamConnection>;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Abort an existing connection for the given atomKey, if one exists.
|
|
45
|
+
* Called before starting a new connection to ensure no duplicates.
|
|
46
|
+
*
|
|
47
|
+
* @param atomKey Unique key for the connection (serialized params)
|
|
48
|
+
* @returns true if a connection was aborted, false otherwise
|
|
49
|
+
*/
|
|
50
|
+
export declare function abortExistingConnection(atomKey: string): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Register a stream connection from atom effect.
|
|
53
|
+
* The start function is called immediately, and will be called again
|
|
54
|
+
* if the connection needs to restart after cleanup.
|
|
55
|
+
*
|
|
56
|
+
* @param uid Stream variable uid
|
|
57
|
+
* @param extras Request extras (auth headers, etc.)
|
|
58
|
+
* @param atomKey Unique key for this connection (serialized params)
|
|
59
|
+
* @param start Function to start the SSE connection, returns { cleanup, controller }
|
|
60
|
+
* @returns Unregister function (backup cleanup, not relied upon)
|
|
61
|
+
*/
|
|
62
|
+
export declare function registerStreamConnection(uid: string, extras: RequestExtras, atomKey: string, start: () => {
|
|
63
|
+
cleanup: () => void;
|
|
64
|
+
controller: AbortController;
|
|
65
|
+
}): () => void;
|
|
66
|
+
/**
|
|
67
|
+
* Subscribe to a stream. Call this from component useEffect.
|
|
68
|
+
*
|
|
69
|
+
* @param uid Stream variable uid
|
|
70
|
+
* @param extras Request extras (auth headers, etc.)
|
|
71
|
+
* @returns Unsubscribe function to call in useEffect cleanup
|
|
72
|
+
*/
|
|
73
|
+
export declare function subscribeStream(uid: string, extras: RequestExtras): () => void;
|
|
74
|
+
/**
|
|
75
|
+
* Check if a stream has active subscribers.
|
|
76
|
+
*/
|
|
77
|
+
export declare function isStreamActive(uid: string, extras: RequestExtras): boolean;
|
|
78
|
+
/**
|
|
79
|
+
* Get subscriber count for a stream.
|
|
80
|
+
*/
|
|
81
|
+
export declare function getStreamSubscriberCount(uid: string, extras: RequestExtras): number;
|
|
82
|
+
/**
|
|
83
|
+
* Force cleanup all streams. Useful for testing or app shutdown.
|
|
84
|
+
*/
|
|
85
|
+
export declare function cleanupAllStreams(): void;
|
|
86
|
+
/**
|
|
87
|
+
* Clear all stream usage tracking. Used for testing.
|
|
88
|
+
*/
|
|
89
|
+
export declare function clearStreamUsage_TEST(): void;
|
|
90
|
+
/**
|
|
91
|
+
* Get total count of active connections across all subscription keys.
|
|
92
|
+
* Useful for testing.
|
|
93
|
+
*/
|
|
94
|
+
export declare function getActiveConnectionCount(): number;
|
|
95
|
+
/**
|
|
96
|
+
* Get all active connection keys (atomKeys).
|
|
97
|
+
* Useful for testing.
|
|
98
|
+
*/
|
|
99
|
+
export declare function getActiveConnectionKeys(): string[];
|
|
100
|
+
/**
|
|
101
|
+
* Get the AbortController for a specific atomKey, if active.
|
|
102
|
+
* Useful for testing.
|
|
103
|
+
*/
|
|
104
|
+
export declare function getConnectionController(atomKey: string): AbortController | undefined;
|
|
105
|
+
/**
|
|
106
|
+
* Internal exports for testing
|
|
107
|
+
*/
|
|
108
|
+
export declare const _internal: {
|
|
109
|
+
streamUsage: Map<string, StreamUsage>;
|
|
110
|
+
PAUSE_DEBOUNCE_MS: number;
|
|
111
|
+
ORPHAN_TIMEOUT_MS: number;
|
|
112
|
+
};
|
|
113
|
+
export {};
|
|
114
|
+
//# sourceMappingURL=stream-usage-tracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream-usage-tracker.d.ts","sourceRoot":"","sources":["../../../js/shared/interactivity/stream-usage-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAgBhD,UAAU,gBAAgB;IACtB,mFAAmF;IACnF,KAAK,EAAE,MAAM;QAAE,OAAO,EAAE,MAAM,IAAI,CAAC;QAAC,UAAU,EAAE,eAAe,CAAA;KAAE,CAAC;IAClE,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,oEAAoE;IACpE,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,6CAA6C;IAC7C,MAAM,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,WAAW;IACjB,+DAA+D;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,YAAY,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IAC7C,qFAAqF;IACrF,WAAW,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IAC5C,kEAAkE;IAClE,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CAC9C;AAwED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAahE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CACpC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM;IAAE,OAAO,EAAE,MAAM,IAAI,CAAC;IAAC,UAAU,EAAE,eAAe,CAAA;CAAE,GAClE,MAAM,IAAI,CAkDZ;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM,IAAI,CAuC9E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAI1E;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM,CAGnF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAexC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAUjD;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,EAAE,CAUlD;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAQpF;AAED;;GAEG;AACH,eAAO,MAAM,SAAS;;;;CAIrB,CAAC"}
|