A simple and lightweight syntax highlighting library for SQL
SQL Highlight is a small package that highlights SQL queries. It can output to both the terminal with Unicode escape sequences, as well as to normal HTML. Oh, and there are no external dependencies 😉
Install via Yarn:
yarn add sql-highlightInstall via NPM:
npm install sql-highlightNote that we're using ES6 import statements here. Usage with
requireworks just as well.
In its most basic form:
import { highlight } from 'sql-highlight'
const sqlString = "SELECT `id`, `username` FROM `users` WHERE `email` = '[email protected]'"
const highlighted = highlight(sqlString)
console.log(highlighted)Output:
HTML mode:
import { highlight } from 'sql-highlight'
const sqlString = "SELECT `id`, `username` FROM `users` WHERE `email` = '[email protected]'"
const highlighted = highlight(sqlString, {
html: true
})
document.body.innerHTML += highlightedOutput:
<span class="sql-hl-keyword">SELECT</span>
<span class="sql-hl-string">`id`</span>
<span class="sql-hl-special">,</span>
<span class="sql-hl-string">`username`</span>
<span class="sql-hl-keyword">FROM</span>
<span class="sql-hl-string">`users`</span>
<span class="sql-hl-keyword">WHERE</span>
<span class="sql-hl-string">`email`</span>
<span class="sql-hl-special">=</span>
<span class="sql-hl-string">'[email protected]'</span>The following options may be passed to the highlight function.
| Option | Value | Default | Description |
|---|---|---|---|
| html | boolean |
false |
Set to true to render HTML instead of Unicode. |
| classPrefix | string |
'sql-hl-' |
Prefix to prepend to classes for HTML span-tags. Is appended with entity name. |
| colors | Object |
See below* | What color codes to use for Unicode rendering. |
* colors option default value
{
keyword: '\x1b[35m', // SQL reserved keywords
function: '\x1b[31m', // Functions
number: '\x1b[32m', // Numbers
string: '\x1b[32m', // Strings
special: '\x1b[33m', // Special characters
bracket: '\x1b[33m' // Brackets (parentheses)
}- Fork it (https://github.com/scriptcoded/sql-highlight/fork)
- Create your feature branch (
git checkout -b feature/fooBar) - Commit your changes (
git commit -am 'Add some fooBar') - Push to the branch (
git push origin feature/fooBar) - Create a new Pull Request
Malcolm Nihlén - [email protected]
Distributed under the MIT licence. See LICENCE for more information.
https://github.com/scriptcoded
This was initially a fork from https://github.com/pomahtuk/sequilize-highlight. The repo wasn't being updated, NPM wasn't serving the latest version and there was a severe memory leak. Though the latest version now exists on NPM, issues still persist. This repo serves to address those problems, as well as providing a cleaner interface that's not bound to Sequelize.
With version 3.0.0 the library was almost completely rewritten, which leaves very little similarity with the original repo.
