@budibase/server 0.9.185-alpha.10 → 0.9.185-alpha.14

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.
Files changed (186) hide show
  1. package/builder/assets/bb-space-man.5be51a45.svg +290 -0
  2. package/builder/assets/{index.34aca569.css → index.4a7c5636.css} +1 -1
  3. package/builder/assets/{index.a9806411.js → index.8ed163fd.js} +179 -180
  4. package/builder/index.html +2 -2
  5. package/coverage/clover.xml +189 -167
  6. package/coverage/coverage-final.json +6 -6
  7. package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
  8. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  9. package/coverage/lcov-report/api/controllers/application.js.html +1 -1
  10. package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
  11. package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
  12. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  13. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  14. package/coverage/lcov-report/api/controllers/component.js.html +1 -1
  15. package/coverage/lcov-report/api/controllers/datasource.js.html +102 -18
  16. package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/hosting.js.html +1 -1
  18. package/coverage/lcov-report/api/controllers/index.html +19 -19
  19. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  20. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  21. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  22. package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
  23. package/coverage/lcov-report/api/controllers/query.js.html +1 -1
  24. package/coverage/lcov-report/api/controllers/role.js.html +1 -1
  25. package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
  26. package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
  27. package/coverage/lcov-report/api/controllers/row/index.html +1 -1
  28. package/coverage/lcov-report/api/controllers/row/index.js.html +1 -1
  29. package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
  30. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
  31. package/coverage/lcov-report/api/controllers/row/utils.js.html +1 -1
  32. package/coverage/lcov-report/api/controllers/screen.js.html +1 -1
  33. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  34. package/coverage/lcov-report/api/controllers/table/external.js.html +29 -8
  35. package/coverage/lcov-report/api/controllers/table/index.html +13 -13
  36. package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
  37. package/coverage/lcov-report/api/controllers/table/internal.js.html +1 -1
  38. package/coverage/lcov-report/api/controllers/table/utils.js.html +1 -1
  39. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  40. package/coverage/lcov-report/api/controllers/user.js.html +1 -1
  41. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  42. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  43. package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
  44. package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
  45. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  46. package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
  47. package/coverage/lcov-report/api/index.html +1 -1
  48. package/coverage/lcov-report/api/index.js.html +1 -1
  49. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  50. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  51. package/coverage/lcov-report/api/routes/application.js.html +1 -1
  52. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  53. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  56. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  57. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/hosting.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/index.html +1 -1
  62. package/coverage/lcov-report/api/routes/index.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  69. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  70. package/coverage/lcov-report/api/routes/row.js.html +1 -1
  71. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  73. package/coverage/lcov-report/api/routes/static.js.html +1 -1
  74. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  75. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  76. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  77. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  78. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  79. package/coverage/lcov-report/automations/actions.js.html +1 -1
  80. package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
  81. package/coverage/lcov-report/automations/bullboard.js.html +1 -1
  82. package/coverage/lcov-report/automations/index.html +1 -1
  83. package/coverage/lcov-report/automations/index.js.html +1 -1
  84. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  85. package/coverage/lcov-report/automations/steps/createRow.js.html +1 -1
  86. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  87. package/coverage/lcov-report/automations/steps/deleteRow.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  89. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  90. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  91. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/index.html +1 -1
  93. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  94. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
  95. package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
  96. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  97. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  98. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  99. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  100. package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
  101. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  102. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  103. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  104. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  105. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  106. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  107. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  108. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  109. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  110. package/coverage/lcov-report/automations/triggers.js.html +1 -1
  111. package/coverage/lcov-report/automations/utils.js.html +1 -1
  112. package/coverage/lcov-report/constants/index.html +5 -5
  113. package/coverage/lcov-report/constants/index.js.html +25 -4
  114. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  115. package/coverage/lcov-report/constants/screens.js.html +1 -1
  116. package/coverage/lcov-report/db/client.js.html +1 -1
  117. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  118. package/coverage/lcov-report/db/index.html +1 -1
  119. package/coverage/lcov-report/db/index.js.html +1 -1
  120. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
  121. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  122. package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
  123. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
  124. package/coverage/lcov-report/db/newid.js.html +1 -1
  125. package/coverage/lcov-report/db/utils.js.html +1 -1
  126. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  127. package/coverage/lcov-report/events/index.html +1 -1
  128. package/coverage/lcov-report/events/index.js.html +1 -1
  129. package/coverage/lcov-report/events/utils.js.html +1 -1
  130. package/coverage/lcov-report/index.html +37 -37
  131. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  132. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  133. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  134. package/coverage/lcov-report/middleware/authorized.js.html +1 -1
  135. package/coverage/lcov-report/middleware/builder.js.html +1 -1
  136. package/coverage/lcov-report/middleware/currentapp.js.html +1 -1
  137. package/coverage/lcov-report/middleware/index.html +1 -1
  138. package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
  139. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  140. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  141. package/coverage/lcov-report/middleware/usageQuota.js.html +1 -1
  142. package/coverage/lcov-report/middleware/utils.js.html +1 -1
  143. package/coverage/lcov-report/threads/automation.js.html +14 -8
  144. package/coverage/lcov-report/threads/index.html +27 -27
  145. package/coverage/lcov-report/threads/index.js.html +29 -11
  146. package/coverage/lcov-report/threads/query.js.html +16 -7
  147. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  148. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  149. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  150. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  151. package/coverage/lcov-report/utilities/global.js.html +1 -1
  152. package/coverage/lcov-report/utilities/index.html +1 -1
  153. package/coverage/lcov-report/utilities/index.js.html +1 -1
  154. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
  155. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  156. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  157. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  158. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  159. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
  160. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
  161. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  162. package/coverage/lcov-report/utilities/security.js.html +1 -1
  163. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  164. package/coverage/lcov-report/utilities/users.js.html +1 -1
  165. package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
  166. package/coverage/lcov.info +303 -259
  167. package/dist/api/controllers/datasource.js +25 -5
  168. package/dist/api/controllers/table/external.js +8 -1
  169. package/dist/constants/index.js +6 -0
  170. package/dist/environment.js +13 -0
  171. package/dist/integrations/utils.js +7 -1
  172. package/dist/package.json +4 -4
  173. package/dist/threads/automation.js +3 -1
  174. package/dist/threads/index.js +9 -3
  175. package/dist/threads/query.js +3 -0
  176. package/dist/tsconfig.tsbuildinfo +1 -1
  177. package/package.json +5 -5
  178. package/scripts/dev/manage.js +1 -0
  179. package/src/api/controllers/datasource.js +35 -7
  180. package/src/api/controllers/table/external.js +8 -1
  181. package/src/constants/index.js +7 -0
  182. package/src/environment.js +15 -0
  183. package/src/integrations/utils.ts +6 -1
  184. package/src/threads/automation.js +3 -1
  185. package/src/threads/index.js +9 -3
  186. package/src/threads/query.js +3 -0
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@budibase/server",
3
3
  "email": "hi@budibase.com",
