Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vertical-blank/scala-sql-formatter
SQL Formatter for Scala
https://github.com/vertical-blank/scala-sql-formatter
scala scalajs sql-formatter
Last synced: about 3 hours ago
JSON representation
SQL Formatter for Scala
- Host: GitHub
- URL: https://github.com/vertical-blank/scala-sql-formatter
- Owner: vertical-blank
- License: mit
- Created: 2019-10-03T11:13:40.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2023-07-25T05:15:22.000Z (over 1 year ago)
- Last Synced: 2023-07-26T22:10:30.858Z (over 1 year ago)
- Topics: scala, scalajs, sql-formatter
- Language: Scala
- Homepage:
- Size: 72.3 KB
- Stars: 3
- Watchers: 1
- Forks: 4
- Open Issues: 14
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README
# scala-sql-formatter
[![Build Status](https://travis-ci.org/vertical-blank/scala-sql-formatter.png?branch=master)](https://travis-ci.org/vertical-blank/scala-sql-formatter)
[![Maven Central](https://img.shields.io/maven-central/v/com.github.vertical-blank/scala-sql-formatter_2.12.svg?label=Maven%20Central)](https://search.maven.org/search?q=g:%22com.github.vertical-blank%22%20AND%20a:%22scala-sql-formatter_2.12%22)SQL Formatter for Scala.
This is a bridge to these libraries.
- Running on jvm, calls [https://github.com/vertical-blank/sql-formatter](https://github.com/vertical-blank/sql-formatter)
- Running on js, calls [https://github.com/zeroturnaround/sql-formatter](https://github.com/zeroturnaround/sql-formatter)## Usage
### Scala (on JVM)
```sbt
libraryDependencies += "com.github.vertical-blank" %% "scala-sql-formatter" % "1.0.1"
```### Scala.js
```sbt
libraryDependencies += "com.github.vertical-blank" %%% "scala-sql-formatter" % "1.0.1"scalaJSLinkerConfig ~= { _.withModuleKind(ModuleKind.CommonJSModule) }
```### Examples
You can easily use `com.github.vertical_blank.sqlformatter.scala.SqlFormatter` :
```scala
SqlFormatter.format("SELECT * FROM table1")
```This will output:
```sql
SELECT
*
FROM
table1
```### Dialect
You can pass dialect with `FormatConfig` :
```scala
SqlFormatter.format(
"SELECT *",
FormatConfig(dialect = SqlDialect.CouchbaseN1QL))
```Currently just four SQL dialects are supported:
- StandardSQL - [Standard SQL](https://en.wikipedia.org/wiki/SQL:2011)
- CouchbaseN1QL - [Couchbase N1QL](http://www.couchbase.com/n1ql)
- DB2 - [IBM DB2](https://www.ibm.com/analytics/us/en/technology/db2/)
- PLSQL - [Oracle PL/SQL](http://www.oracle.com/technetwork/database/features/plsql/index.html)### Format
Defaults to two spaces.
You can pass indent string with `FormatConfig` to `format` :```scala
SqlFormatter.format(
"SELECT * FROM table1",
FormatConfig(indent = " "))
```This will output:
```sql
SELECT
*
FROM
table1
```### Placeholders replacement
You can pass `Seq` to `formatWithIndexedParams`, or `Map` to `formatWithNamedParams` :
```scala
// Named placeholders
SqlFormatter.formatWithNamedParams("SELECT * FROM tbl WHERE foo = @foo", params = Map("foo" -> "'bar'"))// Indexed placeholders
SqlFormatter.formatWithIndexedParams("SELECT * FROM tbl WHERE foo = ?", params = Seq("'bar'"))
```Both result in:
```sql
SELECT
*
FROM
tbl
WHERE
foo = 'bar'
```Same as the `format` method, both `formatWithNamedParams` and `formatWithIndexedParams` accept `FormatConfig`.