UNPKG

n8n-nodes-base

Version:

Base nodes of n8n

87 lines 3.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.description = void 0; exports.execute = execute; const utilities_1 = require("../../../../../utils/utilities"); const utils_1 = require("../../helpers/utils"); const common_descriptions_1 = require("../common.descriptions"); const properties = [ { displayName: 'Return All', name: 'returnAll', type: 'boolean', default: false, description: 'Whether to return all results or only up to a given limit', displayOptions: { show: { resource: ['event'], operation: ['getAll'], }, }, }, { displayName: 'Limit', name: 'limit', type: 'number', default: 50, description: 'Max number of results to return', typeOptions: { minValue: 1, }, displayOptions: { show: { returnAll: [false], }, }, }, common_descriptions_1.selectRowsFixedCollection, common_descriptions_1.combineConditionsCollection, common_descriptions_1.sortFixedCollection, common_descriptions_1.optionsCollection, ]; const displayOptions = { show: { resource: ['database'], operation: ['select'], }, hide: { table: [''], }, }; exports.description = (0, utilities_1.updateDisplayOptions)(displayOptions, properties); async function execute(inputItems, runQueries) { let returnData = []; const queries = []; for (let i = 0; i < inputItems.length; i++) { const table = this.getNodeParameter('table', i, undefined, { extractValue: true, }); const outputColumns = this.getNodeParameter('options.outputColumns', i, ['*']); const selectDistinct = this.getNodeParameter('options.selectDistinct', i, false); let query = ''; const SELECT = selectDistinct ? 'SELECT DISTINCT' : 'SELECT'; if (outputColumns.includes('*')) { query = `${SELECT} * FROM ${(0, utils_1.escapeSqlIdentifier)(table)}`; } else { const escapedColumns = outputColumns.map(utils_1.escapeSqlIdentifier).join(', '); query = `${SELECT} ${escapedColumns} FROM ${(0, utils_1.escapeSqlIdentifier)(table)}`; } let values = []; const whereClauses = (0, utils_1.getWhereClauses)(this, i); const combineConditions = this.getNodeParameter('combineConditions', i, 'AND'); [query, values] = (0, utils_1.addWhereClauses)(this.getNode(), i, query, whereClauses, values, combineConditions); const sortRules = this.getNodeParameter('sort', i, []).values || []; [query, values] = (0, utils_1.addSortRules)(query, sortRules, values); const returnAll = this.getNodeParameter('returnAll', i, false); if (!returnAll) { const limit = this.getNodeParameter('limit', i, 50); query += ' LIMIT ?'; values.push(limit); } queries.push({ query, values }); } returnData = await runQueries(queries); return returnData; } //# sourceMappingURL=select.operation.js.map