Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/panosoft/sql-utils
Utilities to assist with SQL script generation.
https://github.com/panosoft/sql-utils
Last synced: 12 days ago
JSON representation
Utilities to assist with SQL script generation.
- Host: GitHub
- URL: https://github.com/panosoft/sql-utils
- Owner: panosoft
- Created: 2015-08-11T18:35:54.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2015-12-17T23:22:22.000Z (about 9 years ago)
- Last Synced: 2024-12-10T10:30:49.350Z (about 1 month ago)
- Language: JavaScript
- Homepage:
- Size: 12.7 KB
- Stars: 1
- Watchers: 5
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# sql-utils
Utilities to assist with SQL script generation.
[![npm version](https://img.shields.io/npm/v/@panosoft/sql-utils.svg)](https://www.npmjs.com/package/@panosoft/sql-utils)
[![npm license](https://img.shields.io/npm/l/@panosoft/sql-utils.svg)](https://www.npmjs.com/package/@panosoft/sql-utils)
[![Travis](https://img.shields.io/travis/panosoft/sql-utils.svg)](https://travis-ci.org/panosoft/sql-utils)
[![David](https://img.shields.io/david/panosoft/sql-utils.svg)](https://david-dm.org/panosoft/sql-utils)
[![npm downloads](https://img.shields.io/npm/dm/@panosoft/sql-utils.svg)](https://www.npmjs.com/package/@panosoft/sql-utils)## Installation
```sh
npm install @panosoft/sql-utils
```## Usage
```js
var utils = require('sql-utils');
```## API
- [`buildCriteria`](#buildCriteria)
- [`parenthesize`](#parenthesize)
- [`quote`](#quote)
- [`quoteList`](#quoteList)
- [`parseOrderColumn`](#parseOrderColumn)
- [`replaceOrderColumns`](#replaceOrderColumns)---
#### buildCriteria ( criteriaArrays )Joins an array into a criteria string delimited by `AND`'s and `OR`'s.
__Arguments__
- `criteriaArrays` - An array or an array of arrays to be joined.
__Examples__
```js
var array = ['a', 'b', 'c'];
var criteria = utils.buildCriteria(array);
console.log(criteria); // '(a AND b AND c)'
``````js
var arrays = [
['a', 'b', 'c'],
['d', 'e', 'f']
];
var criteria = utils.buildCriteria(arrays);
console.log(criteria); // '((a AND b AND c) OR (d AND e AND f))'
```---
Wraps a string with parenthesis.
__Arguments__
- `string` - A string to wrap.
__Example__
```js
var string = utils.parenthesize('a');
console.log(string); // '(a)'
```---
Wraps a string with single quotes.
__Arguments__
- `string` - A string to wrap.
__Example__
```js
var string = utils.quote('a');
console.log(string); // "'a'"
```---
Converts an array of strings to a quoted comma delimited list.
__Arguments__
- `strings` - An array of strings to convert.
__Example__
```js
var string = utils.quoteList(['a', 'b', 'c']);
console.log(string); // "'a','b','c'"
```---
#### parseOrderColumn ( orderColumn )Returns an Array with the orderColumn in index 0 and *optionally* ASC/DESC in index 1.
__Arguments__
- `orderColumn` - A string definining a SQL ordering.
__Examples__
```js
var orderColumn = 'userName ASC';
utils.parseOrderColumn(orderColumn); // ['userName', 'ASC']
``````js
var orderColumn = 'refNum';
utils.parseOrderColumn(orderColumn); // ['refNum']
```---
#### replaceOrderColumns ( orderColumns, componentColumns )Takes an Array of Order Columns and replace any column that has components in the Object of Component Columns. This will preserve the ASC/DESC suffix in the original Order Column.
This is VERY useful for replacing a name column with its components, i.e. first, last and middle.
__Arguments__
- `orderColumns` - An Array of Order Columns.
- `componentColumns` - An Object of component columns where the `key` is the order column and the `value` is an Array of component columns.__Examples__
```js
var orderColumns = ['userName ASC', 'clientName DESC', 'refNum'];
var componentColumns = {
userName: ['usrLastName', 'usrFirstName', 'usrMI'],
clientName: ['clientLastName', 'clientFirstName', 'clientMI']
};
var columns = utils.replaceOrderColumns(orderColumns, componentColumns);
console.log(columns);
/*[
'usrLastName ASC',
'usrFirstName ASC',
'usrMI ASC',
'clientLastName DESC',
'clientFirstName DESC',
'clientMI DESC',
'refNum'
]*/```