@budibase/server 1.0.49-alpha.8 → 1.0.49-alpha.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/builder/assets/{index.94a9250f.js → index.ad5370ae.js} +181 -181
- package/builder/index.html +1 -1
- package/coverage/clover.xml +91 -96
- package/coverage/coverage-final.json +1 -1
- package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
- package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
- package/coverage/lcov-report/api/controllers/application.js.html +1 -1
- package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
- package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
- package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
- package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
- package/coverage/lcov-report/api/controllers/component.js.html +1 -1
- package/coverage/lcov-report/api/controllers/datasource.js.html +1 -1
- package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
- package/coverage/lcov-report/api/controllers/index.html +1 -1
- package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
- package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
- package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
- package/coverage/lcov-report/api/controllers/migrations.js.html +1 -1
- package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
- package/coverage/lcov-report/api/controllers/query/index.html +1 -1
- package/coverage/lcov-report/api/controllers/query/index.js.html +1 -1
- package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
- package/coverage/lcov-report/api/controllers/role.js.html +1 -1
- package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/index.html +1 -1
- package/coverage/lcov-report/api/controllers/row/index.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/utils.js.html +1 -1
- package/coverage/lcov-report/api/controllers/screen.js.html +1 -1
- package/coverage/lcov-report/api/controllers/script.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/external.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/index.html +1 -1
- package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/internal.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/utils.js.html +1 -1
- package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
- package/coverage/lcov-report/api/controllers/user.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/index.html +1 -1
- package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
- package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
- package/coverage/lcov-report/api/index.html +1 -1
- package/coverage/lcov-report/api/index.js.html +1 -1
- package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
- package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
- package/coverage/lcov-report/api/routes/application.js.html +1 -1
- package/coverage/lcov-report/api/routes/auth.js.html +1 -1
- package/coverage/lcov-report/api/routes/automation.js.html +1 -1
- package/coverage/lcov-report/api/routes/backup.js.html +1 -1
- package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
- package/coverage/lcov-report/api/routes/component.js.html +1 -1
- package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
- package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
- package/coverage/lcov-report/api/routes/dev.js.html +1 -1
- package/coverage/lcov-report/api/routes/index.html +1 -1
- package/coverage/lcov-report/api/routes/index.js.html +1 -1
- package/coverage/lcov-report/api/routes/integration.js.html +1 -1
- package/coverage/lcov-report/api/routes/layout.js.html +1 -1
- package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
- package/coverage/lcov-report/api/routes/migrations.js.html +1 -1
- package/coverage/lcov-report/api/routes/permission.js.html +1 -1
- package/coverage/lcov-report/api/routes/query.js.html +1 -1
- package/coverage/lcov-report/api/routes/role.js.html +1 -1
- package/coverage/lcov-report/api/routes/routing.js.html +1 -1
- package/coverage/lcov-report/api/routes/row.js.html +1 -1
- package/coverage/lcov-report/api/routes/screen.js.html +1 -1
- package/coverage/lcov-report/api/routes/script.js.html +1 -1
- package/coverage/lcov-report/api/routes/static.js.html +1 -1
- package/coverage/lcov-report/api/routes/table.js.html +1 -1
- package/coverage/lcov-report/api/routes/templates.js.html +1 -1
- package/coverage/lcov-report/api/routes/user.js.html +1 -1
- package/coverage/lcov-report/api/routes/view.js.html +1 -1
- package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
- package/coverage/lcov-report/automations/actions.js.html +1 -1
- package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
- package/coverage/lcov-report/automations/bullboard.js.html +1 -1
- package/coverage/lcov-report/automations/index.html +1 -1
- package/coverage/lcov-report/automations/index.js.html +1 -1
- package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
- package/coverage/lcov-report/automations/steps/createRow.js.html +1 -1
- package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
- package/coverage/lcov-report/automations/steps/deleteRow.js.html +1 -1
- package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
- package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
- package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
- package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
- package/coverage/lcov-report/automations/steps/index.html +1 -1
- package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
- package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
- package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
- package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
- package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
- package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
- package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
- package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
- package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
- package/coverage/lcov-report/automations/triggers.js.html +1 -1
- package/coverage/lcov-report/automations/utils.js.html +1 -1
- package/coverage/lcov-report/constants/index.html +1 -1
- package/coverage/lcov-report/constants/index.js.html +1 -1
- package/coverage/lcov-report/constants/layouts.js.html +1 -1
- package/coverage/lcov-report/constants/screens.js.html +1 -1
- package/coverage/lcov-report/db/client.js.html +1 -1
- package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
- package/coverage/lcov-report/db/index.html +1 -1
- package/coverage/lcov-report/db/index.js.html +1 -1
- package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
- package/coverage/lcov-report/db/linkedRows/index.html +1 -1
- package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
- package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
- package/coverage/lcov-report/db/newid.js.html +1 -1
- package/coverage/lcov-report/db/utils.js.html +1 -1
- package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
- package/coverage/lcov-report/events/index.html +1 -1
- package/coverage/lcov-report/events/index.js.html +1 -1
- package/coverage/lcov-report/events/utils.js.html +1 -1
- package/coverage/lcov-report/index.html +13 -13
- package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
- package/coverage/lcov-report/integrations/tests/index.html +1 -1
- package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
- package/coverage/lcov-report/middleware/authorized.js.html +1 -1
- package/coverage/lcov-report/middleware/builder.js.html +1 -1
- package/coverage/lcov-report/middleware/currentapp.js.html +1 -1
- package/coverage/lcov-report/middleware/index.html +1 -1
- package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
- package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
- package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
- package/coverage/lcov-report/middleware/usageQuota.js.html +1 -1
- package/coverage/lcov-report/middleware/utils.js.html +1 -1
- package/coverage/lcov-report/threads/automation.js.html +1 -1
- package/coverage/lcov-report/threads/index.html +14 -14
- package/coverage/lcov-report/threads/index.js.html +1 -1
- package/coverage/lcov-report/threads/query.js.html +10 -31
- package/coverage/lcov-report/threads/utils.js.html +1 -1
- package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
- package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
- package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
- package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
- package/coverage/lcov-report/utilities/global.js.html +1 -1
- package/coverage/lcov-report/utilities/index.html +1 -1
- package/coverage/lcov-report/utilities/index.js.html +1 -1
- package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
- package/coverage/lcov-report/utilities/queue/index.html +1 -1
- package/coverage/lcov-report/utilities/routing/index.html +1 -1
- package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
- package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
- package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
- package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
- package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
- package/coverage/lcov-report/utilities/security.js.html +1 -1
- package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
- package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
- package/coverage/lcov-report/utilities/usageQuota/index.js.html +1 -1
- package/coverage/lcov-report/utilities/usageQuota/rows.js.html +1 -1
- package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
- package/coverage/lcov-report/utilities/users.js.html +1 -1
- package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
- package/coverage/lcov.info +155 -164
- package/dist/api/controllers/row/ExternalRequest.js +14 -4
- package/dist/integrations/base/sql.js +43 -8
- package/dist/package.json +4 -4
- package/dist/threads/query.js +2 -8
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/scripts/integrations/postgres/init.sql +11 -6
- package/src/api/controllers/row/ExternalRequest.ts +14 -1
- package/src/integrations/base/sql.ts +55 -14
- package/src/threads/query.js +2 -9
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@budibase/server",
|
|
3
3
|
"email": "hi@budibase.com",
|
|
4
|
-
"version": "1.0.49-alpha.
|
|
4
|
+
"version": "1.0.49-alpha.9",
|
|
5
5
|
"description": "Budibase Web Server",
|
|
6
6
|
"main": "src/index.ts",
|
|
7
7
|
"repository": {
|
|
@@ -70,9 +70,9 @@
|
|
|
70
70
|
"license": "GPL-3.0",
|
|
71
71
|
"dependencies": {
|
|
72
72
|
"@apidevtools/swagger-parser": "^10.0.3",
|
|
73
|
-
"@budibase/backend-core": "^1.0.49-alpha.
|
|
74
|
-
"@budibase/client": "^1.0.49-alpha.
|
|
75
|
-
"@budibase/string-templates": "^1.0.49-alpha.
|
|
73
|
+
"@budibase/backend-core": "^1.0.49-alpha.9",
|
|
74
|
+
"@budibase/client": "^1.0.49-alpha.9",
|
|
75
|
+
"@budibase/string-templates": "^1.0.49-alpha.9",
|
|
76
76
|
"@bull-board/api": "^3.7.0",
|
|
77
77
|
"@bull-board/koa": "^3.7.0",
|
|
78
78
|
"@elastic/elasticsearch": "7.10.0",
|
|
@@ -168,5 +168,5 @@
|
|
|
168
168
|
"optionalDependencies": {
|
|
169
169
|
"oracledb": "^5.3.0"
|
|
170
170
|
},
|
|
171
|
-
"gitHead": "
|
|
171
|
+
"gitHead": "797136cabc9f23bbf61bb17736fcf12b0e750dc8"
|
|
172
172
|
}
|
|
@@ -9,12 +9,16 @@ CREATE TABLE Persons (
|
|
|
9
9
|
);
|
|
10
10
|
CREATE TABLE Tasks (
|
|
11
11
|
TaskID SERIAL PRIMARY KEY,
|
|
12
|
-
|
|
12
|
+
ExecutorID INT,
|
|
13
|
+
QaID INT,
|
|
13
14
|
Completed BOOLEAN,
|
|
14
15
|
TaskName varchar(255),
|
|
15
|
-
CONSTRAINT
|
|
16
|
-
FOREIGN KEY(
|
|
17
|
-
REFERENCES Persons(PersonID)
|
|
16
|
+
CONSTRAINT fkexecutor
|
|
17
|
+
FOREIGN KEY(ExecutorID)
|
|
18
|
+
REFERENCES Persons(PersonID),
|
|
19
|
+
CONSTRAINT fkqa
|
|
20
|
+
FOREIGN KEY(QaID)
|
|
21
|
+
REFERENCES Persons(PersonID)
|
|
18
22
|
);
|
|
19
23
|
CREATE TABLE Products (
|
|
20
24
|
ProductID SERIAL PRIMARY KEY,
|
|
@@ -32,8 +36,9 @@ CREATE TABLE Products_Tasks (
|
|
|
32
36
|
PRIMARY KEY (ProductID, TaskID)
|
|
33
37
|
);
|
|
34
38
|
INSERT INTO Persons (FirstName, LastName, Address, City) VALUES ('Mike', 'Hughes', '123 Fake Street', 'Belfast');
|
|
35
|
-
INSERT INTO
|
|
36
|
-
INSERT INTO Tasks (
|
|
39
|
+
INSERT INTO Persons (FirstName, LastName, Address, City) Values ('John', 'Smith', '64 Updown Road', 'Dublin');
|
|
40
|
+
INSERT INTO Tasks (ExecutorID, QaID, TaskName, Completed) VALUES (1, 2, 'assembling', TRUE);
|
|
41
|
+
INSERT INTO Tasks (ExecutorID, QaID, TaskName, Completed) VALUES (2, 1, 'processing', FALSE);
|
|
37
42
|
INSERT INTO Products (ProductName) VALUES ('Computers');
|
|
38
43
|
INSERT INTO Products (ProductName) VALUES ('Laptops');
|
|
39
44
|
INSERT INTO Products (ProductName) VALUES ('Chairs');
|
|
@@ -184,7 +184,7 @@ module External {
|
|
|
184
184
|
thisRow._id = generateIdForRow(row, table)
|
|
185
185
|
thisRow.tableId = table._id
|
|
186
186
|
thisRow._rev = "rev"
|
|
187
|
-
return thisRow
|
|
187
|
+
return processFormulas(table, thisRow)
|
|
188
188
|
}
|
|
189
189
|
|
|
190
190
|
function fixArrayTypes(row: Row, table: Table) {
|
|
@@ -327,8 +327,12 @@ module External {
|
|
|
327
327
|
* This iterates through the returned rows and works out what elements of the rows
|
|
328
328
|
* actually match up to another row (based on primary keys) - this is pretty specific
|
|
329
329
|
* to SQL and the way that SQL relationships are returned based on joins.
|
|
330
|
+
* This is complicated, but the idea is that when a SQL query returns all the relations
|
|
331
|
+
* will be separate rows, with all of the data in each row. We have to decipher what comes
|
|
332
|
+
* from where (which tables) and how to convert that into budibase columns.
|
|
330
333
|
*/
|
|
331
334
|
updateRelationshipColumns(
|
|
335
|
+
table: Table,
|
|
332
336
|
row: Row,
|
|
333
337
|
rows: { [key: string]: Row },
|
|
334
338
|
relationships: RelationshipsJson[]
|
|
@@ -339,6 +343,13 @@ module External {
|
|
|
339
343
|
if (!linkedTable) {
|
|
340
344
|
continue
|
|
341
345
|
}
|
|
346
|
+
const fromColumn = `${table.name}.${relationship.from}`
|
|
347
|
+
const toColumn = `${linkedTable.name}.${relationship.to}`
|
|
348
|
+
// this is important when working with multiple relationships
|
|
349
|
+
// between the same tables, don't want to overlap/multiply the relations
|
|
350
|
+
if (!relationship.through && row[fromColumn] !== row[toColumn]) {
|
|
351
|
+
continue
|
|
352
|
+
}
|
|
342
353
|
let linked = basicProcessing(row, linkedTable)
|
|
343
354
|
if (!linked._id) {
|
|
344
355
|
continue
|
|
@@ -386,6 +397,7 @@ module External {
|
|
|
386
397
|
// this is a relationship of some sort
|
|
387
398
|
if (finalRows[rowId]) {
|
|
388
399
|
finalRows = this.updateRelationshipColumns(
|
|
400
|
+
table,
|
|
389
401
|
row,
|
|
390
402
|
finalRows,
|
|
391
403
|
relationships
|
|
@@ -399,6 +411,7 @@ module External {
|
|
|
399
411
|
finalRows[thisRow._id] = thisRow
|
|
400
412
|
// do this at end once its been added to the final rows
|
|
401
413
|
finalRows = this.updateRelationshipColumns(
|
|
414
|
+
table,
|
|
402
415
|
row,
|
|
403
416
|
finalRows,
|
|
404
417
|
relationships
|
|
@@ -191,29 +191,70 @@ class InternalBuilder {
|
|
|
191
191
|
if (!relationships) {
|
|
192
192
|
return query
|
|
193
193
|
}
|
|
194
|
+
const tableSets: Record<string, [any]> = {}
|
|
195
|
+
// aggregate into table sets (all the same to tables)
|
|
194
196
|
for (let relationship of relationships) {
|
|
195
|
-
const
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
197
|
+
const keyObj: { toTable: string; throughTable: string | undefined } = {
|
|
198
|
+
toTable: relationship.tableName,
|
|
199
|
+
throughTable: undefined,
|
|
200
|
+
}
|
|
201
|
+
if (relationship.through) {
|
|
202
|
+
keyObj.throughTable = relationship.through
|
|
203
|
+
}
|
|
204
|
+
const key = JSON.stringify(keyObj)
|
|
205
|
+
if (tableSets[key]) {
|
|
206
|
+
tableSets[key].push(relationship)
|
|
207
|
+
} else {
|
|
208
|
+
tableSets[key] = [relationship]
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
for (let [key, relationships] of Object.entries(tableSets)) {
|
|
212
|
+
const { toTable, throughTable } = JSON.parse(key)
|
|
213
|
+
if (!throughTable) {
|
|
199
214
|
// @ts-ignore
|
|
200
|
-
query = query.
|
|
215
|
+
query = query.join(
|
|
201
216
|
toTable,
|
|
202
|
-
|
|
203
|
-
|
|
217
|
+
function () {
|
|
218
|
+
for (let relationship of relationships) {
|
|
219
|
+
const from = relationship.from,
|
|
220
|
+
to = relationship.to
|
|
221
|
+
// @ts-ignore
|
|
222
|
+
this.orOn(`${fromTable}.${from}`, "=", `${toTable}.${to}`)
|
|
223
|
+
}
|
|
224
|
+
},
|
|
225
|
+
"left"
|
|
204
226
|
)
|
|
205
227
|
} else {
|
|
206
|
-
const throughTable = relationship.through
|
|
207
|
-
const fromPrimary = relationship.fromPrimary
|
|
208
|
-
const toPrimary = relationship.toPrimary
|
|
209
228
|
query = query
|
|
210
229
|
// @ts-ignore
|
|
211
|
-
.
|
|
230
|
+
.join(
|
|
212
231
|
throughTable,
|
|
213
|
-
|
|
214
|
-
|
|
232
|
+
function () {
|
|
233
|
+
for (let relationship of relationships) {
|
|
234
|
+
const fromPrimary = relationship.fromPrimary
|
|
235
|
+
const from = relationship.from
|
|
236
|
+
// @ts-ignore
|
|
237
|
+
this.orOn(
|
|
238
|
+
`${fromTable}.${fromPrimary}`,
|
|
239
|
+
"=",
|
|
240
|
+
`${throughTable}.${from}`
|
|
241
|
+
)
|
|
242
|
+
}
|
|
243
|
+
},
|
|
244
|
+
"left"
|
|
245
|
+
)
|
|
246
|
+
.join(
|
|
247
|
+
toTable,
|
|
248
|
+
function () {
|
|
249
|
+
for (let relationship of relationships) {
|
|
250
|
+
const toPrimary = relationship.toPrimary
|
|
251
|
+
const to = relationship.to
|
|
252
|
+
// @ts-ignore
|
|
253
|
+
this.orOn(`${toTable}.${toPrimary}`, `${throughTable}.${to}`)
|
|
254
|
+
}
|
|
255
|
+
},
|
|
256
|
+
"left"
|
|
215
257
|
)
|
|
216
|
-
.leftJoin(toTable, `${toTable}.${toPrimary}`, `${throughTable}.${to}`)
|
|
217
258
|
}
|
|
218
259
|
}
|
|
219
260
|
return query.limit(BASE_LIMIT)
|
package/src/threads/query.js
CHANGED
|
@@ -5,9 +5,6 @@ const { integrations } = require("../integrations")
|
|
|
5
5
|
const { processStringSync } = require("@budibase/string-templates")
|
|
6
6
|
const { doInAppContext, getAppDB } = require("@budibase/backend-core/context")
|
|
7
7
|
|
|
8
|
-
const IS_TRIPLE_BRACE = new RegExp(/^{{3}.*}{3}$/)
|
|
9
|
-
const IS_HANDLEBARS = new RegExp(/^{{2}.*}{2}$/)
|
|
10
|
-
|
|
11
8
|
class QueryRunner {
|
|
12
9
|
constructor(input, flags = { noRecursiveQuery: false }) {
|
|
13
10
|
this.datasource = input.datasource
|
|
@@ -188,12 +185,8 @@ class QueryRunner {
|
|
|
188
185
|
enrichedQuery[key] = this.enrichQueryFields(fields[key], parameters)
|
|
189
186
|
} else if (typeof fields[key] === "string") {
|
|
190
187
|
// enrich string value as normal
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
if (IS_HANDLEBARS.test(value) && !IS_TRIPLE_BRACE.test(value)) {
|
|
194
|
-
value = `{${value}}`
|
|
195
|
-
}
|
|
196
|
-
enrichedQuery[key] = processStringSync(value, parameters, {
|
|
188
|
+
enrichedQuery[key] = processStringSync(fields[key], parameters, {
|
|
189
|
+
noEscaping: true,
|
|
197
190
|
noHelpers: true,
|
|
198
191
|
})
|
|
199
192
|
} else {
|