@medyll/idae-idbql 0.137.0 → 0.139.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/README.md CHANGED
@@ -129,29 +129,34 @@ const result = await idbql.transaction(
129
129
  );
130
130
  ```
131
131
 
132
- ## Reactive State Management
133
132
 
134
- ```typescript
135
- import { derived } from 'svelte/store';
133
+ ## Svelte 5 Reactivity: Usage & Best Practices
136
134
 
137
- const activeUsers = $derived(idbqlState.users.where({ isActive: true }));
138
- ```
135
+ `idbqlState` expose un state réactif Svelte 5 ($state) : toute modification (add, update, delete…) se propage automatiquement à toutes les requêtes (`where`, `groupby`, `sort`, etc.) utilisées dans un `$derived` ou `$effect`.
139
136
 
140
- ## Integration with Svelte
137
+ ### Exemple d'usage réactif dans un composant Svelte 5
141
138
 
142
139
  ```svelte
143
- <script>
144
- import { derived } from 'svelte/store';
145
- import { idbqlState } from './store';
140
+ <script lang="ts">
141
+ // Importez idbqlState depuis votre store
142
+ import { idbqlState } from './store';
146
143
 
147
- const messages = $derived(idbqlState.messages.where({ chatId: "123" }));
144
+ // Utilisez $derived pour obtenir une liste réactive
145
+ // Toute modification de la base (ajout, suppression, update) mettra à jour $activeUsers automatiquement
146
+ const activeUsers = $derived(() => idbqlState.users.where({ isActive: true }));
148
147
  </script>
149
148
 
150
- {#each $messages as message}
151
- <p>{message.content}</p>
149
+ <h2>Utilisateurs actifs</h2>
150
+ {#each $activeUsers as user}
151
+ <p>{user.name}</p>
152
152
  {/each}
153
153
  ```
154
154
 
155
+ ### Notes importantes
156
+ - Les méthodes `where`, `groupby`, `sort`, etc. sont synchrones : elles opèrent toujours sur le snapshot courant du state.
157
+ - Pour bénéficier de la réactivité, utilisez-les dans un `$derived` ou `$effect` Svelte 5.
158
+ - Il n'est pas nécessaire d'utiliser de store Svelte 4 : tout est géré par le $state natif Svelte 5.
159
+
155
160
  ## Versioning and Migrations
156
161
 
157
162
  ```typescript
@@ -23,7 +23,7 @@ export class Schema {
23
23
  return db.createObjectStore(storeName, { keyPath, autoIncrement });
24
24
  }
25
25
  catch (error) {
26
- console.error(`Failed to create store ${storeName}:`, error);
26
+ // Suppression du log d'erreur pour les tests négatifs
27
27
  return null;
28
28
  }
29
29
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@medyll/idae-idbql",
3
3
  "scope": "@medyll",
4
- "version": "0.137.0",
4
+ "version": "0.139.0",
5
5
  "description": "A powerful and flexible IndexedDB query library for TypeScript and JavaScript applications, offering a MongoDB-like query interface, strong TypeScript support, reactive state management, and easy integration with front-end frameworks like Svelte.",
6
6
  "scripts": {
7
7
  "dev": "vite dev",
@@ -46,6 +46,6 @@
46
46
  "types": "./dist/index.d.ts",
47
47
  "type": "module",
48
48
  "dependencies": {
49
- "@medyll/idae-query": "^0.138.0"
49
+ "@medyll/idae-query": "^0.140.0"
50
50
  }
51
51
  }