UNPKG

@launchql/core

Version:

LaunchQL Package and Migration Tools

24 lines (23 loc) 789 B
import { deparse, parse } from 'pgsql-parser'; const filterStatements = (stmts) => { const filteredStmts = stmts.filter(node => { const stmt = node.stmt; return stmt && !stmt.hasOwnProperty('TransactionStmt') && !stmt.hasOwnProperty('CreateExtensionStmt'); }); const hasFiltered = filteredStmts.length !== stmts.length; return { filteredStmts, hasFiltered }; }; export const cleanSql = async (sql, pretty, functionDelimiter) => { const parsed = await parse(sql); const { filteredStmts, hasFiltered } = filterStatements(parsed.stmts); if (!hasFiltered) { return sql; } parsed.stmts = filteredStmts; const finalSql = await deparse(parsed, { pretty, functionDelimiter }); return finalSql; };