UNPKG

miniml

Version:

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

34 lines 1.41 kB
export class SqlValidationError extends Error { violations; suggestions; constructor(message, violations, suggestions) { super(message); this.violations = violations; this.suggestions = suggestions; this.name = 'SqlValidationError'; } } export function extractFieldReferencesFromNode(node, field_set) { if (!node || typeof node !== 'object') return; if (node.type === 'column_ref') { if (typeof node.column === 'string' && node.column !== '' && node.column !== '*') field_set.add(node.column); else if (typeof node.column === 'object' && node.column !== null && typeof node.column.expr === 'object' && typeof node.column.expr.value === 'string') field_set.add(node.column.expr.value); if (Array.isArray(node.subFields) && node.subFields.length > 0) { const columnName = node.subFields[node.subFields.length - 1]; if (typeof columnName === 'string' && columnName !== '') field_set.add(columnName); } } for (const key in node) { const value = node[key]; if (Array.isArray(value)) value.forEach(item => extractFieldReferencesFromNode(item, field_set)); else if (typeof value === 'object') extractFieldReferencesFromNode(value, field_set); } } //# sourceMappingURL=common.js.map