4
- "version": "0.9.185-alpha.10",
4
+ "version": "0.9.185-alpha.14",
5
5
  "description": "Budibase Web Server",
6
6
  "main": "src/index.js",
7
7
  "repository": {
@@ -68,9 +68,9 @@
68
68
  "author": "Budibase",
69
69
  "license": "AGPL-3.0-or-later",
70
70
  "dependencies": {
71
- "@budibase/auth": "^0.9.185-alpha.10",
72
- "@budibase/client": "^0.9.185-alpha.10",
73
- "@budibase/string-templates": "^0.9.185-alpha.10",
71
+ "@budibase/auth": "^0.9.185-alpha.14",
72
+ "@budibase/client": "^0.9.185-alpha.14",
73
+ "@budibase/string-templates": "^0.9.185-alpha.14",
74
74
  "@bull-board/api": "^3.7.0",
75
75
  "@bull-board/koa": "^3.7.0",
76
76
  "@elastic/elasticsearch": "7.10.0",
@@ -150,5 +150,5 @@
150
150
  "typescript": "^4.3.5",
151
151
  "update-dotenv": "^1.1.1"
152
152
  },
153
- "gitHead": "a013c51e2bd27b69985e3b2d67147bfca81aafb7"
153
+ "gitHead": "4e76951a03d3ea6793c1820d6c5590a36de6496e"
154
154
  }
@@ -50,6 +50,7 @@ async function init() {
50
50
  SELF_HOSTED: 1,
51
51
  DISABLE_ACCOUNT_PORTAL: "",
52
52
  MULTI_TENANCY: "",
53
+ DISABLE_THREADING: 1,
53
54
  }
54
55
  let envFile = ""
55
56
  Object.keys(envFileJson).forEach(key => {
@@ -7,7 +7,7 @@ const {
7
7
  BudibaseInternalDB,
8
8
  getTableParams,
9
9
  } = require("../../db/utils")
10
- const { BuildSchemaErrors } = require("../../constants")
10
+ const { BuildSchemaErrors, InvalidColumns } = require("../../constants")
11
11
  const { integrations } = require("../../integrations")
12
12
  const { getDatasourceAndQuery } = require("./row/utils")
13
13
 
@@ -152,6 +152,23 @@ exports.query = async function (ctx) {
152
152
  }
153
153
  }
154
154
 
155
+ function getErrorTables(errors, errorType) {
156
+ return Object.entries(errors)
157
+ .filter(entry => entry[1] === errorType)
158
+ .map(([name]) => name)
159
+ }
160
+
161
+ function updateError(error, newError, tables) {
162
+ if (!error) {
163
+ error = ""
164
+ }
165
+ if (error.length > 0) {
166
+ error += "\n"
167
+ }
168
+ error += `${newError} ${tables.join(", ")}`
169
+ return error
170
+ }
171
+
155
172
  const buildSchemaHelper = async datasource => {
156
173
  const Connector = integrations[datasource.source]
157
174
 
@@ -176,12 +193,23 @@ const buildSchemaHelper = async datasource => {
176
193
  const errors = connector.schemaErrors
177
194
  let error = null
178
195
  if (errors && Object.keys(errors).length > 0) {
179
- const noKeyTables = Object.entries(errors)
180
- .filter(entry => entry[1] === BuildSchemaErrors.NO_KEY)
181
- .map(([name]) => name)
182
- error = `No primary key constraint found for the following: ${noKeyTables.join(
183
- ", "
184
- )}`
196
+ const noKey = getErrorTables(errors, BuildSchemaErrors.NO_KEY)
197
+ const invalidCol = getErrorTables(errors, BuildSchemaErrors.INVALID_COLUMN)
198
+ if (noKey.length) {
199
+ error = updateError(
200
+ error,
201
+ "No primary key constraint found for the following:",
202
+ noKey
203
+ )
204
+ }
205
+ if (invalidCol.length) {
206
+ const invalidCols = Object.values(InvalidColumns).join(", ")
207
+ error = updateError(
208
+ error,
209
+ `Cannot use columns ${invalidCols} found in following:`,
210
+ invalidCol
211
+ )
212
+ }
185
213
  }
186
214
  return { tables: connector.tables, error }
187
215
  }
@@ -161,9 +161,13 @@ function isRelationshipSetup(column) {
161
161
  exports.save = async function (ctx) {
162
162
  const appId = ctx.appId
163
163
  const table = ctx.request.body
164
- // can't do this
164
+ // can't do this right now
165
165
  delete table.dataImport
166
166
  const datasourceId = getDatasourceId(ctx.request.body)
167
+ // table doesn't exist already, note that it is created
168
+ if (!table._id) {
169
+ table.created = true
170
+ }
167
171
  let tableToSave = {
168
172
  type: "table",
169
173
  _id: buildExternalTableId(datasourceId, table.name),
@@ -265,6 +269,9 @@ exports.save = async function (ctx) {
265
269
  exports.destroy = async function (ctx) {
266
270
  const appId = ctx.appId
267
271
  const tableToDelete = await getTable(appId, ctx.params.tableId)
272
+ if (!tableToDelete || !tableToDelete.created) {
273
+ ctx.throw(400, "Cannot delete tables which weren't created in Budibase.")
274
+ }
268
275
  const datasourceId = getDatasourceId(tableToDelete)
269
276
 
270
277
  const db = new CouchDB(appId)
@@ -163,8 +163,15 @@ exports.MetadataTypes = {
163
163
  AUTOMATION_TEST_HISTORY: "automationTestHistory",
164
164
  }
165
165
 
166
+ exports.InvalidColumns = {
167
+ ID: "_id",
168
+ REV: "_rev",
169
+ TABLE_ID: "tableId",
170
+ }
171
+
166
172
  exports.BuildSchemaErrors = {
167
173
  NO_KEY: "no_key",
174
+ INVALID_COLUMN: "invalid_column",
168
175
  }
169
176
 
170
177
  // pass through the list from the auth/core lib
@@ -23,6 +23,8 @@ if (!LOADED && isDev() && !isTest()) {
23
23
  LOADED = true
24
24
  }
25
25
 
26
+ let inThread = false
27
+
26
28
  module.exports = {
27
29
  // important
28
30
  PORT: process.env.PORT,
@@ -62,6 +64,7 @@ module.exports = {
62
64
  USERID_API_KEY: process.env.USERID_API_KEY,
63
65
  DEPLOYMENT_CREDENTIALS_URL: process.env.DEPLOYMENT_CREDENTIALS_URL,
64
66
  ALLOW_DEV_AUTOMATIONS: process.env.ALLOW_DEV_AUTOMATIONS,
67
+ DISABLE_THREADING: process.env.DISABLE_THREADING,
65
68
  _set(key, value) {
66
69
  process.env[key] = value
67
70
  module.exports[key] = value
@@ -72,6 +75,18 @@ module.exports = {
72
75
  isProd: () => {
73
76
  return !isDev()
74
77
  },
78
+ // used to check if already in a thread, don't thread further
79
+ setInThread: () => {
80
+ inThread = true
81
+ },
82
+ isInThread: () => {
83
+ return inThread
84
+ },
85
+ }
86
+
87
+ // threading can cause memory issues with node-ts in development
88
+ if (isDev() && module.exports.DISABLE_THREADING == null) {
89
+ module.exports._set("DISABLE_THREADING", "1")
75
90
  }
76
91
 
77
92
  // clean up any environment variable edge cases
@@ -2,7 +2,7 @@ import { SqlQuery } from "../definitions/datasource"
2
2
  import { Datasource, Table } from "../definitions/common"
3
3
  import { SourceNames } from "../definitions/datasource"
4
4
  const { DocumentTypes, SEPARATOR } = require("../db/utils")
5
- const { FieldTypes, BuildSchemaErrors } = require("../constants")
5
+ const { FieldTypes, BuildSchemaErrors, InvalidColumns } = require("../constants")
6
6
 
7
7
  const DOUBLE_SEPARATOR = `${SEPARATOR}${SEPARATOR}`
8
8
  const ROW_ID_REGEX = /^\[.*]$/g
@@ -161,13 +161,18 @@ export function finaliseExternalTables(
161
161
  tables: { [key: string]: any },
162
162
  entities: { [key: string]: any }
163
163
  ) {
164
+ const invalidColumns = Object.values(InvalidColumns)
164
165
  const finalTables: { [key: string]: any } = {}
165
166
  const errors: { [key: string]: string } = {}
166
167
  for (let [name, table] of Object.entries(tables)) {
168
+ const schemaFields = Object.keys(table.schema)
167
169
  // make sure every table has a key
168
170
  if (table.primary == null || table.primary.length === 0) {
169
171
  errors[name] = BuildSchemaErrors.NO_KEY
170
172
  continue
173
+ } else if (schemaFields.find(field => invalidColumns.includes(field))) {
174
+ errors[name] = BuildSchemaErrors.INVALID_COLUMN
175
+ continue
171
176
  }
172
177
  // make sure all previous props have been added back
173
178
  finalTables[name] = copyExistingPropsOver(name, table, entities)
@@ -1,3 +1,6 @@
1
+ // when thread starts, make sure it is recorded
2
+ const env = require("../environment")
3
+ env.setInThread()
1
4
  const actions = require("../automations/actions")
2
5
  const automationUtils = require("../automations/automationUtils")
3
6
  const AutomationEmitter = require("../events/AutomationEmitter")
@@ -6,7 +9,6 @@ const { DEFAULT_TENANT_ID } = require("@budibase/auth").constants
6
9
  const CouchDB = require("../db")
7
10
  const { DocumentTypes, isDevAppID } = require("../db/utils")
8
11
  const { doInTenant } = require("@budibase/auth/tenancy")
9
- const env = require("../environment")
10
12
  const usage = require("../utilities/usageQuota")
11
13
  const { definitions: triggerDefs } = require("../automations/triggerInfo")
12
14
 
@@ -24,10 +24,16 @@ function typeToFile(type) {
24
24
  class Thread {
25
25
  constructor(type, opts = { timeoutMs: null, count: 1 }) {
26
26
  this.type = type
27
- if (!env.isTest()) {
27
+ this.count = opts.count ? opts.count : 1
28
+ this.disableThreading =
29
+ env.isTest() ||
30
+ env.DISABLE_THREADING ||
31
+ this.count === 0 ||
32
+ env.isInThread()
33
+ if (!this.disableThreading) {
28
34
  const workerOpts = {
29
35
  autoStart: true,
30
- maxConcurrentWorkers: opts.count ? opts.count : 1,
36
+ maxConcurrentWorkers: this.count,
31
37
  }
32
38
  if (opts.timeoutMs) {
33
39
  workerOpts.maxCallTime = opts.timeoutMs
@@ -40,7 +46,7 @@ class Thread {
40
46
  return new Promise((resolve, reject) => {
41
47
  let fncToCall
42
48
  // if in test then don't use threading
43
- if (env.isTest()) {
49
+ if (this.disableThreading) {
44
50
  fncToCall = require(typeToFile(this.type))
45
51
  } else {
46
52
  fncToCall = this.workers
@@ -1,3 +1,6 @@
1
+ // when thread starts, make sure it is recorded
2
+ const env = require("../environment")
3
+ env.setInThread()
1
4
  const ScriptRunner = require("../utilities/scriptRunner")
2
5
  const { integrations } = require("../integrations")
3
6