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

0.0.8 • Public • Published

sql2dts

A command-line tool that converts SQL files into TypeScript type definition (.d.ts) files that support multiple database types. Can also be used in the browser.

Installation

npm install -g sql2dts

Usage

cli

sql2dts <input.sql> [options]

Parameters

  • <input.sql>: Required, path to the SQL file to convert
  • -d <database>: Optional, specifies database type (default: 'mysql')
  • -o <output>: Optional, specifies output file path (default: '.d.ts')

Supported Database Types

Currently supported database types include:

  • athena
  • bigquery
  • cassandra
  • clickhouse
  • cockroachdb
  • duckdb
  • flink
  • hive
  • ibmdb2
  • mariadb
  • mysql (default)
  • neo4j
  • oracle
  • postgre
  • presto
  • redshift
  • snowflake
  • spanner
  • sqlite
  • sqlserver

Examples

  1. Basic usage:
sql2dts schema.sql

Reads schema.sql and generates mysql.d.ts type definitions.

  1. Specify database type:
sql2dts schema.sql -d postgre

Generates type definitions for PostgreSQL in the current directory.

  1. Full usage:
sql2dts test/msyql.sql -o types/database.d.ts -d msyql

Saves generated types to types/database.d.ts.

  1. Absolute path:
sql2dts test/msyql.sql -o /path/to/abc.ts -d mysql

Saves generated types to /path/to/abc.ts.

esm

import { generateForMysql } from 'sql2dts';

const sql = 'DROP TABLE IF EXISTS `file`;\n' +
  'CREATE TABLE `file` (\n' +
  '  `id` CHAR(36) NOT NULL,\n' +
  '  `filename` varchar(255) NOT NULL,\n' +
  '  PRIMARY KEY (`id`),\n' +
  ') ENGINE=InnoDB AUTO_INCREMENT=500 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;'

console.log(generateForMysql(sql));
console.log(generateForMysql(sql, { namespace: 'DbName' }));

output Example:

interface File {
  id: string;
  filename: string;
}

Output Example (With Namespace):

namespace DbName {
  interface File {
    id: string;
    filename: string;
  }
}

browser

Need to introduce static resources

<script src="https://unpkg.com/sql2dts"></script>

How to use it in browser.

sql2dts.generateForMysql(sql);

Package Sidebar

Install

npm i sql2dts

Weekly Downloads

6

Version

0.0.8

License

MIT

Unpacked Size

404 kB

Total Files

150

Last publish

Collaborators

  • sunshm