dataset-transaction
TypeScript icon, indicating that this package has built-in type declarations

0.0.1 • Public • Published

Transaction Class

The Transaction class is a utility that allows you to create transactions for managing changes to an object's properties. It provides methods to start, commit, and rollback transactions, as well as events to track changes.

Features

  • Create and manage transactions for an object's properties.
  • Emit events for actions such as getting, setting, deleting, committing, rolling back, and timeout.
  • Handle transaction timeout, automatically committing or rolling back changes after a specified duration.
  • Revocable proxy object to track property changes.

Installation

To install and use dataset-transaction, follow these steps:

    npm install dataset-transaction

Usage

Here's a quick example demonstrating how to use the Transaction class:

const { Transaction } = require('dataset-transaction');

// Create initial data
const data = {
  name: 'John Doe',
  age: 30,
  email: 'johndoe@example.com',
};

// Start a transaction
const { transaction, proxy } = Transaction.start(data);

// Listen to events
transaction.on('get', () => {
  console.log('Property accessed.');
});

transaction.on('set', () => {
  console.log('Property set.');
});

transaction.on('delete', () => {
  console.log('Property deleted.');
});

transaction.on('commit', () => {
  console.log('Transaction committed.');
});

transaction.on('rollback', () => {
  console.log('Transaction rolled back.');
});

transaction.on('timeout', () => {
  console.log('Transaction timed out.');
});

// Access and modify the properties using the proxy
const name = proxy.name; // This will trigger 'get' event
proxy.age = 31; // This will trigger 'set' event
transaction.delete('email'); // This will trigger 'delete' event

// Commit or rollback the transaction
transaction.commit(); // This will trigger 'commit' event
transaction.rollback(); // This will trigger 'rollback' event

// Stop the transaction
transaction.stop();

License

MIT LICENSE

Package Sidebar

Install

npm i dataset-transaction

Weekly Downloads

3

Version

0.0.1

License

MIT

Unpacked Size

32.9 kB

Total Files

17

Last publish

Collaborators

  • timursevimli