Package Exports
- ts-mysql-analyzer
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-mysql-analyzer) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
ts-mysql-analyzer
A MySQL query analyzer.

Features
- Detects MySQL syntax errors
- Detects invalid table names/column names (powered by your schema)
- Type checking (powered by your schema)
- Optimization suggestions (e.g. query for column with missing index)
- Supports custom parser options (e.g. MySQL version, character sets, etc.)
- Supports multiple statements
Installation
yarn add ts-mysql-analyzer
# or
npm install ts-mysql-analyzerUsage
import { MySQLAnalyzer } from 'ts-mysql-analyzer'
import { MySQLSchema } from 'ts-mysql-schema'
const mySQLSchema = new MySQLSchema({
uri: 'mysql://root@127.0.0.1:3310/test'
})
const analyzer = new MySQLAnalyzer({
schema: await mySQLSchema.getSchema()
})
// "'SELT' is not valid at this position."
console.log(analyzer.analyze('SELT * FROM user'))
// "Table 'invalid_table' does not exist in database 'test'. Did you mean 'posts'?"
console.log(analyzer.analyze('SELECT * FROM invalid_table'))
// "Column 'invalid_column' does not exist in table 'users'. Did you mean 'name'?"
console.log(analyzer.analyze('SELECT invalid_column FROM users'))
// "Type boolean is not assignable to type string."
console.log(analyzer.analyze('SELECT * FROM users WHERE id = true'))
// "You can optimize this query by adding a MySQL index for column 'name'."
console.log(analyzer.analyze('SELECT * FROM users WHERE name = "some-name"'))Related
- ts-mysql-parser - A standalone, grammar-complete MySQL parser
- ts-mysql-schema - A schema extractor for MySQL
- ts-mysql-uri - Parse a MySQL connection URI
- ts-antlr4-scanner - A scanner for antlr4-based lexers
License
stevenmiller888.github.io · GitHub @stevenmiller888 · Twitter @stevenmiller888