svelte-common 6.8.0 → 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 -7
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svelte-common",
3
- "version": "6.8.0",
3
+ "version": "6.8.1",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
package/src/attribute.mjs CHANGED
@@ -237,23 +237,30 @@ 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 ".":
245
- case "*":
247
+ break;
246
248
  case "[":
247
- case "]":
249
+ predicateTokens = [];
248
250
  break;
249
-
250
- default:
251
-
251
+ case "]":
252
252
  // TODO: should loop over array actually getAttribute api should deliver iterators
253
- if(Array.isArray(object)) {
254
- object = object[0]
253
+ if (Array.isArray(object)) {
254
+ object = object[0];
255
255
  }
256
256
 
257
+ predicateTokens = undefined;
258
+ break;
259
+ case "*":
260
+ predicateTokens.push(token);
261
+ break;
262
+
263
+ default:
257
264
  if (object === undefined) {
258
265
  break;
259
266
  }
@@ -275,6 +282,8 @@ export function getAttribute(object, name) {
275
282
  export function getAttributeAndOperator(object, expression, getters = {}) {
276
283
  let op = "=";
277
284
 
285
+ let predicateTokens;
286
+
278
287
  for (const token of tokens(expression)) {
279
288
  switch (token) {
280
289
  case ">=":
@@ -287,7 +296,18 @@ export function getAttributeAndOperator(object, expression, getters = {}) {
287
296
  break;
288
297
  case ".":
289
298
  case "[":
299
+ predicateTokens = [];
300
+ break;
290
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);
291
311
  break;
292
312
 
293
313
  default: