Merge branch 'master' into feature/toggle-all-formblock-fields

This commit is contained in:
Andrew Kingston 2023-11-10 15:02:34 +00:00 committed by GitHub
commit 83e5a2c144
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 12 additions and 5 deletions

View File

@ -1,5 +1,5 @@
{ {
"version": "2.13.7", "version": "2.13.9",
"npmClient": "yarn", "npmClient": "yarn",
"packages": [ "packages": [
"packages/*" "packages/*"

View File

@ -10,6 +10,7 @@ import {
DatabaseDeleteIndexOpts, DatabaseDeleteIndexOpts,
Document, Document,
isDocument, isDocument,
RowResponse,
} from "@budibase/types" } from "@budibase/types"
import { getCouchInfo } from "./connections" import { getCouchInfo } from "./connections"
import { directCouchUrlCall } from "./utils" import { directCouchUrlCall } from "./utils"
@ -127,12 +128,19 @@ export class DatabaseImpl implements Database {
keys: ids, keys: ids,
include_docs: true, include_docs: true,
}) })
const NOT_FOUND = "not_found" const rowUnavailable = (row: RowResponse<T>) => {
const rows = response.rows.filter(row => row.error !== NOT_FOUND) // row is deleted - key lookup can return this
if (row.doc == null || ("deleted" in row.value && row.value.deleted)) {
return true
}
return row.error === "not_found"
}
const rows = response.rows.filter(row => !rowUnavailable(row))
const someMissing = rows.length !== response.rows.length const someMissing = rows.length !== response.rows.length
// some were filtered out - means some missing // some were filtered out - means some missing
if (!opts?.allowMissing && someMissing) { if (!opts?.allowMissing && someMissing) {
const missing = response.rows.filter(row => row.error === NOT_FOUND) const missing = response.rows.filter(row => rowUnavailable(row))
const missingIds = missing.map(row => row.key).join(", ") const missingIds = missing.map(row => row.key).join(", ")
throw new Error(`Unable to get documents: ${missingIds}`) throw new Error(`Unable to get documents: ${missingIds}`)
} }

View File

@ -28,7 +28,6 @@ const DEFAULT_SELECT_DB = SelectableDatabase.DEFAULT
// for testing just generate the client once // for testing just generate the client once
let CLOSED = false let CLOSED = false
let CLIENTS: { [key: number]: any } = {} let CLIENTS: { [key: number]: any } = {}
0
let CONNECTED = false let CONNECTED = false
// mock redis always connected // mock redis always connected