@domql/utils 3.8.0 → 3.8.6
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/cjs/if.js +13 -3
- package/dist/cjs/object.js +11 -0
- package/dist/cjs/props.js +1 -1
- package/dist/cjs/triggerEvent.js +7 -2
- package/dist/esm/if.js +13 -3
- package/dist/esm/object.js +11 -0
- package/dist/esm/props.js +1 -1
- package/dist/esm/triggerEvent.js +7 -2
- package/dist/iife/index.js +49 -6
- package/if.js +14 -6
- package/object.js +16 -0
- package/package.json +2 -2
- package/props.js +2 -1
- package/triggerEvent.js +9 -2
package/dist/cjs/if.js
CHANGED
|
@@ -22,9 +22,19 @@ __export(if_exports, {
|
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(if_exports);
|
|
24
24
|
var import_types = require("./types.js");
|
|
25
|
+
var import_object = require("./object.js");
|
|
25
26
|
const createIfConditionFlag = (element, parent) => {
|
|
26
27
|
const { __ref: ref } = element;
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
const ifVal = element.if;
|
|
29
|
+
if ((0, import_types.isFunction)(ifVal)) {
|
|
30
|
+
if (!ifVal(element, element.state, element.context)) {
|
|
31
|
+
delete ref.__if;
|
|
32
|
+
} else ref.__if = true;
|
|
33
|
+
} else if (ifVal != null && typeof ifVal === "object") {
|
|
34
|
+
const result = (0, import_object.exec)(ifVal, element);
|
|
35
|
+
if (!result) delete ref.__if;
|
|
36
|
+
else ref.__if = true;
|
|
37
|
+
} else {
|
|
38
|
+
ref.__if = true;
|
|
39
|
+
}
|
|
30
40
|
};
|
package/dist/cjs/object.js
CHANGED
|
@@ -76,6 +76,17 @@ const exec = (param, element, state, context) => {
|
|
|
76
76
|
}
|
|
77
77
|
return result;
|
|
78
78
|
}
|
|
79
|
+
if (param != null && element?.context?.plugins && ((0, import_types.isArray)(param) || (0, import_types.isObject)(param) && !(0, import_node.isDOMNode)(param))) {
|
|
80
|
+
const plugins = element.context.plugins;
|
|
81
|
+
for (const plugin of plugins) {
|
|
82
|
+
if (plugin.resolveHandler) {
|
|
83
|
+
const resolved = plugin.resolveHandler(param, element);
|
|
84
|
+
if (typeof resolved === "function") {
|
|
85
|
+
return exec(resolved, element, state, context);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
79
90
|
return param;
|
|
80
91
|
};
|
|
81
92
|
const map = (obj, extention, element) => {
|
package/dist/cjs/props.js
CHANGED
|
@@ -113,7 +113,7 @@ function pickupPropsFromElement(obj, opts = {}) {
|
|
|
113
113
|
const isElement = RE_UPPER.test(key) || RE_DIGITS.test(key) || looksLikeElement(value);
|
|
114
114
|
const isBuiltin = import_keys.DOMQ_PROPERTIES.has(key);
|
|
115
115
|
if (!isElement && !isBuiltin) {
|
|
116
|
-
obj.props[key] = value;
|
|
116
|
+
if (!(key in obj.props)) obj.props[key] = value;
|
|
117
117
|
delete obj[key];
|
|
118
118
|
cachedKeys.push(key);
|
|
119
119
|
}
|
package/dist/cjs/triggerEvent.js
CHANGED
|
@@ -48,13 +48,18 @@ const applyEvent = (param, element, state, context, options) => {
|
|
|
48
48
|
if (result && typeof result.then === "function") {
|
|
49
49
|
result.catch((err) => {
|
|
50
50
|
element.error = err;
|
|
51
|
-
console.
|
|
51
|
+
if (err instanceof ReferenceError) console.warn("[DOMQL] Async event warning:", err.message);
|
|
52
|
+
else console.error("[DOMQL] Async event error:", err);
|
|
52
53
|
});
|
|
53
54
|
}
|
|
54
55
|
return result;
|
|
55
56
|
} catch (err) {
|
|
56
57
|
element.error = err;
|
|
57
|
-
|
|
58
|
+
if (err instanceof ReferenceError) {
|
|
59
|
+
console.warn("[DOMQL] Event handler warning:", err.message);
|
|
60
|
+
} else {
|
|
61
|
+
console.error("[DOMQL] Event handler error:", err);
|
|
62
|
+
}
|
|
58
63
|
if (element.context?.strictMode) throw err;
|
|
59
64
|
}
|
|
60
65
|
};
|
package/dist/esm/if.js
CHANGED
|
@@ -1,9 +1,19 @@
|
|
|
1
1
|
import { isFunction } from "./types.js";
|
|
2
|
+
import { exec } from "./object.js";
|
|
2
3
|
const createIfConditionFlag = (element, parent) => {
|
|
3
4
|
const { __ref: ref } = element;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
const ifVal = element.if;
|
|
6
|
+
if (isFunction(ifVal)) {
|
|
7
|
+
if (!ifVal(element, element.state, element.context)) {
|
|
8
|
+
delete ref.__if;
|
|
9
|
+
} else ref.__if = true;
|
|
10
|
+
} else if (ifVal != null && typeof ifVal === "object") {
|
|
11
|
+
const result = exec(ifVal, element);
|
|
12
|
+
if (!result) delete ref.__if;
|
|
13
|
+
else ref.__if = true;
|
|
14
|
+
} else {
|
|
15
|
+
ref.__if = true;
|
|
16
|
+
}
|
|
7
17
|
};
|
|
8
18
|
export {
|
|
9
19
|
createIfConditionFlag
|
package/dist/esm/object.js
CHANGED
|
@@ -31,6 +31,17 @@ const exec = (param, element, state, context) => {
|
|
|
31
31
|
}
|
|
32
32
|
return result;
|
|
33
33
|
}
|
|
34
|
+
if (param != null && element?.context?.plugins && (isArray(param) || isObject(param) && !isDOMNode(param))) {
|
|
35
|
+
const plugins = element.context.plugins;
|
|
36
|
+
for (const plugin of plugins) {
|
|
37
|
+
if (plugin.resolveHandler) {
|
|
38
|
+
const resolved = plugin.resolveHandler(param, element);
|
|
39
|
+
if (typeof resolved === "function") {
|
|
40
|
+
return exec(resolved, element, state, context);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
34
45
|
return param;
|
|
35
46
|
};
|
|
36
47
|
const map = (obj, extention, element) => {
|
package/dist/esm/props.js
CHANGED
|
@@ -75,7 +75,7 @@ function pickupPropsFromElement(obj, opts = {}) {
|
|
|
75
75
|
const isElement = RE_UPPER.test(key) || RE_DIGITS.test(key) || looksLikeElement(value);
|
|
76
76
|
const isBuiltin = DOMQ_PROPERTIES.has(key);
|
|
77
77
|
if (!isElement && !isBuiltin) {
|
|
78
|
-
obj.props[key] = value;
|
|
78
|
+
if (!(key in obj.props)) obj.props[key] = value;
|
|
79
79
|
delete obj[key];
|
|
80
80
|
cachedKeys.push(key);
|
|
81
81
|
}
|
package/dist/esm/triggerEvent.js
CHANGED
|
@@ -22,13 +22,18 @@ const applyEvent = (param, element, state, context, options) => {
|
|
|
22
22
|
if (result && typeof result.then === "function") {
|
|
23
23
|
result.catch((err) => {
|
|
24
24
|
element.error = err;
|
|
25
|
-
console.
|
|
25
|
+
if (err instanceof ReferenceError) console.warn("[DOMQL] Async event warning:", err.message);
|
|
26
|
+
else console.error("[DOMQL] Async event error:", err);
|
|
26
27
|
});
|
|
27
28
|
}
|
|
28
29
|
return result;
|
|
29
30
|
} catch (err) {
|
|
30
31
|
element.error = err;
|
|
31
|
-
|
|
32
|
+
if (err instanceof ReferenceError) {
|
|
33
|
+
console.warn("[DOMQL] Event handler warning:", err.message);
|
|
34
|
+
} else {
|
|
35
|
+
console.error("[DOMQL] Event handler error:", err);
|
|
36
|
+
}
|
|
32
37
|
if (element.context?.strictMode) throw err;
|
|
33
38
|
}
|
|
34
39
|
};
|
package/dist/iife/index.js
CHANGED
|
@@ -31,8 +31,13 @@ var DomqlUtils = (() => {
|
|
|
31
31
|
});
|
|
32
32
|
|
|
33
33
|
// dist/esm/node.js
|
|
34
|
+
var isDOMNode2;
|
|
34
35
|
var init_node = __esm({
|
|
35
36
|
"dist/esm/node.js"() {
|
|
37
|
+
init_globals();
|
|
38
|
+
isDOMNode2 = (obj) => {
|
|
39
|
+
return typeof window3 !== "undefined" && (window3.Node && obj instanceof window3.Node || window3.Window && obj instanceof window3.Window || obj === window3 || obj === document);
|
|
40
|
+
};
|
|
36
41
|
}
|
|
37
42
|
});
|
|
38
43
|
|
|
@@ -155,6 +160,7 @@ var DomqlUtils = (() => {
|
|
|
155
160
|
var init_object = __esm({
|
|
156
161
|
"dist/esm/object.js"() {
|
|
157
162
|
init_types();
|
|
163
|
+
init_node();
|
|
158
164
|
exec2 = (param, element, state, context) => {
|
|
159
165
|
if (isFunction2(param)) {
|
|
160
166
|
if (!element) return;
|
|
@@ -173,6 +179,17 @@ var DomqlUtils = (() => {
|
|
|
173
179
|
}
|
|
174
180
|
return result;
|
|
175
181
|
}
|
|
182
|
+
if (param != null && element?.context?.plugins && (isArray2(param) || isObject2(param) && !isDOMNode2(param))) {
|
|
183
|
+
const plugins = element.context.plugins;
|
|
184
|
+
for (const plugin of plugins) {
|
|
185
|
+
if (plugin.resolveHandler) {
|
|
186
|
+
const resolved = plugin.resolveHandler(param, element);
|
|
187
|
+
if (typeof resolved === "function") {
|
|
188
|
+
return exec2(resolved, element, state, context);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
176
193
|
return param;
|
|
177
194
|
};
|
|
178
195
|
}
|
|
@@ -982,6 +999,7 @@ var DomqlUtils = (() => {
|
|
|
982
999
|
const session = await adapter.getSession();
|
|
983
1000
|
updateAuth(session?.user || null, session);
|
|
984
1001
|
} catch (e) {
|
|
1002
|
+
console.warn("[fetch] Failed to restore auth session:", e.message);
|
|
985
1003
|
}
|
|
986
1004
|
if (adapter.onAuthStateChange) {
|
|
987
1005
|
adapter.onAuthStateChange((event, session) => {
|
|
@@ -2295,6 +2313,17 @@ var DomqlUtils = (() => {
|
|
|
2295
2313
|
}
|
|
2296
2314
|
return result;
|
|
2297
2315
|
}
|
|
2316
|
+
if (param != null && element?.context?.plugins && (isArray(param) || isObject(param) && !isDOMNode(param))) {
|
|
2317
|
+
const plugins = element.context.plugins;
|
|
2318
|
+
for (const plugin of plugins) {
|
|
2319
|
+
if (plugin.resolveHandler) {
|
|
2320
|
+
const resolved = plugin.resolveHandler(param, element);
|
|
2321
|
+
if (typeof resolved === "function") {
|
|
2322
|
+
return exec(resolved, element, state, context);
|
|
2323
|
+
}
|
|
2324
|
+
}
|
|
2325
|
+
}
|
|
2326
|
+
}
|
|
2298
2327
|
return param;
|
|
2299
2328
|
};
|
|
2300
2329
|
var map = (obj, extention, element) => {
|
|
@@ -2943,9 +2972,18 @@ var DomqlUtils = (() => {
|
|
|
2943
2972
|
// if.js
|
|
2944
2973
|
var createIfConditionFlag = (element, parent) => {
|
|
2945
2974
|
const { __ref: ref } = element;
|
|
2946
|
-
|
|
2947
|
-
|
|
2948
|
-
|
|
2975
|
+
const ifVal = element.if;
|
|
2976
|
+
if (isFunction(ifVal)) {
|
|
2977
|
+
if (!ifVal(element, element.state, element.context)) {
|
|
2978
|
+
delete ref.__if;
|
|
2979
|
+
} else ref.__if = true;
|
|
2980
|
+
} else if (ifVal != null && typeof ifVal === "object") {
|
|
2981
|
+
const result = exec(ifVal, element);
|
|
2982
|
+
if (!result) delete ref.__if;
|
|
2983
|
+
else ref.__if = true;
|
|
2984
|
+
} else {
|
|
2985
|
+
ref.__if = true;
|
|
2986
|
+
}
|
|
2949
2987
|
};
|
|
2950
2988
|
|
|
2951
2989
|
// log.js
|
|
@@ -3698,7 +3736,7 @@ var DomqlUtils = (() => {
|
|
|
3698
3736
|
const isElement = RE_UPPER.test(key) || RE_DIGITS.test(key) || looksLikeElement(value);
|
|
3699
3737
|
const isBuiltin = DOMQ_PROPERTIES.has(key);
|
|
3700
3738
|
if (!isElement && !isBuiltin) {
|
|
3701
|
-
obj.props[key] = value;
|
|
3739
|
+
if (!(key in obj.props)) obj.props[key] = value;
|
|
3702
3740
|
delete obj[key];
|
|
3703
3741
|
cachedKeys.push(key);
|
|
3704
3742
|
}
|
|
@@ -4151,13 +4189,18 @@ var DomqlUtils = (() => {
|
|
|
4151
4189
|
if (result && typeof result.then === "function") {
|
|
4152
4190
|
result.catch((err) => {
|
|
4153
4191
|
element.error = err;
|
|
4154
|
-
console.
|
|
4192
|
+
if (err instanceof ReferenceError) console.warn("[DOMQL] Async event warning:", err.message);
|
|
4193
|
+
else console.error("[DOMQL] Async event error:", err);
|
|
4155
4194
|
});
|
|
4156
4195
|
}
|
|
4157
4196
|
return result;
|
|
4158
4197
|
} catch (err) {
|
|
4159
4198
|
element.error = err;
|
|
4160
|
-
|
|
4199
|
+
if (err instanceof ReferenceError) {
|
|
4200
|
+
console.warn("[DOMQL] Event handler warning:", err.message);
|
|
4201
|
+
} else {
|
|
4202
|
+
console.error("[DOMQL] Event handler error:", err);
|
|
4203
|
+
}
|
|
4161
4204
|
if (element.context?.strictMode) throw err;
|
|
4162
4205
|
}
|
|
4163
4206
|
};
|
package/if.js
CHANGED
|
@@ -1,14 +1,22 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
3
|
import { isFunction } from './types.js'
|
|
4
|
+
import { exec } from './object.js'
|
|
4
5
|
|
|
5
6
|
export const createIfConditionFlag = (element, parent) => {
|
|
6
7
|
const { __ref: ref } = element
|
|
8
|
+
const ifVal = element.if
|
|
7
9
|
|
|
8
|
-
if (
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
if (isFunction(ifVal)) {
|
|
11
|
+
if (!ifVal(element, element.state, element.context)) {
|
|
12
|
+
delete ref.__if
|
|
13
|
+
} else ref.__if = true
|
|
14
|
+
} else if (ifVal != null && typeof ifVal === 'object') {
|
|
15
|
+
// funcql schema — evaluate via exec() which delegates to plugins
|
|
16
|
+
const result = exec(ifVal, element)
|
|
17
|
+
if (!result) delete ref.__if
|
|
18
|
+
else ref.__if = true
|
|
19
|
+
} else {
|
|
20
|
+
ref.__if = true
|
|
21
|
+
}
|
|
14
22
|
}
|
package/object.js
CHANGED
|
@@ -36,6 +36,22 @@ export const exec = (param, element, state, context) => {
|
|
|
36
36
|
}
|
|
37
37
|
return result
|
|
38
38
|
}
|
|
39
|
+
// If param is a non-function value and the context has handler-resolving
|
|
40
|
+
// plugins (e.g. funcql), try to resolve it into a callable function.
|
|
41
|
+
// This enables funcql schemas as property values (text, if, style, etc.).
|
|
42
|
+
// Only attempt for array/object params that could be schemas — skip
|
|
43
|
+
// primitives and DOM nodes to avoid overhead on normal DOMQL values.
|
|
44
|
+
if (param != null && element?.context?.plugins && (isArray(param) || (isObject(param) && !isDOMNode(param)))) {
|
|
45
|
+
const plugins = element.context.plugins
|
|
46
|
+
for (const plugin of plugins) {
|
|
47
|
+
if (plugin.resolveHandler) {
|
|
48
|
+
const resolved = plugin.resolveHandler(param, element)
|
|
49
|
+
if (typeof resolved === 'function') {
|
|
50
|
+
return exec(resolved, element, state, context)
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
39
55
|
return param
|
|
40
56
|
}
|
|
41
57
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@domql/utils",
|
|
3
|
-
"version": "3.8.
|
|
3
|
+
"version": "3.8.6",
|
|
4
4
|
"license": "CC-BY-NC-4.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"module": "./dist/esm/index.js",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
},
|
|
39
39
|
"gitHead": "9fc1b79b41cdc725ca6b24aec64920a599634681",
|
|
40
40
|
"peerDependencies": {
|
|
41
|
-
"@symbo.ls/fetch": "^3.8.
|
|
41
|
+
"@symbo.ls/fetch": "^3.8.6"
|
|
42
42
|
},
|
|
43
43
|
"peerDependenciesMeta": {
|
|
44
44
|
"@symbo.ls/fetch": {
|
package/props.js
CHANGED
|
@@ -87,8 +87,9 @@ export function pickupPropsFromElement (obj, opts = {}) {
|
|
|
87
87
|
const isBuiltin = DOMQ_PROPERTIES.has(key)
|
|
88
88
|
|
|
89
89
|
// If it's not a special case, move to props
|
|
90
|
+
// Don't overwrite props already set by local definition (e.g. from childrenAs: 'props')
|
|
90
91
|
if (!isElement && !isBuiltin) {
|
|
91
|
-
obj.props[key] = value
|
|
92
|
+
if (!(key in obj.props)) obj.props[key] = value
|
|
92
93
|
delete obj[key]
|
|
93
94
|
cachedKeys.push(key)
|
|
94
95
|
}
|
package/triggerEvent.js
CHANGED
|
@@ -26,13 +26,20 @@ export const applyEvent = (param, element, state, context, options) => {
|
|
|
26
26
|
if (result && typeof result.then === 'function') {
|
|
27
27
|
result.catch((err) => {
|
|
28
28
|
element.error = err
|
|
29
|
-
console.
|
|
29
|
+
if (err instanceof ReferenceError) console.warn('[DOMQL] Async event warning:', err.message)
|
|
30
|
+
else console.error('[DOMQL] Async event error:', err)
|
|
30
31
|
})
|
|
31
32
|
}
|
|
32
33
|
return result
|
|
33
34
|
} catch (err) {
|
|
34
35
|
element.error = err
|
|
35
|
-
|
|
36
|
+
// In SSR/brender mode, ReferenceErrors for missing client-only helpers
|
|
37
|
+
// are expected (e.g. DOM animation functions). Log concisely.
|
|
38
|
+
if (err instanceof ReferenceError) {
|
|
39
|
+
console.warn('[DOMQL] Event handler warning:', err.message)
|
|
40
|
+
} else {
|
|
41
|
+
console.error('[DOMQL] Event handler error:', err)
|
|
42
|
+
}
|
|
36
43
|
if (element.context?.strictMode) throw err
|
|
37
44
|
}
|
|
38
45
|
}
|