fix(nano.d.ts): fix MangoSelector typings (#172)
diff --git a/lib/nano.d.ts b/lib/nano.d.ts
index 31b60d3..506ecaa 100644
--- a/lib/nano.d.ts
+++ b/lib/nano.d.ts
@@ -1197,10 +1197,33 @@
type MangoValue = number | string | Date | boolean | null;
// http://docs.couchdb.org/en/latest/api/database/find.html#selector-syntax
- interface MangoSelector {
- [key: string]: MangoSelector | MangoValue | MangoValue[];
+
+ enum ConditionOperands {
+ $lt = '$lt',
+ $lte = '$lte',
+ $eq = '$eq',
+ $ne = '$ne',
+ $gte = '$gte',
+ $gt = '$gt'
}
+ enum ArrayFieldOperands {
+ $in = '$in',
+ $nin = '$nin'
+ }
+
+ enum CombinationOperands {
+ $or = '$or',
+ $and = '$and',
+ $nor = '$nor',
+ $all = '$all'
+ }
+
+ type MangoSelector = { [key: string]: MangoSelector | MangoValue | MangoValue[]; }
+ | Partial<{ [key in ConditionOperands]: MangoValue; }>
+ | Partial<{ [key in ArrayFieldOperands]: MangoValue[] }>
+ | Partial<{ [key in CombinationOperands]: MangoSelector[] }>
+
// http://docs.couchdb.org/en/latest/api/database/find.html#sort-syntax
type SortOrder = string | string[] | { [key: string]: 'asc' | 'desc' };