Skip to content

Latest commit

 

History

History
633 lines (396 loc) · 24.4 KB

File metadata and controls

633 lines (396 loc) · 24.4 KB

@tanstack/react-db

0.1.30

Patch Changes

  • Refactored live queries to execute eagerly during sync. Live queries now materialize their results immediately as data arrives from source collections, even while those collections are still in a "loading" state, rather than waiting for all sources to be "ready" before executing. (#658)

  • Updated dependencies [d9ae7b7, 44555b7]:

    • @tanstack/db@0.4.8

0.1.29

Patch Changes

  • Updated dependencies [6692aad]:
    • @tanstack/db@0.4.7

0.1.28

Patch Changes

0.1.27

Patch Changes

  • Updated dependencies [7556fb6]:
    • @tanstack/db@0.4.5

0.1.26

Patch Changes

0.1.25

Patch Changes

  • Updated dependencies [32f2212]:
    • @tanstack/db@0.4.3

0.1.24

Patch Changes

0.1.23

Patch Changes

  • Updated dependencies [8cd0876]:
    • @tanstack/db@0.4.1

0.1.22

Patch Changes

  • Let collection.subscribeChanges return a subscription object. Move all data loading code related to optimizations into that subscription object. (#564)

  • Updated dependencies [2f87216, ac6250a, 2f87216]:

    • @tanstack/db@0.4.0

0.1.21

Patch Changes

  • Expand useLiveQuery callback to support conditional queries and additional return types, enabling the ability to temporarily disable the query. (#535)

    New Features:

    • Callback can now return undefined or null to temporarily disable the query
    • Callback can return a pre-created Collection instance to use it directly
    • Callback can return a LiveQueryCollectionConfig object for advanced configuration
    • When disabled (returning undefined/null), the hook returns a specific idle state

    Usage Examples:

    // Conditional queries - disable when not ready
    const enabled = useState(false)
    const { data, state, isIdle } = useLiveQuery((q) => {
      if (!enabled) return undefined  // Disables the query
      return q.from({ users }).where(...)
    }, [enabled])
    
    /**
     * When disabled, returns:
     * {
     *   state: undefined,
     *   data: undefined,
     *   isIdle: true,
     *   ...
     * }
     */
    
    // Return pre-created Collection
    const { data } = useLiveQuery((q) => {
      if (usePrebuilt) return myCollection  // Use existing collection
      return q.from({ items }).select(...)
    }, [usePrebuilt])
    
    // Return LiveQueryCollectionConfig
    const { data } = useLiveQuery((q) => {
      return {
        query: q.from({ items }).select(...),
        id: `my-collection`,
      }
    })
  • Updated dependencies [cacfca2]:

    • @tanstack/db@0.3.2

0.1.20

Patch Changes

  • Updated dependencies [5f51f35]:
    • @tanstack/db@0.3.1

0.1.19

Patch Changes

0.1.18

Patch Changes

0.1.17

Patch Changes

0.1.16

Patch Changes

  • Updated dependencies [b162556]:
    • @tanstack/db@0.2.3

0.1.15

Patch Changes

  • Updated dependencies [33515c6]:
    • @tanstack/db@0.2.2

0.1.14

Patch Changes

  • Updated dependencies [620ebea]:
    • @tanstack/db@0.2.1

0.1.13

Patch Changes

0.1.12

Patch Changes

  • Updated dependencies [cc4c34a]:
    • @tanstack/db@0.1.12

0.1.11

Patch Changes

  • Fixed a bug where a race condition could cause initial results not to be rendered when using useLiveQuery. (#485)

  • Updated dependencies [b869f68]:

    • @tanstack/db@0.1.11

0.1.10

Patch Changes

0.1.9

Patch Changes

  • Updated dependencies [d64b4a8]:
    • @tanstack/db@0.1.9

0.1.8

Patch Changes

0.1.7

Patch Changes

0.1.6

Patch Changes

  • Updated dependencies [ad33e9e]:
    • @tanstack/db@0.1.6

0.1.5

Patch Changes

  • ensure that useLiveQuery returns a stable ref when there are no changes (#388)

  • Updated dependencies [9a5a20c]:

    • @tanstack/db@0.1.5

0.1.4

Patch Changes

0.1.3

Patch Changes

  • Updated dependencies [0cb7699]:
    • @tanstack/db@0.1.3

0.1.2

Patch Changes

0.1.1

Patch Changes

0.1.0

Minor Changes

  • 0.1 release - first beta 🎉 (#332)

Patch Changes

  • We have moved development of the differential dataflow implementation from @electric-sql/d2mini to a new @tanstack/db-ivm package inside the tanstack db monorepo to make development simpler. (#330)

  • Updated dependencies [7d2f4be, f0eda36]:

    • @tanstack/db@0.1.0

0.0.33

Patch Changes

  • Updated dependencies [6e8d7f6]:
    • @tanstack/db@0.0.33

0.0.32

Patch Changes

  • Updated dependencies [e04bd12]:
    • @tanstack/db@0.0.32

0.0.31

Patch Changes

  • Updated dependencies [3e9a36d]:
    • @tanstack/db@0.0.31

0.0.30

Patch Changes

  • Updated dependencies [6bdde55]:
    • @tanstack/db@0.0.30

0.0.29

Patch Changes

0.0.28

Patch Changes

0.0.27

Patch Changes

  • Updated dependencies [bec8620]:
    • @tanstack/db@0.0.27

0.0.26

Patch Changes

  • Add initial release of TrailBase collection for TanStack DB. TrailBase is a blazingly fast, open-source alternative to Firebase built on Rust, SQLite, and V8. It provides type-safe REST and realtime APIs with sub-millisecond latencies, integrated authentication, and flexible access control - all in a single executable. This collection type enables seamless integration with TrailBase backends for high-performance real-time applications. (#228)

  • Updated dependencies [09c6995]:

    • @tanstack/db@0.0.26

0.0.25

Patch Changes

0.0.24

Patch Changes

0.0.23

Patch Changes

  • Updated dependencies [056609e]:
    • @tanstack/db@0.0.23

0.0.22

Patch Changes

  • Updated dependencies [aeee9a1]:
    • @tanstack/db@0.0.22

0.0.21

Patch Changes

  • Updated dependencies [8e23322]:
    • @tanstack/db@0.0.21

0.0.20

Patch Changes

  • Updated dependencies [f13c11e]:
    • @tanstack/db@0.0.20

0.0.19

Patch Changes

  • Updated dependencies [9f0b0c2]:
    • @tanstack/db@0.0.19

0.0.18

Patch Changes

  • Improve jsdocs (#243)

  • Updated dependencies [266bd29]:

    • @tanstack/db@0.0.18

0.0.17

Patch Changes

  • Updated dependencies [7e63d76]:
    • @tanstack/db@0.0.17

0.0.16

Patch Changes

  • add support for composable queries (#232)

  • Updated dependencies [e478d53]:

    • @tanstack/db@0.0.16

0.0.15

Patch Changes

0.0.14

Patch Changes

  • Updated dependencies [74c140d]:
    • @tanstack/db@0.0.14

0.0.13

Patch Changes

  • feat: implement Collection Lifecycle Management (#198)

    Adds automatic lifecycle management for collections to optimize resource usage.

    New Features:

    • Added startSync option (defaults to false, set to true to start syncing immediately)
    • Automatic garbage collection after gcTime (default 5 minutes) of inactivity
    • Collection status tracking: "idle" | "loading" | "ready" | "error" | "cleaned-up"
    • Manual preload() and cleanup() methods for lifecycle control

    Usage:

    const collection = createCollection({
      startSync: false, // Enable lazy loading
      gcTime: 300000, // Cleanup timeout (default: 5 minutes)
    })
    
    console.log(collection.status) // Current state
    await collection.preload() // Ensure ready
    await collection.cleanup() // Manual cleanup
  • Add createOptimisticAction helper that replaces useOptimisticMutation (#210)

    An example of converting a useOptimisticMutation hook to createOptimisticAction. Now all optimistic & server mutation logic are consolidated.

    -import { useOptimisticMutation } from '@tanstack/react-db'
    +import { createOptimisticAction } from '@tanstack/react-db'
    +
    +// Create the `addTodo` action, passing in your `mutationFn` and `onMutate`.
    +const addTodo = createOptimisticAction<string>({
    +  onMutate: (text) => {
    +    // Instantly applies the local optimistic state.
    +    todoCollection.insert({
    +      id: uuid(),
    +      text,
    +      completed: false
    +    })
    +  },
    +  mutationFn: async (text) => {
    +    // Persist the todo to your backend
    +    const response = await fetch('/api/todos', {
    +      method: 'POST',
    +      body: JSON.stringify({ text, completed: false }),
    +    })
    +    return response.json()
    +  }
    +})
    
     const Todo = () => {
    -  // Create the `addTodo` mutator, passing in your `mutationFn`.
    -  const addTodo = useOptimisticMutation({ mutationFn })
    -
       const handleClick = () => {
    -    // Triggers the mutationFn
    -    addTodo.mutate(() =>
    -      // Instantly applies the local optimistic state.
    -      todoCollection.insert({
    -        id: uuid(),
    -        text: '🔥 Make app faster',
    -        completed: false
    -      })
    -    )
    +    // Triggers the onMutate and then the mutationFn
    +    addTodo('🔥 Make app faster')
       }
    
       return <Button onClick={ handleClick } />
     }
  • Updated dependencies [945868e, 0f8a008, 57b5f5d]:

    • @tanstack/db@0.0.13

0.0.12

Patch Changes

  • Updated dependencies [f6abe9b]:
    • @tanstack/db@0.0.12

0.0.11

Patch Changes

  • Export ElectricCollectionUtils & allow passing generic to createTransaction (#179)

  • Updated dependencies [66ed58b, c5489ff]:

    • @tanstack/db@0.0.11

0.0.10

Patch Changes

  • Updated dependencies [38d4505]:
    • @tanstack/db@0.0.10

0.0.9

Patch Changes

  • Updated dependencies [2ae0b09]:
    • @tanstack/db@0.0.9

0.0.8

Patch Changes

  • A large refactor of the core Collection with: (#155)

    • a change to not use Store internally and emit fine grade changes with subscribeChanges and subscribeKeyChanges methods.
    • changes to the Collection api to be more Map like for reads, with get, has, size, entries, keys, and values.
    • renames config.getId to config.getKey for consistency with the Map like api.
  • Updated dependencies [5c538cf, 9553366, b4602a0, 02adc81, 06d8ecc, c50cd51]:

    • @tanstack/db@0.0.8

0.0.7

Patch Changes

  • Expose utilities on collection instances (#161)

    Implemented a utility exposure pattern for TanStack DB collections that allows utility functions to be passed as part of collection options and exposes them under a .utils namespace, with full TypeScript typing.

    • Refactored createCollection in packages/db/src/collection.ts to accept options with utilities directly
    • Added utils property to CollectionImpl
    • Added TypeScript types for utility functions and utility records
    • Changed Collection from a class to a type, updating all usages to use createCollection() instead
    • Updated Electric/Query implementations
    • Utilities are now ergonomically accessible under .utils
    • Full TypeScript typing is preserved for both collection data and utilities
    • API is clean and straightforward - users can call createCollection(optionsCreator(config)) directly
    • Zero-boilerplate TypeScript pattern that infers utility types automatically
  • Updated dependencies [8b43ad3]:

    • @tanstack/db@0.0.7

0.0.6

Patch Changes

0.0.5

Patch Changes

  • Collections must have a getId function & use an id for update/delete operators (#134)

  • the keyBy query operator has been removed, keying withing the query pipeline is now automatic (#144)

  • Updated dependencies [1fbb844, 338efc2, ee5d026, e7b036c, e4feb0c]:

    • @tanstack/db@0.0.5

0.0.4

Patch Changes

  • Updated dependencies [8ce449e]:
    • @tanstack/db@0.0.4

0.0.3

Patch Changes

  • Updated dependencies [b29420b]:
    • @tanstack/db@0.0.3

0.0.2

Patch Changes

  • Fixed an issue with injecting the optimistic state removal into the reactive live query. (#78)

  • Updated dependencies [4c82edb]:

    • @tanstack/db@0.0.2

0.0.3

Patch Changes

  • Make transactions first class & move ownership of mutationFn from collections to transactions (#53)

  • Updated dependencies [b42479c]:

    • @tanstack/db@0.0.3

0.0.2

Patch Changes

  • make mutationFn optional for read-only collections (#12)

  • Updated dependencies [9bb6e89, 8eb7e9b]:

    • @tanstack/db@0.0.2

0.0.1

Patch Changes

  • feat: Initial release (#2)

  • Updated dependencies [2d2dd77]:

    • @tanstack/db@0.0.1