prostgles-types 4.0.216 → 4.0.217
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.
- package/dist/filters.d.ts +5 -26
- package/dist/filters.d.ts.map +1 -1
- package/dist/typeTests.js +1 -1
- package/dist/typeTests.js.map +1 -1
- package/lib/filters.ts +5 -14
- package/lib/typeTests.ts +1 -1
- package/package.json +1 -1
package/dist/filters.d.ts
CHANGED
|
@@ -128,19 +128,6 @@ export type ComplexFilter = Record<typeof COMPLEX_FILTER_KEY, [
|
|
|
128
128
|
any?
|
|
129
129
|
]>;
|
|
130
130
|
export type KeyofString<T> = keyof T & string;
|
|
131
|
-
/**
|
|
132
|
-
* Shortened filter operands
|
|
133
|
-
*/
|
|
134
|
-
type BasicFilter<Field extends string, DataType extends any> = Partial<{
|
|
135
|
-
[K in Extract<(typeof CompareFilterKeys)[number], string> as `${Field}.${K}`]: CastFromTSToPG<DataType>;
|
|
136
|
-
}> | Partial<{
|
|
137
|
-
[K in Extract<(typeof CompareInFilterKeys)[number], string> as `${Field}.${K}`]: CastFromTSToPG<DataType>[];
|
|
138
|
-
}>;
|
|
139
|
-
type StringFilter<Field extends string, DataType extends any> = BasicFilter<Field, DataType> & (Partial<{
|
|
140
|
-
[K in Extract<(typeof TextFilterKeys)[number], string> as `${Field}.${K}`]: DataType;
|
|
141
|
-
}> | Partial<{
|
|
142
|
-
[K in Extract<(typeof TextFilterFTSKeys)[number], string> as `${Field}.${K}`]: any;
|
|
143
|
-
}>);
|
|
144
131
|
export type ValueOf<T> = T[keyof T];
|
|
145
132
|
/**
|
|
146
133
|
* Filter used for data synchronization, where all specified columns must match the given values.
|
|
@@ -162,16 +149,16 @@ export type CompareFilter<T extends AllowedTSType> =
|
|
|
162
149
|
T | ExactlyOne<Record<(typeof CompareFilterKeys)[number], T>> | ExactlyOne<Record<(typeof CompareInFilterKeys)[number], T[]>> | ExactlyOne<Record<(typeof BetweenFilterKeys)[number], [T, T]>>;
|
|
163
150
|
export type TextFilter = ExactlyOne<Record<(typeof TextFilterKeys)[number], string>> | ExactlyOne<Record<(typeof TextFilterFTSKeys)[number], FullTextSearchFilter>>;
|
|
164
151
|
type Primitive = string | number | boolean | Date | null;
|
|
165
|
-
export type JSONBFilter<T extends Record<string, unknown
|
|
152
|
+
export type JSONBFilter<T extends Record<string, unknown> | readonly Record<string, unknown>[]> = {
|
|
166
153
|
/**
|
|
167
154
|
* Does the left JSON value contain the right JSON path/value entries at the top level?
|
|
168
155
|
*/
|
|
169
|
-
"@>": T
|
|
156
|
+
"@>": T extends readonly (infer U)[] ? Partial<U>[] : Partial<T>;
|
|
170
157
|
} | {
|
|
171
158
|
/**
|
|
172
159
|
* Are the left JSON path/value entries contained at the top level within the right JSON value?
|
|
173
160
|
*/
|
|
174
|
-
"<@": T
|
|
161
|
+
"<@": T extends readonly (infer U)[] ? Partial<U>[] : Partial<T>;
|
|
175
162
|
} | {
|
|
176
163
|
/**
|
|
177
164
|
* Does JSON path return any item for the specified JSON value
|
|
@@ -181,7 +168,7 @@ export type JSONBFilter<T extends Record<string, unknown>> = {
|
|
|
181
168
|
/**
|
|
182
169
|
* Filter operators for each PG data type
|
|
183
170
|
*/
|
|
184
|
-
export type FilterDataType<T extends AllowedTSType> = T extends string ? TextFilter : T extends number ? CompareFilter<CastFromTSToPG<T>> : T extends boolean ? CompareFilter<CastFromTSToPG<T>> : T extends Date ? CompareFilter<CastFromTSToPG<T>> : T extends Primitive[] ? ArrayFilter<T> : CompareFilter<T> | TextFilter | GeomFilter;
|
|
171
|
+
export type FilterDataType<T extends AllowedTSType> = T extends string ? TextFilter : T extends number ? CompareFilter<CastFromTSToPG<T>> : T extends boolean ? CompareFilter<CastFromTSToPG<T>> : T extends Date ? CompareFilter<CastFromTSToPG<T>> : T extends Primitive[] ? ArrayFilter<T> : T extends Record<string, unknown> | Record<string, unknown>[] ? JSONBFilter<T> : CompareFilter<T> | TextFilter | GeomFilter;
|
|
185
172
|
/**
|
|
186
173
|
* Column filter with operators
|
|
187
174
|
* Multiple columns are combined with AND
|
|
@@ -190,15 +177,7 @@ export type FilterDataType<T extends AllowedTSType> = T extends string ? TextFil
|
|
|
190
177
|
export type NormalFilter<T> = {
|
|
191
178
|
[K in keyof Partial<T>]: CompareFilter<T[K]> | FilterDataType<T[K]>;
|
|
192
179
|
} & Partial<ComplexFilter>;
|
|
193
|
-
|
|
194
|
-
* Filters with shorthand notation for autocomplete convenience
|
|
195
|
-
* Operator is inside the key: ` "{columnName}.{operator}": value`
|
|
196
|
-
* @example: { "name.$ilike": 'abc' }
|
|
197
|
-
*/
|
|
198
|
-
type ShorthandFilter<Obj extends Record<string, any>> = ValueOf<{
|
|
199
|
-
[K in KeyofString<Obj>]: Obj[K] extends string ? StringFilter<K, Required<Obj>[K]> : BasicFilter<K, Required<Obj>[K]>;
|
|
200
|
-
}>;
|
|
201
|
-
export type FilterForObject<T extends AnyObject = AnyObject> = NormalFilter<T> | ShorthandFilter<T>;
|
|
180
|
+
export type FilterForObject<T extends AnyObject = AnyObject> = NormalFilter<T>;
|
|
202
181
|
export type ExistsFilter<S = void> = Partial<{
|
|
203
182
|
[key in EXISTS_KEY]: S extends DBSchema ? ExactlyOne<{
|
|
204
183
|
[tname in KeyofString<S>]: FullFilter<S[tname]["columns"], S> | {
|
package/dist/filters.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../lib/filters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAW,MAAM,QAAQ,CAAC;AAE7C,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC;AACvE,MAAM,MAAM,cAAc,GAAG,aAAa,EAAE,CAAC;AAE7C,eAAO,MAAM,iBAAiB,iIAepB,CAAC;AACX,eAAO,MAAM,mBAAmB,0BAA2B,CAAC;AAC5D,eAAO,MAAM,iBAAiB,sCAAuC,CAAC;AAEtE,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkEhB,CAAC;AAEX,eAAO,MAAM,eAAe,uEAAyB,CAAC;AAEtD,eAAO,MAAM,cAAc,mDAAoD,CAAC;AAEhF,eAAO,MAAM,iBAAiB,0DAA2D,CAAC;AAE1F,eAAO,MAAM,mCAAmC,wFAKtC,CAAC;AACX,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAC3C,MAAM,CAAC,CAAC,OAAO,mCAAmC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CACvE,CAAC;AAEF,eAAO,MAAM,mBAAmB,mFAStB,CAAC;AACX,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,aAAa,EAAE,IAC7C,MAAM,CAAC,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAC/C,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAIhE;;;;GAIG;AACH,MAAM,MAAM,OAAO,GAAG;IAAE,eAAe,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAEpD;;;GAGG;AACH,MAAM,MAAM,UAAU;AACpB;;GAEG;AACD;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE;AAWnB;;GAEG;GACD;IAAE,GAAG,EAAE,OAAO,CAAA;CAAE,CAAC;AAIrB;;GAEG;AAGH,eAAO,MAAM,cAAc,iGAejB,CAAC;AACX,eAAO,MAAM,gBAAgB,qFAKnB,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAG5C,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,aAAa,IAChD,CAAC,SAAS,MAAM,GAAG,CAAC,GAAG,MAAM,GAC3B,CAAC,SAAS,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,GACpC,CAAC,SAAS,OAAO,GAAG,CAAC,GAAG,MAAM,GAC9B,CAAC,SAAS,IAAI,GAAG,CAAC,GAAG,MAAM,GAC3B,CAAC,CAAC;AAEN,eAAO,MAAM,WAAW,yEAA0E,CAAC;AACnG,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtD,eAAO,MAAM,2BAA2B,6RAM9B,CAAC;AAEX,eAAO,MAAM,kBAAkB,EAAG,SAAkB,CAAC;AAErD;;;;;;;;;GASG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAChC,OAAO,kBAAkB,EACzB;IAAC;QAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,EAAE,CAAA;KAAE;IAAE,CAAC,OAAO,2BAA2B,CAAC,CAAC,MAAM,CAAC,CAAC;IAAE,GAAG,CAAC;CAAC,CACrF,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../lib/filters.ts"],"names":[],"mappings":"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"}
|
package/dist/typeTests.js
CHANGED
|
@@ -72,7 +72,7 @@ async () => {
|
|
|
72
72
|
async () => {
|
|
73
73
|
const tableHandler = undefined;
|
|
74
74
|
tableHandler.insert({ h: 1, c: 2, "b.$func": { dwa: [] } });
|
|
75
|
-
const schemaFFilter = {
|
|
75
|
+
const schemaFFilter = { col1: "dd" };
|
|
76
76
|
const fullFilter = schemaFFilter;
|
|
77
77
|
const ffFunc = (f) => { };
|
|
78
78
|
ffFunc(schemaFFilter);
|
package/dist/typeTests.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typeTests.js","sourceRoot":"","sources":["../lib/typeTests.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"typeTests.js","sourceRoot":"","sources":["../lib/typeTests.ts"],"names":[],"mappings":"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"}
|
package/lib/filters.ts
CHANGED
|
@@ -281,18 +281,18 @@ export type TextFilter =
|
|
|
281
281
|
|
|
282
282
|
type Primitive = string | number | boolean | Date | null;
|
|
283
283
|
|
|
284
|
-
export type JSONBFilter<T extends Record<string, unknown
|
|
284
|
+
export type JSONBFilter<T extends Record<string, unknown> | readonly Record<string, unknown>[]> =
|
|
285
285
|
| {
|
|
286
286
|
/**
|
|
287
287
|
* Does the left JSON value contain the right JSON path/value entries at the top level?
|
|
288
288
|
*/
|
|
289
|
-
"@>": T
|
|
289
|
+
"@>": T extends readonly (infer U)[] ? Partial<U>[] : Partial<T>;
|
|
290
290
|
}
|
|
291
291
|
| {
|
|
292
292
|
/**
|
|
293
293
|
* Are the left JSON path/value entries contained at the top level within the right JSON value?
|
|
294
294
|
*/
|
|
295
|
-
"<@": T
|
|
295
|
+
"<@": T extends readonly (infer U)[] ? Partial<U>[] : Partial<T>;
|
|
296
296
|
}
|
|
297
297
|
| {
|
|
298
298
|
/**
|
|
@@ -310,6 +310,7 @@ export type FilterDataType<T extends AllowedTSType> =
|
|
|
310
310
|
: T extends boolean ? CompareFilter<CastFromTSToPG<T>>
|
|
311
311
|
: T extends Date ? CompareFilter<CastFromTSToPG<T>>
|
|
312
312
|
: T extends Primitive[] ? ArrayFilter<T>
|
|
313
|
+
: T extends Record<string, unknown> | Record<string, unknown>[] ? JSONBFilter<T>
|
|
313
314
|
: CompareFilter<T> | TextFilter | GeomFilter;
|
|
314
315
|
|
|
315
316
|
/**
|
|
@@ -321,18 +322,8 @@ export type NormalFilter<T> = {
|
|
|
321
322
|
[K in keyof Partial<T>]: CompareFilter<T[K]> | FilterDataType<T[K]>;
|
|
322
323
|
} & Partial<ComplexFilter>;
|
|
323
324
|
|
|
324
|
-
/**
|
|
325
|
-
* Filters with shorthand notation for autocomplete convenience
|
|
326
|
-
* Operator is inside the key: ` "{columnName}.{operator}": value`
|
|
327
|
-
* @example: { "name.$ilike": 'abc' }
|
|
328
|
-
*/
|
|
329
|
-
type ShorthandFilter<Obj extends Record<string, any>> = ValueOf<{
|
|
330
|
-
[K in KeyofString<Obj>]: Obj[K] extends string ? StringFilter<K, Required<Obj>[K]>
|
|
331
|
-
: BasicFilter<K, Required<Obj>[K]>;
|
|
332
|
-
}>;
|
|
333
|
-
|
|
334
325
|
/* Traverses object keys to make filter */
|
|
335
|
-
export type FilterForObject<T extends AnyObject = AnyObject> = NormalFilter<T
|
|
326
|
+
export type FilterForObject<T extends AnyObject = AnyObject> = NormalFilter<T>;
|
|
336
327
|
|
|
337
328
|
export type ExistsFilter<S = void> = Partial<{
|
|
338
329
|
[key in EXISTS_KEY]: S extends DBSchema ?
|
package/lib/typeTests.ts
CHANGED
|
@@ -122,7 +122,7 @@ async () => {
|
|
|
122
122
|
: Record<string, ViewHandler | TableHandler>;
|
|
123
123
|
|
|
124
124
|
type TypedFFilter = FullFilter<GSchema["tbl1"]["columns"], GSchema>;
|
|
125
|
-
const schemaFFilter: TypedFFilter = {
|
|
125
|
+
const schemaFFilter: TypedFFilter = { col1: "dd" };
|
|
126
126
|
const fullFilter: FullFilter<void, void> = schemaFFilter;
|
|
127
127
|
|
|
128
128
|
const ffFunc = (f: FullFilter<void, void>) => {};
|