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.
npm install -g sql2dtssql2dts <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
- Basic usage:
sql2dts schema.sqlReads schema.sql and generates mysql.d.ts type definitions.
- Specify database type:
sql2dts schema.sql -d postgreGenerates type definitions for PostgreSQL in the current directory.
- Full usage:
sql2dts test/msyql.sql -o types/database.d.ts -d msyqlSaves generated types to types/database.d.ts.
- Absolute path:
sql2dts test/msyql.sql -o /path/to/abc.ts -d mysqlSaves generated types to /path/to/abc.ts.
import{generateForMysql}from'sql2dts';constsql='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:
interfaceFile{id: string;filename: string;}Output Example (With Namespace):
namespaceDbName{interfaceFile{id: string;filename: string;}}Need to introduce static resources
<scriptsrc="https://unpkg.com/sql2dts"></script>How to use it in browser.
sql2dts.generateForMysql(sql);