645a73d6af
1. 修改 `package.json` 中的项目名称和版本号。 2. 更新 `node_modules` 中的依赖包版本。 3. 修改 `src/index.ts` 中的 SQL 语句和 `caretColumn` 的计算方式。 4. 修改 `src/parse/default-rules.ts` 中的规则和导入语句。 5. 修改 `src/parse/visitor.ts` 中的访问者和规则。 6. 修改 `src/preprocess/default-preprocessor.ts` 中的预处理逻辑。 7. 修改 `src/types.ts` 中的导入语句。
24 lines
800 B
TypeScript
24 lines
800 B
TypeScript
import { PostgreSQL } from 'dt-sql-parser'
|
|
import { SQLVisitor } from './visitor'
|
|
import { type SQLParseResult } from '../types'
|
|
import { type BasicSQL } from 'dt-sql-parser/dist/parser/common/basicSQL'
|
|
|
|
export function parse (
|
|
sql: string,
|
|
parser: BasicSQL = new PostgreSQL(),
|
|
stmts: string[] = [],
|
|
entities: string[] = [],
|
|
rules: Record<string, number[]> = {},
|
|
alias: Record<string, string> = {},
|
|
): SQLParseResult {
|
|
const tree = parser.parse(sql)
|
|
console.log('tree', tree)
|
|
const visitor = new SQLVisitor()
|
|
visitor.visitorAlias = alias
|
|
stmts.forEach(stmt => { visitor.addStmt(stmt) })
|
|
entities.forEach(entity => { visitor.addEntity(entity) })
|
|
Object.keys(rules).forEach(name => { visitor.addRules(name, rules[name]) })
|
|
visitor.visit(tree)
|
|
return visitor.getResult()
|
|
}
|