JSPM

ts-mysql-analyzer

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

A MySQL query analyzer.

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

Alt Text

A MySQL query analyzer.

Alt Text

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-analyzer

Usage

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"'))

License

MIT


stevenmiller888.github.io  ·  GitHub @stevenmiller888  ·  Twitter @stevenmiller888