Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@tranjs/core

Package Overview
Dependencies
Maintainers
1
Versions
21
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@tranjs/core

Node.js transaction management framework inspired by Spring's `@Transactional` annotation.

latest
Source
npmnpm
Version
1.0.22
Version published
Maintainers
1
Created
Source

TranJS

Test

TranJS is a transaction management framework which provides declaretive transaction, without any ORMs.

It is designed to provide reliable and intuitive transaction management for mission-critical safety applications and general-purpose applications.

Features

  • Declarative Transaction via Decorator
  • TypeScript Native
  • 🛠️ No Dependencies, Lightweight (15KB)
  • 🚀 Easy to Use, No Boilerplate Code

Getting Started

  • API Documentation is available at here.
  • Native supported drivers are available at here.
  • The example contains a simple example of how to use the TranJS framework.

Usage

class MyService {
    @Transactional()
    async transfer(from: string, to: string, amount: number) {
        await this.withdrawMoney("Jaewook", 100);
        await this.depositMoney("Chansu", 100);
    }

    @Transactional(Propagation.MANDATORY)
    private async depositMoney(userId: string, amount: number) {
        console.log("Execute Query", userId, amount);
        await ctx().execute("UPDATE user SET balance = balance + ? WHERE id = ?", [amount, userId]);
    }

    @Transactional(Propagation.MANDATORY)
    private async withdrawMoney(userId: string, amount: number) {
        console.log("Execute Query", userId, amount);
        await ctx().execute("UPDATE user SET balance = balance - ? WHERE id = ?", [amount, userId]);
    }
}
Start Transaction (id: ae8wml5i78rt) # Transaction started at transfer()
Execute Query Jaewook 100
Execute Query Chansu 100
Commit Transaction (id: ae8wml5i78rt) # Transaction committed when transfer() finished

Installation

It should be set up for the database you want to use. See here.

[!NOTE] If the driver you want to use does not exist, you can implement it on your own.

Contribute

TranJS welcomes contributions from the community to enhance its functionality and usability. Here’s how you can contribute:

  • Report Issues
    If you encounter bugs or have suggestions for improvements, feel free to open an issue in the repository.

  • Submit Pull Requests
    Fork the repository, create a new branch for your changes, and submit a pull request. Ensure your code adheres to the project's coding standards and includes relevant tests.

  • Implement Drivers
    If the driver you need is not available, you can implement it yourself using the self-implement guide.

  • Improve Documentation
    Contributions to the documentation are always appreciated—whether it's fixing typos, adding examples, or clarifying complex concepts.

  • Collaborate and Review
    Participate in discussions, review pull requests, and provide constructive feedback to other contributors.

License

This project is licensed under the LGPL-2.1 License - see the LICENSE file for details.

Acknowledgement

Keywords

transaction

FAQs

Package last updated on 23 Apr 2025

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