UNPKG

ts-sql-query

Version:

Type-safe SQL query builder like QueryDSL or JOOQ in Java or Linq in .Net for TypeScript with MariaDB, MySql, Oracle, PostgreSql, Sqlite and SqlServer support.

64 lines (63 loc) 2.04 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isSelectPageCountQuery = exports.getFunctionExecutingQuery = exports.getQueryExecutionStack = exports.getQueryExecutionMetadata = exports.getQueryExecutionName = void 0; function getQueryExecutionName(query, params) { query; return params.$metadata?.queryExecutionName; } exports.getQueryExecutionName = getQueryExecutionName; function getQueryExecutionMetadata(query, params) { query; return params.$metadata?.queryExecutionMetadata; } exports.getQueryExecutionMetadata = getQueryExecutionMetadata; function getQueryExecutionStack(query, params) { query; const source = params.$source; return source?.stack; } exports.getQueryExecutionStack = getQueryExecutionStack; function getFunctionExecutingQuery(query, params) { const stack = getQueryExecutionStack(query, params); if (!stack) { return undefined; } const lineRegex = /^.+?\n.+?\n\s+?at(?: async)? (.+?)(?: (?:\((.+?)\)))?\n/m; const lineMatch = stack.match(lineRegex); if (!lineMatch) { return undefined; } let functionName = lineMatch[1]; if (!functionName) { return undefined; } let file = lineMatch[2]; if (!file) { file = functionName; functionName = undefined; } if (functionName === '<anonymous>') { functionName = undefined; } if (file === '<anonymous>') { return undefined; } const fileRegex = /^(.+?)(?:\:(\d+?)(?:\:(\d+?))?)?$/; const fileMatch = file.match(fileRegex); if (!fileMatch) { return { functionName }; } const result = { functionName, fileName: fileMatch[1], lineNumber: fileMatch[2], positionNumber: fileMatch[3] }; return result; } exports.getFunctionExecutingQuery = getFunctionExecutingQuery; function isSelectPageCountQuery(query, params) { query; return !!params.$isSelectPageCountQuery; } exports.isSelectPageCountQuery = isSelectPageCountQuery;