Skip to content

A library that assists in building dynamic SQL queries with various conditions and options

Notifications You must be signed in to change notification settings

hero-page/hero-sql-querybuilder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This entire repository was created completely with AI, using the hero-ai-package-creator, which is open-source, uses GPT-4, and is written & maintained by Sam Chahine ❣️🧞‍♀️

hero-sql-querybuilder

A library that assists in building dynamic SQL queries with various conditions and options.

Functions

select(columns, tableName)

Builds a simple SELECT query with given columns and table name. Handles edge cases where columns are empty or not an array, and table name is not a string. For example, select(['id', 'name'], 'users') returns 'SELECT id, name FROM users'.

where(condition(s))

Builds a WHERE clause with given condition(s). Handles single conditions, multiple conditions with AND or OR, and nested conditions. For example, where('id = 1') returns 'WHERE id = 1'; where([{cond: 'id = 1', op: 'AND', cond: 'name = John'}]) returns 'WHERE id = 1 AND name = John'.

orderBy(column(s), sortOrder)

Builds an ORDER BY clause with given column(s) and optional sort order. Handles single column or multiple columns with ASC/DESC. For example, orderBy('name', 'DESC') returns 'ORDER BY name DESC'.

groupBy(column(s))

Builds a GROUP BY clause with given column(s). Handles single column, multiple columns, and checks for valid column names. For example, groupBy(['name', 'age']) returns 'GROUP BY name, age'.

limit(limitValue)

Builds a LIMIT clause with the given limit value. Handles edge cases where limit is not a valid number or is less than 1. For example, limit(10) returns 'LIMIT 10'.

insert(tableName, columnNames, values)

Builds a basic INSERT query with given table name, column names, and value(s). Handles single/multiple rows and checks for matching column and value count. For example, insert('users', ['name', 'age'], [['John', '30'], ['Jane', '25']]) returns "INSERT INTO users (name, age) VALUES ('John', '30'), ('Jane', '25')".

update(tableName, columnValuePair, whereClause)

Builds an UPDATE query with given table name, column and value pairs, and optional WHERE clause. Handles single/multiple column-value pairs and checks for matching column and value count. For example, update('users', {name: 'John', age: '30'}, 'id = 1') returns "UPDATE users SET name = 'John', age = '30' WHERE id = 1".


Sam Chahine, at Hero

Tests for groupBy

groupBy

Tests for select

select

Tests for update

update

Tests for where

where

Tests for insert

insert

Tests for limit

limit

Tests for orderBy

orderBy

About

A library that assists in building dynamic SQL queries with various conditions and options

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published