UNPKG

miniml

Version:

A minimal, embeddable semantic data modeling language for generating SQL queries from YAML model definitions. Inspired by LookML.

24 lines 876 B
import pkg from "node-sql-parser"; const { Parser } = pkg; import { extractFieldReferencesFromNode } from "./common.js"; export function extractFieldReferences(expression, model) { if (!expression?.trim()) return []; let ast; try { const parser = new Parser(); const wrappedSql = `SELECT * FROM dummy WHERE ${expression.trim()}`; ast = parser.astify(wrappedSql, { database: model.dialect }); } catch (error) { return []; } const reference_fields = new Set(); if (ast && typeof ast === 'object') { const selectStmt = Array.isArray(ast) ? ast[0] : ast; if (selectStmt && typeof selectStmt === 'object' && 'where' in selectStmt) extractFieldReferencesFromNode(selectStmt.where, reference_fields); } return Array.from(reference_fields); } //# sourceMappingURL=parse.js.map