A DBT jinja/sql formatter with improved comment handling, particularly fixing issues with comments followed by commas.
# Install from npm
npm install -s @ali0113/dbt-formatter
# Or with yarn
yarn add @ali0113/dbt-formatter
# Or with pnpm
pnpm add @ali0113/dbt-formatter
import formatter from '@ali0113/dbt-formatter';
const mySql = "SELECT * FROM {{ ref('myTableRef') }}";
const myOpts = { sql: 'default', indent: 2, upper: false };
formatter.format(mySql, myOpts);
This will result in:
SELECT
*
FROM
{{ ref('myTableRef') }}
Fine tune dbt-formatter
behavior with the following options:
Option | Default | Description |
---|---|---|
sql | default |
The sql dialect you want to use, currently only default is available |
indent | 2 |
How many spaces you want an indentation to be |
upper | false |
Formats sql reserved words to be uppercase when set to true
|
newline | false |
Appends a new line at the end of the formatted sql string |
lowerWords | false |
Lowercases all words as identified by the tokenizer |
allowCamelcase | true |
Allows column names to be camelcased |
This fork improves the handling of comments in SQL, particularly fixing the following issues:
- Fixed an issue where a comma following a line comment would be incorrectly merged with the comment text
- Properly handles comments with varying line endings (CRLF vs LF)
To publish this package to npm:
- Replace
@your-username
in package.json with your actual npm username - Update repository URLs to point to your GitHub fork
- Build the package:
npm run build
- Login to npm:
npm login
- Publish the package:
npm publish --access public
-
npm test
: Run test suite -
npm run build
: Generate bundles and typings -
npm run lint
: Lints code -
npm run package
: Package dbt-formatter as a binary
This is a fork of henriblancke/dbt-formatter with improvements for comment handling.
MIT
- Add more sql dialects:
- [x] snowflake
- [ ] redshift
- [ ] bigquery
- [ ] postgres
- [ ] presto