ts-sql
TypeScript icon, indicating that this package has built-in type declarations

1.0.1 • Public • Published

ts-sql

Build Status NPM version Coverage Status

SQL builder, AST and code generator in TypeScript. This project is heavily inspired by XQL. A big shout out to @exjs and @kobalicek for this amazing project.

Acknowledgements

  1. Grammar referenced from here.
  2. Project inspired from XQL.

Motivation

The primary use case that prompted me to start this project is to be able to transform a given query that uses a set of tables/columns to one that uses a different set of tables and columns based on a mapping. For e.g. you should be able to transform the following query:

SELECT t.field_1 FROM table_1 AS t

to the following query:

SELECT t.userId FROM user AS t

The following tools are available as part of this project:

  1. Abstract Syntax Tree - a set of classes and types that describes the SQL statements as per the language syntax.
  2. SQL Builder - an API that allows the users to build SQL statements using code and directly in the form of AST.
  3. SQL Compiler - a SQL compiler that generates SQL query based on the AST.

Beta

This project is currently in a beta stage and will continue to be until most of the features are built out.

Introduction

ts-sql is designed to build SQL programmatically and generate an AST. You can customize the AST programmatically. The AST will also support serialization to/from JSON. The AST can be compiled into a SQL query using query builders. Initially ts-sql will come with a MySQL builder. Other builders will be added as needed.

Installation

npm install ts-sql --save
yarn add ts-sql

Usage

It is highly recommended that you use this package with TypeScript in order to fully leverage the type safety and type guards available in the AST and the builder. You can use the API as follows:

let qb = new MySQLQueryBuilder();
let query = qb.select("*").from("accounts").build();
let qc = new MySQLQueryCompiler();
 
console.log(qc.compile(query));
 
// Output
// SELECT * FROM accounts
 

Package Sidebar

Install

npm i ts-sql

Weekly Downloads

7

Version

1.0.1

License

MIT

Unpacked Size

445 kB

Total Files

33

Last publish

Collaborators

  • cdasari