@flowblade/sql-tag-format
v0.1.4
Published
Formatter utilities for @flowblade/sql-tag
Downloads
438
Readme
@flowblade/sql-tag-format
Sql formatter utilities for @flowblade/sql-tag
Features
- 🛡️ Tested on node 18-22, browser, cloudflare workers and runtime/edge.
- 🗝️ Available in ESM and CJS formats.
Install
yarn add @flowblade/sql-tag-format @flowblade/sql-tagUsage
import { sql } from '@flowblade/sql-tag';
import { SqlFormatter } from "@flowblade/sql-tag-format";
// 👈 Unvalidated parameters
const params = {
country: 'BE',
users: ['John', 'Doe'],
ids: [1],
};
const query = sql<{
id: number;
username: string;
}>`
SELECT id, username FROM users
WHERE country = ${params.country} -- 👈 simple
AND username IN (${sql.join(params.users)}) -- 👈 sql.join
`;
const pgsqlFormatter = new SqlFormatter('postgresql');
const formatted = pgsqlFormatter.formatOrNull(query);
try {
const formatted = pgsqlFormatter.formatOrThrow(query);
} catch (e) {
console.error(e);
}Supported dialects
| Dialect | Description | |---------------|------------------------------| | bigquery | Google SQL | | db2 | DB2 SQL | | db2i | DB2 iSeries SQL | | hive | HiveQL | | mariadb | MariaDB SQL | | mysql | MySQL SQL | | n1ql | N1QL | | plsql | PL/SQL | | postgresql | PostgreSQL SQL | | redshift | Redshift SQL | | singlestoredb | SingleStore SQL | | snowflake | Snowflake SQL | | spark | Spark SQL | | sql | ANSI SQL | | sqlite | SQLite SQL | | tidb | TiDB SQL | | transactsql | Mssql / Transact-SQL (T-SQL) | | trino | Trino SQL | | tsql | Transact-SQL |
Bundle size
Bundle size is tracked by a size-limit configuration
| Scenario (esm) | Size (compressed) |
|-----------------------------------------------------------|------------------:|
| import { SqlFormatter } from '@flowblade/sql-tag-format | ~ 47Kb |
Compatibility
| Level | CI | Description |
|------------|----|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Node | ✅ | CI for 18.x, 20.x & 22.x. |
| Browser | ✅ | Tested with latest chrome (vitest/playwright) |
| Browserslist | ✅ | > 95% on 01/2025. Chrome 96+, Firefox 90+, Edge 19+, ios 15+, Safari 15+ and Opera 77+ |
| Edge | ✅ | Ensured on CI with @vercel/edge-runtime. |
| Cloudflare | ✅ | Ensured with @cloudflare/vitest-pool-workers (see wrangler.toml |
| Typescript | ✅ | TS 5.0 + / are-the-type-wrong checks on CI. |
| ES2022 | ✅ | Dist files checked with es-check |
| Performance| ✅ | Monitored with codspeed.io |
Contributors
Contributions are welcome. Have a look to the CONTRIBUTING document.
Sponsors
Sponsor, coffee, or star – All is spent for quality time with loved ones. Thanks ! 🙏❤️
Special thanks to
License
MIT © Sébastien Vanvelthem and contributors.
