Skip to content

scala-steward/scala-sql-formatter

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

82 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

scala-sql-formatter

Build Status Maven Central

SQL Formatter for Scala.

This is a bridge to these libraries.

Usage

Scala (on JVM)

libraryDependencies += "com.github.vertical-blank" %% "scala-sql-formatter" % "1.0.1"

Scala.js

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 :

SqlFormatter.format("SELECT * FROM table1")

This will output:

SELECT
  *
FROM
  table1

Dialect

You can pass dialect with FormatConfig :

SqlFormatter.format(
  "SELECT *",
  FormatConfig(dialect = SqlDialect.CouchbaseN1QL))

Currently just four SQL dialects are supported:

Format

Defaults to two spaces. You can pass indent string with FormatConfig to format :

SqlFormatter.format(
  "SELECT * FROM table1",
  FormatConfig(indent = "    "))

This will output:

SELECT
    *
FROM
    table1

Placeholders replacement

You can pass Seq to formatWithIndexedParams, or Map to formatWithNamedParams :

// 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:

SELECT
  *
FROM
  tbl
WHERE
  foo = 'bar'

Same as the format method, both formatWithNamedParams and formatWithIndexedParams accept FormatConfig.

About

SQL Formatter for Scala

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Scala 100.0%