{"id":43876,"library":"sql-bricks","title":"SQL Bricks.js","description":"SQL Bricks.js is a transparent, schemaless library for building and composing SQL-92 statements (SELECT, INSERT, UPDATE, DELETE) in JavaScript. Current stable version is 3.0.1. It has no production dependencies, single file (~1,100 lines), over 200 tests, and ships TypeScript types. Compared to Knex (20k lines, schema-based) and Squel (1.7k lines), sql-bricks offers a minimal, zero-dependency alternative with dialect-specific extensions for PostgreSQL, MySQL, and SQLite via separate packages.","status":"active","version":"3.0.1","language":"javascript","source_language":"en","source_url":"https://github.com/CSNW/sql-bricks","tags":["javascript","sql","generation","generate","query","pg","postgres","sqlite","builder","typescript"],"install":[{"cmd":"npm install sql-bricks","lang":"bash","label":"npm"},{"cmd":"yarn add sql-bricks","lang":"bash","label":"yarn"},{"cmd":"pnpm add sql-bricks","lang":"bash","label":"pnpm"}],"dependencies":[],"imports":[{"note":"ESM import is preferred; CJS still works but is legacy. The library exports named functions, not a default export.","wrong":"const select = require('sql-bricks').select;","symbol":"select","correct":"import { select } from 'sql-bricks'"},{"note":"There is no default export; must use named import.","wrong":"import insert from 'sql-bricks';","symbol":"insert","correct":"import { insert } from 'sql-bricks'"},{"note":"Use namespace import to access all functions, since there is no default export.","wrong":"import SqlBricks from 'sql-bricks'","symbol":"SqlBricks (full object)","correct":"import * as SqlBricks from 'sql-bricks'"},{"note":"toParams() is safer (parameterized) and recommended over toString().","wrong":"const query = select().from('table').toString()","symbol":"toParams","correct":"const query = select().from('table').toParams()"}],"quickstart":{"code":"import { select, insert, update, delete as del } from 'sql-bricks';\n\n// Build a SELECT query\nconst query = select('id', 'name')\n  .from('users')\n  .where({ age: 25 })\n  .orderBy('name')\n  .limit(10)\n  .offset(0);\n\n// Get parameterized query (recommended)\nconst params = query.toParams();\nconsole.log(params.text); // \"SELECT id, name FROM users WHERE age = $1 ORDER BY name LIMIT $2 OFFSET $3\"\nconsole.log(params.values); // [25, 10, 0]\n\n// Or get raw SQL string (less safe)\nconsole.log(query.toString()); // \"SELECT id, name FROM users WHERE age = 25 ORDER BY name LIMIT 10 OFFSET 0\"\n\n// INSERT\nconst ins = insert('users', { id: 1, name: 'John' });\nconsole.log(ins.toString()); // \"INSERT INTO users (id, name) VALUES (1, 'John')\"\n\n// UPDATE\nconst upd = update('users').set({ name: 'Jane' }).where({ id: 1 });\nconsole.log(upd.toString()); // \"UPDATE users SET name = 'Jane' WHERE id = 1\"\n\n// DELETE\nconst delQuery = del('users').where({ id: 1 });\nconsole.log(delQuery.toString()); // \"DELETE FROM users WHERE id = 1\"","lang":"typescript","description":"Shows how to build SELECT, INSERT, UPDATE, DELETE queries with toParams() (parameterized) and toString(). Uses named imports and demonstrates basic WHERE, ORDER BY, LIMIT, OFFSET."},"warnings":[{"fix":"Install sql-bricks-postgres and import from that package instead.","message":"PostgreSQL extensions (LIMIT, OFFSET, etc.) are NOT included in core sql-bricks. Use sql-bricks-postgres for full Postgres support.","severity":"gotcha","affected_versions":">=3.0.0"},{"fix":"Use .toParams() instead of .toString() for all queries that include user input.","message":"toString() does NOT parameterize values; it does basic escaping only. Use toParams() for SQL injection protection.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Use `import { delete as del } from 'sql-bricks'` or access via `SqlBricks.delete`.","message":"delete is a reserved word in JavaScript; you cannot use it as a variable name directly. Must alias when importing.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Switch to `import { ... } from 'sql-bricks'` in ESM environments.","message":"CJS require() style is not recommended; ESM imports are preferred.","severity":"deprecated","affected_versions":">=3.0.0"},{"fix":"Manually append ' ASC' or ' DESC' to the column string, e.g., .orderBy('name DESC').","message":"orderBy() does not support ASC/DESC/COLLATE options per issue #73 (still unresolved).","severity":"gotcha","affected_versions":">=1.0.0"}],"env_vars":null,"search_vec":"'-92':15 '1':35 '1.7':55 '100':36 '200':39 '20k':48 '3.0.1':27 'altern':67 'base':52 'brick':60 'bricks.js':2,4 'build':11 'builder':89 'compar':45 'compos':13 'current':23 'delet':20 'depend':32,66 'dialect':70 'dialect-specif':69 'extens':72 'file':34 'generat':83,84 'insert':18 'javascript':22,81 'k':56 'knex':47 'librari':9 'line':37,49,57 'minim':63 'mysql':75 'offer':61 'packag':80 'pg':86 'postgr':87 'postgresql':74 'product':31 'queri':85 'schema':51 'schema-bas':50 'schemaless':8 'select':17 'separ':79 'ship':42 'singl':33 'specif':71 'sql':1,3,14,59,82 'sql-brick':58 'sqlite':77,88 'squel':54 'stabl':24 'statement':16 'test':40 'transpar':7 'type':44 'typescript':43,90 'updat':19 'version':25 'via':78 'zero':65 'zero-depend':64","created_at":"2026-06-05T17:01:54.188330+00:00","updated_at":"2026-06-05T17:01:54.188330+00:00","problems":[{"fix":"Use import * as SqlBricks from 'sql-bricks' or import { select } from 'sql-bricks'.","cause":"Using namespace import incorrectly (e.g., import SqlBricks from 'sql-bricks' which gives undefined).","error":"TypeError: Cannot read properties of undefined (reading 'select')"},{"fix":"Alias the import: import { delete as del } from 'sql-bricks'.","cause":"Using 'delete' as a variable name (reserved keyword).","error":"ReferenceError: delete is not defined"},{"fix":"Install sql-bricks-postgres (or -sqlite, -mysql) and import from that package.","cause":"Using core sql-bricks which does not support LIMIT (it's in dialect extensions).","error":"Error: LIMIT clause not yet implemented"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"http://csnw.github.io/sql-bricks","github":"https://github.com/CSNW/sql-bricks","docs":null,"changelog":null,"pypi":null,"npm":"sql-bricks","openapi_spec":null,"status_page":null,"smithery":null,"categories":["database"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-05","next_check":"2026-09-03","install_tag":null}}