Я ищу способ разбора /tokenize инструкции SQL в приложении Node.js, чтобы:
- Обозначить все ключевые слова SQL "основы", определенные в стандарт ISO/IEC 9075 или здесь.
- Подтвердить синтаксис SQL.
- Узнайте, что будет делать запрос (например, читать или писать?).
Есть ли у вас какое-либо решение или советует подглядывать?
Связано: Любая библиотека Javascript/JQuery Чтобы проверить статус SQL?
Я провел исследование, и я узнал, как это сделать:
Использование существующих библиотек Node.js
Я сделал поиск Google, и я не нашел подходящую и популярную библиотеку. Я нашел те:
- simple-sql-parser (22 звезды на github, 16 ежедневная загрузка на npm)
- Поддерживает только SELECT, INSERT, UPDATE и DELETE
- Существует ветвь v2 на дороге
- sql-parser (90 звезд на github, 6 ежедневных загрузок на npm)
- Поддерживает только базовые операторы SELECT
- На основе jison
- sqljs (17 звезд на github, 5 ежедневных загрузок на npm)
- v0.0.0-3, в разработке... Нет документации вообще:)
К сожалению, ни одна из этих библиотек не может быть полной и надежной.
Выполнение этого самостоятельно на основе библиотеки токенизатора с низким уровнем Node.js
Я могу сделать это сам с низкоуровневой библиотекой токенов, например:
- jison (1,457 звезд на github, 240 ежедневных загрузок на npm)
- tokenizer (44 звезды на github, 10 ежедневных загрузок на npm)
Выполнение этого на основе существующего JavaScript-кода
CodeMirror - довольно крутая библиотека Javascript (сторона браузера), которая может распознавать ключевые слова SQL, строки и т.д. Проверьте ou демо.
Я могу создать токенизатор библиотеки Node.js на основе CodeMirror. Режим SQL здесь, на github, я могу адаптировать его для получения токенов в приложении node.
PS: CodeMirror имеет 5,046 звезд на github и в хорошем состоянии.