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

1.1 KiB
Raw Blame History

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:

userName = [query|
    SELECT first_name, last_name
    FROM users
    WHERE id = $1
|]

purspgpp will replace this by something like the following:

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

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 $_"
    }
}