5.0.0 • Published 12 months ago

@cdellacqua/knex-transact v5.0.0

Weekly downloads
98
License
MIT
Repository
github
Last release
12 months ago

knex-transact

transact function that provides a simple mechanism to translate SQL transactions into code

NPM Package

npm install @cdellacqua/knex-transact

How to configure

To use this function you must first assign config.knex to your knex instance. For example:

	import { config } from '@cdellacqua/knex-transact';

	import { knex } from 'knex';
	
	const myKnexInstance = knex({
		// your database configuration
	});

	config.knexInstance = myKnexInstance;

How to use

This package exposes a function called transact. It accepts two arguments: an array of functions (or a single function) that return a Promise, and an optional Transaction.

If a function needs to process data with and without having an already initialized transaction, one can easily end up writing some boilerplate code like this:

	
async function aFunctionThatReceivesAnOptionalTransaction(trx?: Transaction) {
	const db = trx || knex.transaction();
	try {
		const tempResult = await db('table').where('property', 'value').select();
		await someOtherFunction(tempResult, db);

		if (!trx) {
			db.commit();
		}
	} catch (err) {
		if (!trx) {
			db.rollback();
		}

		throw err;
	}
}

This library takes care of that boilerplate, thus reducing noise and allowing to write less and cleaner code:

function aFunctionThatReceivesAnOptionalTransaction(trx?: Transaction) {
	return transact([
		(db) => db('table').where('property', 'value').select(),
		(db, tempResult) => someOtherFunction(tempResult, db),
	], trx);
}
5.0.0

12 months ago

4.1.0

1 year ago

4.0.1

1 year ago

4.0.0

2 years ago

3.0.4

3 years ago

3.0.3

3 years ago

3.0.2

3 years ago

3.0.1

3 years ago

3.0.0

3 years ago

1.0.8

3 years ago

2.0.0

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago