JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 279
  • Score
    100M100P100Q72400F
  • License MIT

An SQL builder in Typescript. This project is heavily inspired by [XQL](/extjs/xql). A big shout out to @exjs and @kobalicek for this amazing project.

Package Exports

  • ts-sql

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (ts-sql) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

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