Skip to content

Commit

Permalink
Merge pull request #7 from olegnn/1.0.2
Browse files Browse the repository at this point in the history
`1.0.2`: update README
  • Loading branch information
olegnn authored Sep 15, 2023
2 parents a1dfdb2 + b837d8e commit 711b59d
Show file tree
Hide file tree
Showing 4 changed files with 112 additions and 5 deletions.
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,10 @@ npm i --save sql-template-builder

## API and usage

- **sql\`You statements here\`** - create SQLQuery
- **sql(...[any])** - create SQLQuery statement from other queries or values joined by ','
- **sql([SQLQuery])**.joinBy(string) - create SQLQuery as statement joined from passed queries with `.joinBy` argument as delimiter
- **sql.raw(string)** - create SQLQuery from raw value (Be careful, use escape functions!)
- **sql\`Statements go here = ${`value go here`}\`** - create SQLQuery
- **sql(sql`query`, 'value', 'other value', sql`other query`...)** - create SQLQuery statement from other queries/values joined by ','
- **sql(...).joinBy(string)** - create SQLQuery as statement joined from passed queries/values with `.joinBy` argument as delimiter
- **sql.raw(string)** - create SQLQuery statement from raw value. **Be careful!**
- query.joinBy(string) - create SQLQuery with given string to be used to join top-level statements
- query.setName(string) - create SQLQuery with given name set as prepared statement name (for pg)
- query.text - get template text for pg query
Expand Down
90 changes: 90 additions & 0 deletions __tests__/__snapshots__/index.js.snap
Original file line number Diff line number Diff line change
Expand Up @@ -315,6 +315,96 @@ SQLQuery {
}
`;

exports[`sql-query mixes queries and values 1`] = `"$1,query nested query nested nested query = $2, f = $3,$4,other query"`;

exports[`sql-query mixes queries and values 2`] = `"?,query nested query nested nested query = ?, f = ?,?,other query"`;

exports[`sql-query mixes queries and values 3`] = `
[
"value",
1,
"fn data",
"other value",
]
`;

exports[`sql-query mixes queries and values 4`] = `undefined`;

exports[`sql-query mixes queries and values 5`] = `"$1|query nested query nested nested query = $2, f = $3|$4|other query"`;

exports[`sql-query mixes queries and values 6`] = `"?|query nested query nested nested query = ?, f = ?|?|other query"`;

exports[`sql-query mixes queries and values 7`] = `
[
"value",
1,
"fn data",
"other value",
]
`;

exports[`sql-query mixes queries and values 8`] = `undefined`;

exports[`sql-query mixes queries and values 9`] = `"$1,query nested query nested nested query = $2, f = $3,$4,other query"`;

exports[`sql-query mixes queries and values 10`] = `"?,query nested query nested nested query = ?, f = ?,?,other query"`;

exports[`sql-query mixes queries and values 11`] = `
[
"value",
1,
"fn data",
"other value",
]
`;

exports[`sql-query mixes queries and values 12`] = `undefined`;

exports[`sql-query mixes queries and values 13`] = `"$1|query nested query nested nested query = $2, f = $3|$4|other query"`;

exports[`sql-query mixes queries and values 14`] = `"?|query nested query nested nested query = ?, f = ?|?|other query"`;

exports[`sql-query mixes queries and values 15`] = `
[
"value",
1,
"fn data",
"other value",
]
`;

exports[`sql-query mixes queries and values 16`] = `undefined`;

exports[`sql-query mixes queries and values 17`] = `"$1,query nested query nested nested query = $2, f = $3,$4,other query"`;

exports[`sql-query mixes queries and values 18`] = `"?,query nested query nested nested query = ?, f = ?,?,other query"`;

exports[`sql-query mixes queries and values 19`] = `
[
"value",
1,
"fn data",
"other value",
]
`;

exports[`sql-query mixes queries and values 20`] = `undefined`;

exports[`sql-query mixes queries and values 21`] = `"$1|query nested query nested nested query = $2, f = $3|$4|other query"`;

exports[`sql-query mixes queries and values 22`] = `"?|query nested query nested nested query = ?, f = ?|?|other query"`;

exports[`sql-query mixes queries and values 23`] = `
[
"value",
1,
"fn data",
"other value",
]
`;

exports[`sql-query mixes queries and values 24`] = `undefined`;

exports[`sql-query uses lazy evaluated statements 1`] = `"SELECT * FROM people WHERE name = $1"`;

exports[`sql-query uses lazy evaluated statements 2`] = `"SELECT * FROM people WHERE name = ?"`;
Expand Down
17 changes: 17 additions & 0 deletions __tests__/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,23 @@ describe("sql-query", () => {
testQuery(sql`INSERT INTO randoms VALUES (${sql(...data)})`);
});

it("mixes queries and values", () => {
const data = jest.fn(() => 'fn data');

const query = sql(
"value",
sql`query ${sql`nested query ${sql`nested nested query = ${1}, f = ${data}`}`}`,
"other value",
sql`other query`
);

for (let i = 0; i < 3; i++) {
testQuery(query);
testQuery(query.joinBy('|'));
}
expect(data).toBeCalledTimes(2);
});

it("creates statement using lazy evaluated queries and checks count of fn calls", () => {
const relation = jest.fn();
const data = jest.fn();
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"author": "Oleg Nosov <[email protected]>",
"name": "sql-template-builder",
"version": "1.0.1",
"version": "1.0.2",
"main": "./index.js",
"description": "Complex SQL query builder",
"keywords": [
Expand Down

0 comments on commit 711b59d

Please sign in to comment.