Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

dataset-transaction

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

dataset-transaction

Transaction and dataset transactions

  • 1.0.2
  • unpublished
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
0
decreased by-100%
Maintainers
1
Weekly downloads
 
Created
Source

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

Keywords

FAQs

Package last updated on 30 Nov 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc