Merge pull request #27776 from frappe/perf/count-on-db-exists

fix: align signature with backend; use count for perf on filters
This commit is contained in:
David Arnold 2024-09-14 13:02:25 +02:00 committed by GitHub
commit 8ef064b14a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -24,11 +24,19 @@ frappe.db = {
});
});
},
exists: function (doctype, name) {
exists: function (doctype, nameOrFilters) {
return new Promise((resolve) => {
frappe.db.get_value(doctype, { name: name }, "name").then((r) => {
r.message && r.message.name ? resolve(true) : resolve(false);
});
let filters;
if (typeof nameOrFilters === "string") {
// may be cached and more effecient
frappe.db.get_value(doctype, { name: nameOrFilters }, "name").then((r) => {
r.message && r.message.name ? resolve(true) : resolve(false);
});
} else if (typeof nameOrFilters === "object") {
frappe.db.count(doctype, { filters: filters, limit: 1 }).then((count) => {
resolve(count > 0);
});
}
});
},
get_value: function (doctype, filters, fieldname, callback, parent_doc) {