svelte-common 6.7.5 → 6.8.1

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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/attribute.mjs +27 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svelte-common",
3
- "version": "6.7.5",
3
+ "version": "6.8.1",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
package/src/attribute.mjs CHANGED
@@ -237,13 +237,27 @@ export function getAttribute(object, name) {
237
237
  return object[name];
238
238
  }
239
239
 
240
+ let predicateTokens;
241
+
240
242
  for (const token of tokens(name)) {
241
243
  switch (token) {
242
244
  case ">":
243
245
  case "<":
244
246
  case ".":
247
+ break;
245
248
  case "[":
249
+ predicateTokens = [];
250
+ break;
246
251
  case "]":
252
+ // TODO: should loop over array actually getAttribute api should deliver iterators
253
+ if (Array.isArray(object)) {
254
+ object = object[0];
255
+ }
256
+
257
+ predicateTokens = undefined;
258
+ break;
259
+ case "*":
260
+ predicateTokens.push(token);
247
261
  break;
248
262
 
249
263
  default:
@@ -268,6 +282,8 @@ export function getAttribute(object, name) {
268
282
  export function getAttributeAndOperator(object, expression, getters = {}) {
269
283
  let op = "=";
270
284
 
285
+ let predicateTokens;
286
+
271
287
  for (const token of tokens(expression)) {
272
288
  switch (token) {
273
289
  case ">=":
@@ -280,7 +296,18 @@ export function getAttributeAndOperator(object, expression, getters = {}) {
280
296
  break;
281
297
  case ".":
282
298
  case "[":
299
+ predicateTokens = [];
300
+ break;
283
301
  case "]":
302
+ // TODO: should loop over array actually getAttribute api should deliver iterators
303
+ if (Array.isArray(object)) {
304
+ object = object[0];
305
+ }
306
+
307
+ predicateTokens = undefined;
308
+ break;
309
+ case "*":
310
+ predicateTokens.push(token);
284
311
  break;
285
312
 
286
313
  default: