Skip to content

fix(filter): accepte les items tableau (lignes xlsx/csv) - #492

Merged
simonLouvet merged 1 commit into
masterfrom
fix/filter-accept-arrays
Aug 25, 2026
Merged

simonLouvet merged 1 commit into
masterfrom
fix/filter-accept-arrays

Conversation

@simonLouvet

Copy link
Copy Markdown
Collaborator

Résumé

Le composant Filter rejetait les items tableau (ex. une ligne d'un xlsx/csv :
[c1,c2,...]) car LokiJS n'accepte que des objets → erreurs « Object cannot be
null »
/ « Document needs to be an object » dans le résultat.

Cause

collection.insert(tableau) est interprété par Loki comme un lot (batch) :
il itère chaque élément (null, "SOLIS", ...) et tente de les insérer
individuellement → échec.

Correctif

  • filterRawItems / workWithFragments : les items tableau sont enveloppés dans
    { _wrapped: item } avant collection.insert (objet unique insérable).
  • filter : dé-enveloppe avant l'évaluation $where et dans le résultat.
  • Les objets classiques restent inchangés (pas de régression).

Validation

  • E2E réel (fichier DATAPLAYERS 08_2026.xlsx, workflow upload → valueFromPath
    0.data → filter $where: this.length>0) : les 16 lignes non vides sont
    filtrées, les 984 lignes vides exclues, 0 erreur d'insertion.
  • Tests : filter +2 (filterRawItems accepte un tableau de tableaux, dé-enveloppement).
  • Suites : engine 141, core 72, main 33.

Release : bump v0.11.15 + CHANGELOG.

…_wrapped

Le composant Filter utilisait LokiJS qui n'accepte que des objets : un item
tableau (ex. une ligne d'un xlsx/csv : [c1,c2,...]) était rejeté à l'insertion
(erreurs 'Object cannot be null' / 'Document needs to be an object').

- filterRawItems / workWithFragments : les items tableau sont enveloppés dans
  { _wrapped: item } avant collection.insert
- filter : dé-enveloppe avant l'évaluation $where et dans le résultat
- Tests : filterRawItems accepte un tableau de tableaux sans erreur ; cas find
  simple avec wrapper
Validé en local avec le fichier DATAPLAYERS 08_2026.xlsx : les 16 lignes non
vides du xlsx sont filtrées (this.length>0), les 984 lignes vides exclues,
0 erreur d'insertion. Objets classiques inchangés.
@simonLouvet
simonLouvet merged commit db1e5e2 into master Aug 25, 2026
10 checks passed
@simonLouvet
simonLouvet deleted the fix/filter-accept-arrays branch August 25, 2026 07:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant