0.0.1 • Published 1 year ago

@rosen-bridge/atomic-typeorm-create-query-runner v0.0.1

Weekly downloads
-
License
GPL-3.0
Repository
github
Last release
1 year ago

@rosen-bridge/atomic-typeorm-create-query-runner

Table of contents

Introduction

By default, typeorm doesn't handle parallel transactions. If you run two transactions simultaneously and your database doesn't support it (e.g. if you use sqlite), you will get errors.

Installation

npm:

npm i @rosen-bridge/atomic-typeorm-create-query-runner

yarn:

yarn add @rosen-bridge/atomic-typeorm-create-query-runner

Usage

import createAtomicQueryRunner from '@rosen-bridge/atomic-typeorm-create-query-runner';

const foo = () => {
  // const queryRunner = dataSource.createQueryRunner();
  const queryRunner = createAtomicQueryRunner(dataSource);

  await queryRunner.connect();
  await queryRunner.startTransaction();

  try {
    await applyAtomicQuery();
    await queryRunner.commitTransaction();
  } catch {
    await queryRunner.rollbackTransaction();
  } finally {
    await queryRunner.release();
  }
};

// You can now call the transactions simultaneously without getting errors
foo();
foo();

As you can see, no big changes required to use the package.

0.0.1

1 year ago