@qorebase/query-compiler
v0.1.0
Published
JavaScript bindings for [`prql-compiler`](https://github.com/prql/prql/). Check out <https://prql-lang.org> for more context.
Downloads
124
Readme
prql-js
JavaScript bindings for prql-compiler
. Check out https://prql-lang.org for more
context.
Installation
npm install prql-js
Usage
Currently these functions are exposed
function compile(prql_string) # returns CompileResult
function to_sql(prql_string) # returns SQL string
function to_json(prql_string) # returns JSON string ( needs JSON.parse() to get the json)
From NodeJS
const prql = require("prql-js");
const { sql, error } = compile(`from employees | select first_name`);
console.log(sql);
// handle error as well...
From a Browser
<html>
<head>
<script src="./node_modules/prql-js/dist/web/prql_js.js"></script>
<script>
const { compile } = wasm_bindgen;
async function run() {
await wasm_bindgen("./node_modules/prql-js/dist/web/prql_js_bg.wasm");
const { sql, error } = compile("from employees | select first_name");
console.log(sql);
// handle error as well...
}
run();
</script>
</head>
<body></body>
</html>
From a Framework or a Bundler
import compile from "prql-js/dist/bundler";
const { sql, error } = compile(`from employees | select first_name`);
console.log(sql);
// handle error as well...
Notes
This uses
wasm-pack
to generate bindings[^1].
[^1]:
though we would be very open to other approaches, and used trunk
successfully in a rust-driven approach to this, RIP prql-web
.
Development
Build:
npm run build-all
This builds Node, bundler and web packages in the dist
path.
Test:
wasm-pack test --firefox