TypeScript SDK for Wvlet - A flow-style query language
npm install @wvlet/wvletTypeScript/JavaScript SDK for Wvlet - A flow-style query language that compiles to SQL.
``bash`
npm install @wvlet/wvletor
yarn add @wvlet/wvletor
pnpm add @wvlet/wvlet
`typescript
import { WvletCompiler } from '@wvlet/wvlet';
const compiler = new WvletCompiler();
// Compile a Wvlet query to SQL
const sql = compiler.compile('from users select name, email');
console.log(sql);
// Output: SELECT name, email FROM users
`
`typescript
import { WvletCompiler } from '@wvlet/wvlet';
const compiler = new WvletCompiler({
target: 'duckdb' // or 'trino'
});
// Compile a query
const sql = compiler.compile('from users where age > 18 select *');
`
`typescript
import { WvletCompiler, CompilationError } from '@wvlet/wvlet';
const compiler = new WvletCompiler();
try {
const sql = compiler.compile('invalid query syntax');
} catch (error) {
if (error instanceof CompilationError) {
console.error(Error at line ${error.location?.line}, column ${error.location?.column});Message: ${error.message}
console.error();Status: ${error.statusCode}
console.error();`
}
}
`typescript
import { compile } from '@wvlet/wvlet';
// Use the default compiler with a single function call
const sql = compile('from orders select count(*)');
`
#### Constructor
`typescript`
new WvletCompiler(options?: CompileOptions)
Options:
- target: Target SQL dialect ('duckdb' | 'trino'). Default: 'duckdb'profile
- : Profile name for configuration
#### Methods
##### compile(query: string, options?: CompileOptions): string
Compiles a Wvlet query to SQL.
##### static getVersion(): string
Returns the version of the Wvlet compiler.
`typescript
const sql = compiler.compile(
from users u
join orders o on u.id = o.user_id
select u.name, count(*) as order_count
group by u.name);`
`typescript
const sql = compiler.compile(
with active_users as (
from users
where last_login > current_date - interval '30 days'
select *
)
from active_users
select name, email);``
This SDK works in both Node.js and modern browsers that support ES modules.
Apache License 2.0
See the main Wvlet repository for contribution guidelines.