@barefootjs/test 0.5.3 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +64 -15
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -190460,14 +190460,7 @@ var UNSUPPORTED_METHODS = new Set([
|
|
|
190460
190460
|
"forEach",
|
|
190461
190461
|
"flatMap",
|
|
190462
190462
|
"flat",
|
|
190463
|
-
"split",
|
|
190464
|
-
"startsWith",
|
|
190465
|
-
"endsWith",
|
|
190466
|
-
"replace",
|
|
190467
190463
|
"replaceAll",
|
|
190468
|
-
"repeat",
|
|
190469
|
-
"padStart",
|
|
190470
|
-
"padEnd",
|
|
190471
190464
|
"charAt",
|
|
190472
190465
|
"charCodeAt",
|
|
190473
190466
|
"codePointAt",
|
|
@@ -190478,6 +190471,12 @@ var UNSUPPORTED_METHODS = new Set([
|
|
|
190478
190471
|
"matchAll",
|
|
190479
190472
|
"search"
|
|
190480
190473
|
]);
|
|
190474
|
+
var LOWERED_ARRAY_METHODS = new Set([
|
|
190475
|
+
"includes",
|
|
190476
|
+
"indexOf",
|
|
190477
|
+
"lastIndexOf",
|
|
190478
|
+
"concat"
|
|
190479
|
+
]);
|
|
190481
190480
|
function parseExpression(expr) {
|
|
190482
190481
|
const trimmed = expr.trim();
|
|
190483
190482
|
if (!trimmed) {
|
|
@@ -190538,7 +190537,7 @@ function convertNode(node, raw) {
|
|
|
190538
190537
|
}
|
|
190539
190538
|
}
|
|
190540
190539
|
if (callee.kind === "member" && !callee.computed) {
|
|
190541
|
-
if (callee.property === "join"
|
|
190540
|
+
if (callee.property === "join") {
|
|
190542
190541
|
return { kind: "array-method", method: "join", object: callee.object, args };
|
|
190543
190542
|
}
|
|
190544
190543
|
if (callee.property === "includes" && args.length === 1) {
|
|
@@ -190547,27 +190546,77 @@ function convertNode(node, raw) {
|
|
|
190547
190546
|
if ((callee.property === "indexOf" || callee.property === "lastIndexOf") && args.length === 1) {
|
|
190548
190547
|
return { kind: "array-method", method: callee.property, object: callee.object, args };
|
|
190549
190548
|
}
|
|
190550
|
-
if (callee.property === "at"
|
|
190549
|
+
if (callee.property === "at") {
|
|
190551
190550
|
return { kind: "array-method", method: "at", object: callee.object, args };
|
|
190552
190551
|
}
|
|
190553
|
-
if (callee.property === "concat" && args.length
|
|
190552
|
+
if (callee.property === "concat" && args.length <= 1) {
|
|
190554
190553
|
return { kind: "array-method", method: "concat", object: callee.object, args };
|
|
190555
190554
|
}
|
|
190556
|
-
if (callee.property === "slice"
|
|
190555
|
+
if (callee.property === "slice") {
|
|
190557
190556
|
return { kind: "array-method", method: "slice", object: callee.object, args };
|
|
190558
190557
|
}
|
|
190559
|
-
if (
|
|
190558
|
+
if (callee.property === "reverse" || callee.property === "toReversed") {
|
|
190560
190559
|
return { kind: "array-method", method: callee.property, object: callee.object, args };
|
|
190561
190560
|
}
|
|
190562
|
-
if (callee.property === "toLowerCase"
|
|
190561
|
+
if (callee.property === "toLowerCase") {
|
|
190563
190562
|
return { kind: "array-method", method: "toLowerCase", object: callee.object, args };
|
|
190564
190563
|
}
|
|
190565
|
-
if (callee.property === "toUpperCase"
|
|
190564
|
+
if (callee.property === "toUpperCase") {
|
|
190566
190565
|
return { kind: "array-method", method: "toUpperCase", object: callee.object, args };
|
|
190567
190566
|
}
|
|
190568
|
-
if (callee.property === "trim"
|
|
190567
|
+
if (callee.property === "trim") {
|
|
190569
190568
|
return { kind: "array-method", method: "trim", object: callee.object, args };
|
|
190570
190569
|
}
|
|
190570
|
+
if (callee.property === "split") {
|
|
190571
|
+
return { kind: "array-method", method: "split", object: callee.object, args };
|
|
190572
|
+
}
|
|
190573
|
+
if (LOWERED_ARRAY_METHODS.has(callee.property)) {
|
|
190574
|
+
const argName = callee.property === "concat" ? "other" : "x";
|
|
190575
|
+
const detail = callee.property === "concat" ? "the variadic `.concat(a, b, …)` form" : `\`.${callee.property}(…)\` with ${args.length} argument(s)`;
|
|
190576
|
+
return {
|
|
190577
|
+
kind: "unsupported",
|
|
190578
|
+
raw,
|
|
190579
|
+
reason: `${detail} is not yet lowered to the Go/Mojo template adapters. Use the single-argument \`.${callee.property}(${argName})\` form, or pre-compute the value before the template.`
|
|
190580
|
+
};
|
|
190581
|
+
}
|
|
190582
|
+
if (callee.property === "startsWith" || callee.property === "endsWith") {
|
|
190583
|
+
if (args.length === 0) {
|
|
190584
|
+
return {
|
|
190585
|
+
kind: "unsupported",
|
|
190586
|
+
raw,
|
|
190587
|
+
reason: `\`.${callee.property}()\` with no search string is not lowered — JS coerces the missing argument to the string "undefined", a degenerate result. Pass an explicit search string, or pre-compute the value before the template.`
|
|
190588
|
+
};
|
|
190589
|
+
}
|
|
190590
|
+
return { kind: "array-method", method: callee.property, object: callee.object, args };
|
|
190591
|
+
}
|
|
190592
|
+
if (callee.property === "replace") {
|
|
190593
|
+
if (args.length < 2) {
|
|
190594
|
+
return {
|
|
190595
|
+
kind: "unsupported",
|
|
190596
|
+
raw,
|
|
190597
|
+
reason: `\`.replace(${args.length === 0 ? "" : "pattern"})\` needs both a pattern and a replacement — JS coerces the missing argument to the string "undefined", a degenerate result. Pass both arguments, or pre-compute the value before the template.`
|
|
190598
|
+
};
|
|
190599
|
+
}
|
|
190600
|
+
const patternNode = node.arguments[0];
|
|
190601
|
+
if (patternNode && import_typescript8.default.isRegularExpressionLiteral(patternNode)) {
|
|
190602
|
+
return {
|
|
190603
|
+
kind: "unsupported",
|
|
190604
|
+
raw,
|
|
190605
|
+
reason: "String.prototype.replace supports only a string pattern + string replacement (the regex form is deferred); use a string pattern or wrap the expression in /* @client */"
|
|
190606
|
+
};
|
|
190607
|
+
}
|
|
190608
|
+
const badArg = args[0].kind === "unsupported" ? args[0] : args[1].kind === "unsupported" ? args[1] : undefined;
|
|
190609
|
+
if (badArg && badArg.kind === "unsupported") {
|
|
190610
|
+
return { kind: "unsupported", raw, reason: badArg.reason };
|
|
190611
|
+
}
|
|
190612
|
+
return { kind: "array-method", method: "replace", object: callee.object, args };
|
|
190613
|
+
}
|
|
190614
|
+
if (callee.property === "repeat") {
|
|
190615
|
+
return { kind: "array-method", method: "repeat", object: callee.object, args };
|
|
190616
|
+
}
|
|
190617
|
+
if (callee.property === "padStart" || callee.property === "padEnd") {
|
|
190618
|
+
return { kind: "array-method", method: callee.property, object: callee.object, args };
|
|
190619
|
+
}
|
|
190571
190620
|
if ((callee.property === "sort" || callee.property === "toSorted") && node.arguments.length === 1) {
|
|
190572
190621
|
const comparator = extractSortComparatorFromTS(node.arguments[0], callee.property);
|
|
190573
190622
|
if (comparator) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@barefootjs/test",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "Test utilities for BarefootJS - IR-based component testing without a browser",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"directory": "packages/test"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@barefootjs/jsx": "0.
|
|
42
|
+
"@barefootjs/jsx": "0.6.0"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"typescript": "^5.0.0"
|