@launchql/core
Version:
LaunchQL Package and Migration Tools
24 lines (23 loc) • 789 B
JavaScript
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;
};