Merge pull request #6448 from Budibase/fix/loop-item-javascript
Fix issue with loop item in javascript bindings
This commit is contained in:
commit
7537edcb54
|
@ -103,7 +103,7 @@ globals:
|
||||||
google:
|
google:
|
||||||
clientId: ""
|
clientId: ""
|
||||||
secret: ""
|
secret: ""
|
||||||
automationMaxIterations: "500"
|
automationMaxIterations: "200"
|
||||||
|
|
||||||
createSecrets: true # creates an internal API key, JWT secrets and redis password for you
|
createSecrets: true # creates an internal API key, JWT secrets and redis password for you
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,10 @@
|
||||||
const { getTable } = require("../api/controllers/table/utils")
|
const { getTable } = require("../api/controllers/table/utils")
|
||||||
const { findHBSBlocks } = require("@budibase/string-templates")
|
const {
|
||||||
|
findHBSBlocks,
|
||||||
|
decodeJSBinding,
|
||||||
|
isJSBinding,
|
||||||
|
encodeJSBinding,
|
||||||
|
} = require("@budibase/string-templates")
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* When values are input to the system generally they will be of type string as this is required for template strings.
|
* When values are input to the system generally they will be of type string as this is required for template strings.
|
||||||
|
@ -77,11 +82,21 @@ exports.getError = err => {
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.substituteLoopStep = (hbsString, substitute) => {
|
exports.substituteLoopStep = (hbsString, substitute) => {
|
||||||
let blocks = findHBSBlocks(hbsString)
|
let blocks = []
|
||||||
|
let checkForJS = isJSBinding(hbsString)
|
||||||
|
if (checkForJS) {
|
||||||
|
hbsString = decodeJSBinding(hbsString)
|
||||||
|
blocks.push(hbsString)
|
||||||
|
} else {
|
||||||
|
blocks = findHBSBlocks(hbsString)
|
||||||
|
}
|
||||||
for (let block of blocks) {
|
for (let block of blocks) {
|
||||||
let oldBlock = block
|
|
||||||
block = block.replace(/loop/, substitute)
|
block = block.replace(/loop/, substitute)
|
||||||
hbsString = hbsString.replace(new RegExp(oldBlock, "g"), block)
|
if (checkForJS) {
|
||||||
|
hbsString = encodeJSBinding(block)
|
||||||
|
} else {
|
||||||
|
hbsString = block
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return hbsString
|
return hbsString
|
||||||
|
|
|
@ -67,7 +67,8 @@ module.exports = {
|
||||||
SALT_ROUNDS: process.env.SALT_ROUNDS,
|
SALT_ROUNDS: process.env.SALT_ROUNDS,
|
||||||
LOGGER: process.env.LOGGER,
|
LOGGER: process.env.LOGGER,
|
||||||
LOG_LEVEL: process.env.LOG_LEVEL,
|
LOG_LEVEL: process.env.LOG_LEVEL,
|
||||||
AUTOMATION_MAX_ITERATIONS: process.env.AUTOMATION_MAX_ITERATIONS,
|
AUTOMATION_MAX_ITERATIONS:
|
||||||
|
parseIntSafe(process.env.AUTOMATION_MAX_ITERATIONS) || 200,
|
||||||
SENDGRID_API_KEY: process.env.SENDGRID_API_KEY,
|
SENDGRID_API_KEY: process.env.SENDGRID_API_KEY,
|
||||||
DYNAMO_ENDPOINT: process.env.DYNAMO_ENDPOINT,
|
DYNAMO_ENDPOINT: process.env.DYNAMO_ENDPOINT,
|
||||||
QUERY_THREAD_TIMEOUT: parseIntSafe(process.env.QUERY_THREAD_TIMEOUT),
|
QUERY_THREAD_TIMEOUT: parseIntSafe(process.env.QUERY_THREAD_TIMEOUT),
|
||||||
|
|
|
@ -218,7 +218,7 @@ class Orchestrator {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (
|
if (
|
||||||
index === parseInt(env.AUTOMATION_MAX_ITERATIONS) ||
|
index === env.AUTOMATION_MAX_ITERATION ||
|
||||||
index === parseInt(loopStep.inputs.iterations)
|
index === parseInt(loopStep.inputs.iterations)
|
||||||
) {
|
) {
|
||||||
this.updateContextAndOutput(loopStepNumber, step, tempOutput, {
|
this.updateContextAndOutput(loopStepNumber, step, tempOutput, {
|
||||||
|
|
Loading…
Reference in New Issue