Skip to content

Basic CRUD Operations

This example demonstrates the fundamental Create, Read, Update, and Delete operations using Bindra.

Running the Example

bash
# Install dependencies
pnpm install

# Run with ts-node
npx ts-node index.ts

# Or compile and run
tsc index.ts && node index.js

Key Concepts

1. Creating a DataSource

typescript
const tasks = new DataSource<Task>({
  data: [/* initial data */]
});

2. Read Operations

  • tasks.data - Get all records
  • tasks.current - Get current record
  • tasks.findById(id) - Find by ID
  • tasks.next() / tasks.prev() - Navigate

3. Create

typescript
const newTask = await tasks.create({ /* data */ });

4. Update

typescript
const updated = await tasks.update(id, { /* changes */ });

5. Delete

typescript
await tasks.delete(id);

6. Query

typescript
const results = await tasks.query({
  filter: (item) => item.completed === true,
  sort: 'priority'
});

7. Event Listeners

typescript
tasks.on('created', (item) => console.log('New item:', item));
tasks.on('updated', (item) => console.log('Updated:', item));
tasks.on('deleted', (item) => console.log('Deleted:', item));

8. Reactive Subscriptions

typescript
tasks.currentRecord.subscribe((task) => {
  // Automatically called when current record changes
});

tasks.dataSource.subscribe((allTasks) => {
  // Automatically called when data array changes
});

Learn More

Released under the MIT License.