purescript-postgresql-client/README.md
2016-12-24 13:34:27 +01:00

42 lines
1.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# purescript-postgresql-client
purescript-postgresql-client is a PostgreSQL client library for PureScript.
Included is a preprocessor, purspgpp, which finds embedded SQL queries in
PureScript source files and infers their types. Such queries can be written as
follows:
```purescript
userName = [query|
SELECT first_name, last_name
FROM users
WHERE id = $1
|]
```
purspgpp will replace this by something like the following:
```purescript
(Query """
SELECT first_name, last_name
FROM users
WHERE id = $1
""" :: Query (UUID × Unit) (String × String × Unit))
```
You can integrate purspgpp into your build system. For example, here is a
PowerShell script that executes it for all `.purspg` files:
```powershell
Get-ChildItem src -Recurse -Filter *.purspg `
| ForEach-Object {
perl6 `
bower_components/purescript-postgresql-client/purspgpp `
"user=postgres password=lol123 dbname=nn" `
"$($_.FullName)" `
"$([IO.Path]::ChangeExtension($_.FullName, "purs"))"
if (!$?) {
Write-Error "Unable to preprocess $_"
}
}
```