quetch 0.19.0 → 0.19.1
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/constants/CACHE.d.ts +1 -0
- package/dist/constants/CACHE.js +2 -0
- package/dist/constants/CACHE.js.map +1 -0
- package/dist/constants/SELF.d.ts +1 -0
- package/dist/constants/SELF.js +2 -0
- package/dist/constants/SELF.js.map +1 -0
- package/dist/constants.d.ts +2 -2
- package/dist/constants.js +2 -2
- package/dist/constants.js.map +1 -1
- package/dist/tools/get.js +2 -1
- package/dist/tools/get.js.map +1 -1
- package/dist/tools/testFilter.js +8 -8
- package/dist/tools/testFilter.js.map +1 -1
- package/dist/types/FilterChildren.d.ts +2 -2
- package/dist/types/FilterStringMatch.d.ts +2 -2
- package/dist/types/KeyFiltered.d.ts +3 -3
- package/dist/types/Path.d.ts +1 -1
- package/lib/constants/CACHE.ts +1 -0
- package/lib/constants/SELF.ts +1 -0
- package/lib/constants.ts +2 -2
- package/lib/tools/get.ts +2 -1
- package/lib/tools/testFilter.test.ts +2 -2
- package/lib/tools/testFilter.ts +8 -8
- package/lib/types/FilterChildren.ts +2 -2
- package/lib/types/FilterStringMatch.ts +2 -2
- package/lib/types/KeyFiltered.ts +4 -4
- package/lib/types/Path.ts +1 -1
- package/package.json +1 -1
- package/dist/constants/SymbolCache.d.ts +0 -1
- package/dist/constants/SymbolCache.js +0 -2
- package/dist/constants/SymbolCache.js.map +0 -1
- package/dist/constants/SymbolSelf.d.ts +0 -1
- package/dist/constants/SymbolSelf.js +0 -2
- package/dist/constants/SymbolSelf.js.map +0 -1
- package/lib/constants/SymbolCache.ts +0 -1
- package/lib/constants/SymbolSelf.ts +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const CACHE: unique symbol;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CACHE.js","sourceRoot":"","sources":["../../lib/constants/CACHE.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const SELF: unique symbol;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SELF.js","sourceRoot":"","sources":["../../lib/constants/SELF.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC"}
|
package/dist/constants.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
1
|
+
export { CACHE } from "./constants/CACHE.js";
|
|
2
|
+
export { SELF } from "./constants/SELF.js";
|
package/dist/constants.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
// File automatically generated by `vite-plugin-module-list`
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
2
|
+
export { CACHE } from "./constants/CACHE.js";
|
|
3
|
+
export { SELF } from "./constants/SELF.js";
|
|
4
4
|
//# sourceMappingURL=constants.js.map
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../lib/constants.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../lib/constants.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/tools/get.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { SELF } from "../constants/SELF.js";
|
|
1
2
|
/**
|
|
2
3
|
* Gets the property value of the given `value` at the specified `path` (an array of object property names or array indexes).
|
|
3
4
|
* If the `path` is undefined, returns the `value` itself.
|
|
@@ -9,7 +10,7 @@
|
|
|
9
10
|
* @returns The property value found at the given path, or `undefined` if it cannot be found.
|
|
10
11
|
*/
|
|
11
12
|
export function get(value, path) {
|
|
12
|
-
if (path === undefined) {
|
|
13
|
+
if (path === undefined || path === SELF) {
|
|
13
14
|
return value;
|
|
14
15
|
}
|
|
15
16
|
switch (typeof path) {
|
package/dist/tools/get.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../lib/tools/get.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../lib/tools/get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAG5C;;;;;;;;;GASG;AACH,MAAM,UAAU,GAAG,CACjB,KAAQ,EACR,IAAQ;IAER,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QACxC,OAAO,KAAY,CAAC;IACtB,CAAC;IACD,QAAQ,OAAO,IAAI,EAAE,CAAC;QACpB,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ;YACX,OAAQ,KAAa,EAAE,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,CAAC,CAAC,CAAC;YACR,QAAQ,IAAI,CAAC,MAAgB,EAAE,CAAC;gBAC9B,KAAK,CAAC;oBACJ,OAAO,KAAY,CAAC;gBACtB,KAAK,CAAC;oBACJ,OAAQ,KAAa,EAAE,CAAC,IAAI,CAAC,CAAC,CAAQ,CAAC,CAAC;gBAC1C,KAAK,CAAC;oBACJ,OAAQ,KAAa,EAAE,CAAC,IAAI,CAAC,CAAC,CAAQ,CAAC,EAAE,CAAE,IAAY,CAAC,CAAC,CAAQ,CAAC,CAAC;gBACrE,KAAK,CAAC;oBACJ,OAAQ,KAAa,EAAE,CAAC,IAAI,CAAC,CAAC,CAAQ,CAAC,EAAE,CAAE,IAAY,CAAC,CAAC,CAAQ,CAAC,EAAE,CACjE,IAAY,CAAC,CAAC,CAAQ,CACxB,CAAC;gBACJ,KAAK,CAAC;oBACJ,OAAQ,KAAa,EAAE,CAAC,IAAI,CAAC,CAAC,CAAQ,CAAC,EAAE,CAAE,IAAY,CAAC,CAAC,CAAQ,CAAC,EAAE,CACjE,IAAY,CAAC,CAAC,CAAQ,CACxB,EAAE,CAAE,IAAY,CAAC,CAAC,CAAQ,CAAC,CAAC;gBAC/B;oBACE,OAAO,IAAI,CAAC,MAAM,CAChB,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAE,KAAa,EAAE,CAAC,GAAG,CAAC,EACrC,KAAK,CACC,CAAC;YACb,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
|
package/dist/tools/testFilter.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CACHE } from "../constants/CACHE.js";
|
|
2
2
|
import { filterChildren } from "./filterChildren.js";
|
|
3
3
|
import { get } from "./get.js";
|
|
4
4
|
const { isArray } = Array;
|
|
@@ -78,18 +78,18 @@ export function testFilter(filter, value, settings) {
|
|
|
78
78
|
return true;
|
|
79
79
|
}
|
|
80
80
|
case "children": {
|
|
81
|
-
if (filter[
|
|
81
|
+
if (filter[CACHE] === undefined) {
|
|
82
82
|
switch (true) {
|
|
83
83
|
case settings?.transformFilterChildren !== undefined:
|
|
84
|
-
filter[
|
|
84
|
+
filter[CACHE] = settings.transformFilterChildren(filter);
|
|
85
85
|
break;
|
|
86
86
|
default: {
|
|
87
87
|
const { pathFieldKey = "id", pathFieldSeparator = "/", } = settings || {};
|
|
88
|
-
filter[
|
|
88
|
+
filter[CACHE] = filterChildren(filter.value, pathFieldKey, filter.deep, pathFieldSeparator);
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
|
-
return testFilter(filter[
|
|
92
|
+
return testFilter(filter[CACHE], value);
|
|
93
93
|
}
|
|
94
94
|
case "custom": {
|
|
95
95
|
return filter.value(value);
|
|
@@ -187,10 +187,10 @@ export function testFilter(filter, value, settings) {
|
|
|
187
187
|
if (leftValue === undefined) {
|
|
188
188
|
return false;
|
|
189
189
|
}
|
|
190
|
-
if (filter[
|
|
191
|
-
filter[
|
|
190
|
+
if (filter[CACHE] === undefined) {
|
|
191
|
+
filter[CACHE] = new RegExp(rightValue, `${filter.options?.ignoreCase ? "i" : ""}${filter.options?.dotAll ? "s" : ""}`);
|
|
192
192
|
}
|
|
193
|
-
return filter[
|
|
193
|
+
return filter[CACHE].test(leftValue);
|
|
194
194
|
}
|
|
195
195
|
case "intersect": {
|
|
196
196
|
const rightValue = valueFromFilter(value, filter);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testFilter.js","sourceRoot":"","sources":["../../lib/tools/testFilter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"testFilter.js","sourceRoot":"","sources":["../../lib/tools/testFilter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAI9C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;AAE1B,SAAS,eAAe,CAAI,KAAQ,EAAE,MAAiB;IACrD,IAAI,YAAY,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,CAAC,UAAU,CAAC;QAClB,OAAO,GAAG,CAAS,KAAK,EAAE,MAAM,CAAC,UAAU,CAAQ,CAAC;IACtD,CAAC;IACD,OAAQ,MAAc,CAAC,KAAK,CAAC;AAC/B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CACxB,MAA6B,EAC7B,KAAoB,EACpB,QAA2B;IAE3B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,KAAK,KAAK;YACR,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QACnE,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5D,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QAClE,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5D,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QACpE,CAAC;QACD,KAAK,OAAO;YACV,OAAO,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,KAAY,CAAC,KAAK,SAAS,CAAC;QACvD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,EAAE,MAAqB,CAAC,CAAC;YACjE,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;gBACxB,MAAM,CAAC,KAAK,CAAC;gBACb,MAAM,SAAS,GAAG,GAAG,CAAS,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBACnD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;oBACxB,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC;oBAC3C,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YAChE,CAAC;YACD,MAAM,SAAS,GAAG,GAAG,CAAS,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YACnD,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;gBAC7B,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IACG,MAA0B,CAAC,OAAO;gBAClC,MAA0B,CAAC,MAAM,EAClC,CAAC;gBACD,OAAO,CACL,SAAS,KAAK,SAAS;oBACtB,UAAqB,CAAC,aAAa,CAClC,SAAgB,EACf,MAA0B,CAAC,MAAM,EACjC,MAA0B,CAAC,OAAO,CACpC,KAAK,CAAC,CACR,CAAC;YACJ,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAClD,MAAM,SAAS,GAAG,GAAG,CAAS,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YACnD,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;gBAC7B,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IACG,MAA0B,CAAC,OAAO;gBAClC,MAA0B,CAAC,MAAM,EAClC,CAAC;gBACD,OAAO,CACJ,UAAqB,CAAC,aAAa,CAClC,GAAG,CAAS,KAAK,EAAE,MAAM,CAAC,KAAK,CAAW,EACzC,MAA0B,CAAC,MAAM,EACjC,MAA0B,CAAC,OAAO,CACpC,KAAK,CAAC,CACR,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;gBAChC,QAAQ,IAAI,EAAE,CAAC;oBACb,KAAK,QAAQ,EAAE,uBAAuB,KAAK,SAAS;wBAClD,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;wBACzD,MAAM;oBACR,OAAO,CAAC,CAAC,CAAC;wBACR,MAAM,EACJ,YAAY,GAAG,IAAgC,EAC/C,kBAAkB,GAAG,GAAG,GACzB,GAAG,QAAQ,IAAI,EAAE,CAAC;wBACnB,MAAM,CAAC,KAAK,CAAC,GAAG,cAAc,CAC5B,MAAM,CAAC,KAAe,EACtB,YAAY,EACZ,MAAM,CAAC,IAAI,EACX,kBAAkB,CACnB,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YACD,OAAO,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;QAC1C,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QACD,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAClD,MAAM,SAAS,GAAG,GAAG,CAAS,KAAK,EAAE,MAAM,CAAC,KAAK,CAAuB,CAAC;YACzE,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;gBACpE,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAChE,OAAO,CACL,UAAU,CAAC,aAAa,CACtB,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,EACrC,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,OAAO,CACf,KAAK,CAAC,CACR,CAAC;YACJ,CAAC;YACD,OAAO,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC;QACnD,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAClD,MAAM,SAAS,GAAG,GAAG,CAAS,KAAK,EAAE,MAAM,CAAC,KAAK,CAAuB,CAAC;YACzE,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;gBACpE,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAChE,OAAO,CACL,UAAU,CAAC,aAAa,CACtB,SAAS,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,EACnC,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,OAAO,CACf,KAAK,CAAC,CACR,CAAC;YACJ,CAAC;YACD,OAAO,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC;QACjD,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAClD,MAAM,SAAS,GAAG,GAAG,CAAS,KAAK,EAAE,MAAM,CAAC,KAAK,CAAmB,CAAC;YACrE,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;gBACtB,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;gBACxB,2BAA2B;gBAC3B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;oBAChE,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YAChE,CAAC;YACD,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;gBAC/D,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IACG,MAA0B,CAAC,OAAO;gBAClC,MAA0B,CAAC,MAAM,EAClC,CAAC;gBACD,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;gBAC9B,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC;gBAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC7B,IACE,UAAU,CAAC,aAAa,CACtB,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAC7B,MAA0B,CAAC,MAAM,EACjC,MAA0B,CAAC,OAAO,CACpC,KAAK,CAAC,EACP,CAAC;wBACD,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO,SAAS,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC;QACnD,CAAC;QACD,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAClD,MAAM,SAAS,GAAG,GAAG,CAAS,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YACnD,IACG,MAA0B,CAAC,OAAO;gBAClC,MAA0B,CAAC,MAAM,EAClC,CAAC;gBACD,OAAO,CACJ,UAAqB,CAAC,aAAa,CAClC,SAAmB,EAClB,MAA0B,CAAC,MAAM,EACjC,MAA0B,CAAC,OAAO,CACpC,GAAG,CAAC,CACN,CAAC;YACJ,CAAC;YACD,OAAO,SAAS,GAAG,UAAU,CAAC;QAChC,CAAC;QACD,KAAK,oBAAoB,CAAC,CAAC,CAAC;YAC1B,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAClD,MAAM,SAAS,GAAG,GAAG,CAAS,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YACnD,IACG,MAA0B,CAAC,OAAO;gBAClC,MAA0B,CAAC,MAAM,EAClC,CAAC;gBACD,OAAO,CACJ,UAAqB,CAAC,aAAa,CAClC,SAAmB,EAClB,MAA0B,CAAC,MAAM,EACjC,MAA0B,CAAC,OAAO,CACpC,IAAI,CAAC,CACP,CAAC;YACJ,CAAC;YACD,OAAO,SAAS,IAAI,UAAU,CAAC;QACjC,CAAC;QACD,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAClD,MAAM,SAAS,GAAG,GAAG,CAAS,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YACnD,IACG,MAA0B,CAAC,OAAO;gBAClC,MAA0B,CAAC,MAAM,EAClC,CAAC;gBACD,OAAO,CACJ,UAAqB,CAAC,aAAa,CAClC,SAAmB,EAClB,MAA0B,CAAC,MAAM,EACjC,MAA0B,CAAC,OAAO,CACpC,GAAG,CAAC,CACN,CAAC;YACJ,CAAC;YACD,OAAO,SAAS,GAAG,UAAU,CAAC;QAChC,CAAC;QACD,KAAK,kBAAkB,CAAC,CAAC,CAAC;YACxB,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAClD,MAAM,SAAS,GAAG,GAAG,CAAS,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YACnD,IACG,MAA0B,CAAC,OAAO;gBAClC,MAA0B,CAAC,MAAM,EAClC,CAAC;gBACD,OAAO,CACJ,UAAqB,CAAC,aAAa,CAClC,SAAmB,EAClB,MAA0B,CAAC,MAAM,EACjC,MAA0B,CAAC,OAAO,CACpC,IAAI,CAAC,CACP,CAAC;YACJ,CAAC;YACD,OAAO,SAAS,IAAI,UAAU,CAAC;QACjC,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAClD,MAAM,SAAS,GAAG,GAAG,CAAS,KAAK,EAAE,MAAM,CAAC,KAAK,CAAuB,CAAC;YACzE,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;gBAChC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,MAAM,CACxB,UAAU,EACV,GAAG,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GACtC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EACjC,EAAE,CACH,CAAC;YACJ,CAAC;YACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvC,CAAC;QACD,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAClD,MAAM,SAAS,GAAG,GAAG,CAAS,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YACnD,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;gBACtB,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;gBACvB,OAAO,CACL,OAAO,CAAC,UAAU,CAAC;oBACnB,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CACtD,CAAC;YACJ,CAAC;YACD,IACG,MAA0B,CAAC,OAAO;gBAClC,MAA0B,CAAC,MAAM,EAClC,CAAC;gBACD,OAAO,CACL,SAAS,KAAK,SAAS;oBACtB,UAAuB,CAAC,IAAI,CAC3B,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,aAAa,CACjB,SAAmB,EAClB,MAA0B,CAAC,MAAM,EACjC,MAA0B,CAAC,OAAO,CACpC,KAAK,CAAC,CACV,CACF,CAAC;YACJ,CAAC;YACD,OAAO,UAAU,CAAC,QAAQ,CAAC,SAAmB,CAAC,CAAC;QAClD,CAAC;QACD;YACE,MAAM,IAAI,KAAK,CAAC,4BAA6B,MAAc,CAAC,QAAQ,GAAG,CAAC,CAAC;IAC7E,CAAC;AACH,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CACHE } from "../constants/CACHE.js";
|
|
2
2
|
import type { Context } from "./Context";
|
|
3
3
|
import type { Filter } from "./Filter";
|
|
4
4
|
/**
|
|
@@ -9,5 +9,5 @@ export type FilterChildren<T> = {
|
|
|
9
9
|
operator: "children";
|
|
10
10
|
value?: Context<T> | string;
|
|
11
11
|
deep?: boolean;
|
|
12
|
-
[
|
|
12
|
+
[CACHE]?: Filter<T>;
|
|
13
13
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CACHE } from "../constants/CACHE.js";
|
|
2
2
|
import type { FieldFiltered } from "./FieldFiltered";
|
|
3
3
|
import type { Value } from "./Value";
|
|
4
4
|
/**
|
|
@@ -23,5 +23,5 @@ export type FilterStringMatch<T> = {
|
|
|
23
23
|
/**
|
|
24
24
|
* Compiled regular expression generated by the `testFilter` function.
|
|
25
25
|
*/
|
|
26
|
-
[
|
|
26
|
+
[CACHE]?: RegExp;
|
|
27
27
|
} & Value<T, string>;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { SELF } from "../constants/SELF";
|
|
2
2
|
import type { Key } from "./Key";
|
|
3
3
|
import type { Primitive } from "./Primitive";
|
|
4
|
-
type
|
|
4
|
+
type SymbolSelf = typeof SELF;
|
|
5
5
|
/**
|
|
6
6
|
* Returns union of keys whose mapped value extend the provided `P` type.
|
|
7
7
|
*/
|
|
8
|
-
export type KeyFiltered<T, P> = [0] extends [1 & T] ? Key |
|
|
8
|
+
export type KeyFiltered<T, P> = [0] extends [1 & T] ? Key | SymbolSelf : T extends object ? T extends Primitive ? [MapPrimitive<T>] extends [P] ? SymbolSelf : never : keyof {
|
|
9
9
|
[K in keyof T as Extract<T[K], P> extends never ? never : K]-?: T[K];
|
|
10
10
|
} : never;
|
|
11
11
|
type MapPrimitive<P> = P extends String ? string : P extends Number ? number : P extends Boolean ? boolean : P extends BigInt ? bigint : never;
|
package/dist/types/Path.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Increment } from "./Increment";
|
|
2
2
|
import type { Key } from "./Key";
|
|
3
3
|
import type { Primitive } from "./Primitive";
|
|
4
|
-
export type Path<T, D =
|
|
4
|
+
export type Path<T, D = 7> = [0] extends [1 & T] ? readonly (Key | never)[] : D extends -1 ? never : T extends Array<infer P> ? readonly [number] | readonly [number, ...Path<P, Increment<D>>] : T extends object ? T extends Primitive ? readonly never[] : {
|
|
5
5
|
[K in keyof T]: [K] | [K, ...Path<T[K], Increment<D>>];
|
|
6
6
|
}[keyof T] : never;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const CACHE = Symbol("cache");
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const SELF = Symbol("self");
|
package/lib/constants.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// File automatically generated by `vite-plugin-module-list`
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
2
|
+
export { CACHE } from "./constants/CACHE.js";
|
|
3
|
+
export { SELF } from "./constants/SELF.js";
|
package/lib/tools/get.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { SELF } from "../constants/SELF.js";
|
|
1
2
|
import type { Get, Path } from "../types";
|
|
2
3
|
|
|
3
4
|
/**
|
|
@@ -14,7 +15,7 @@ export function get<const T, const P extends Path<T> | keyof T>(
|
|
|
14
15
|
value: T,
|
|
15
16
|
path?: P,
|
|
16
17
|
): Get<T, P> {
|
|
17
|
-
if (path === undefined) {
|
|
18
|
+
if (path === undefined || path === SELF) {
|
|
18
19
|
return value as any;
|
|
19
20
|
}
|
|
20
21
|
switch (typeof path) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { expect, test } from "vitest";
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { CACHE } from "../constants/CACHE.js";
|
|
4
4
|
import type { FilterChildren } from "../types.js";
|
|
5
5
|
|
|
6
6
|
import { filterFromContext } from "./filterFromContext.js";
|
|
@@ -309,7 +309,7 @@ test("tests filter with children predicates", () => {
|
|
|
309
309
|
},
|
|
310
310
|
),
|
|
311
311
|
).toBe(true);
|
|
312
|
-
expect(filterChildren[
|
|
312
|
+
expect(filterChildren[CACHE]).toBeDefined();
|
|
313
313
|
expect(testFilter({ operator: "children", value: "b" }, { id: "a/b" })).toBe(
|
|
314
314
|
false,
|
|
315
315
|
);
|
package/lib/tools/testFilter.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CACHE } from "../constants/CACHE.js";
|
|
2
2
|
import type { QuerySettings } from "../types/QuerySettings.js";
|
|
3
3
|
import type { FieldFiltered, Filter, FilterString } from "../types.js";
|
|
4
4
|
|
|
@@ -104,17 +104,17 @@ export function testFilter<T>(
|
|
|
104
104
|
return true;
|
|
105
105
|
}
|
|
106
106
|
case "children": {
|
|
107
|
-
if (filter[
|
|
107
|
+
if (filter[CACHE] === undefined) {
|
|
108
108
|
switch (true) {
|
|
109
109
|
case settings?.transformFilterChildren !== undefined:
|
|
110
|
-
filter[
|
|
110
|
+
filter[CACHE] = settings.transformFilterChildren(filter);
|
|
111
111
|
break;
|
|
112
112
|
default: {
|
|
113
113
|
const {
|
|
114
114
|
pathFieldKey = "id" as FieldFiltered<T, string>,
|
|
115
115
|
pathFieldSeparator = "/",
|
|
116
116
|
} = settings || {};
|
|
117
|
-
filter[
|
|
117
|
+
filter[CACHE] = filterChildren(
|
|
118
118
|
filter.value as string,
|
|
119
119
|
pathFieldKey,
|
|
120
120
|
filter.deep,
|
|
@@ -123,7 +123,7 @@ export function testFilter<T>(
|
|
|
123
123
|
}
|
|
124
124
|
}
|
|
125
125
|
}
|
|
126
|
-
return testFilter(filter[
|
|
126
|
+
return testFilter(filter[CACHE], value);
|
|
127
127
|
}
|
|
128
128
|
case "custom": {
|
|
129
129
|
return filter.value(value);
|
|
@@ -273,15 +273,15 @@ export function testFilter<T>(
|
|
|
273
273
|
if (leftValue === undefined) {
|
|
274
274
|
return false;
|
|
275
275
|
}
|
|
276
|
-
if (filter[
|
|
277
|
-
filter[
|
|
276
|
+
if (filter[CACHE] === undefined) {
|
|
277
|
+
filter[CACHE] = new RegExp(
|
|
278
278
|
rightValue,
|
|
279
279
|
`${filter.options?.ignoreCase ? "i" : ""}${
|
|
280
280
|
filter.options?.dotAll ? "s" : ""
|
|
281
281
|
}`,
|
|
282
282
|
);
|
|
283
283
|
}
|
|
284
|
-
return filter[
|
|
284
|
+
return filter[CACHE].test(leftValue);
|
|
285
285
|
}
|
|
286
286
|
case "intersect": {
|
|
287
287
|
const rightValue = valueFromFilter(value, filter);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CACHE } from "../constants/CACHE.js";
|
|
2
2
|
|
|
3
3
|
import type { Context } from "./Context";
|
|
4
4
|
import type { Filter } from "./Filter";
|
|
@@ -11,5 +11,5 @@ export type FilterChildren<T> = {
|
|
|
11
11
|
operator: "children";
|
|
12
12
|
value?: Context<T> | string;
|
|
13
13
|
deep?: boolean;
|
|
14
|
-
[
|
|
14
|
+
[CACHE]?: Filter<T>;
|
|
15
15
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CACHE } from "../constants/CACHE.js";
|
|
2
2
|
|
|
3
3
|
import type { FieldFiltered } from "./FieldFiltered";
|
|
4
4
|
import type { Value } from "./Value";
|
|
@@ -25,5 +25,5 @@ export type FilterStringMatch<T> = {
|
|
|
25
25
|
/**
|
|
26
26
|
* Compiled regular expression generated by the `testFilter` function.
|
|
27
27
|
*/
|
|
28
|
-
[
|
|
28
|
+
[CACHE]?: RegExp;
|
|
29
29
|
} & Value<T, string>;
|
package/lib/types/KeyFiltered.ts
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { SELF } from "../constants/SELF";
|
|
2
2
|
|
|
3
3
|
import type { Key } from "./Key";
|
|
4
4
|
import type { Primitive } from "./Primitive";
|
|
5
5
|
|
|
6
|
-
type
|
|
6
|
+
type SymbolSelf = typeof SELF;
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Returns union of keys whose mapped value extend the provided `P` type.
|
|
10
10
|
*/
|
|
11
11
|
export type KeyFiltered<T, P> = [0] extends [1 & T]
|
|
12
|
-
? Key |
|
|
12
|
+
? Key | SymbolSelf
|
|
13
13
|
: T extends object
|
|
14
14
|
? T extends Primitive
|
|
15
15
|
? [MapPrimitive<T>] extends [P]
|
|
16
|
-
?
|
|
16
|
+
? SymbolSelf
|
|
17
17
|
: never
|
|
18
18
|
: keyof {
|
|
19
19
|
[K in keyof T as Extract<T[K], P> extends never ? never : K]-?: T[K];
|
package/lib/types/Path.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { Increment } from "./Increment";
|
|
|
2
2
|
import type { Key } from "./Key";
|
|
3
3
|
import type { Primitive } from "./Primitive";
|
|
4
4
|
|
|
5
|
-
export type Path<T, D =
|
|
5
|
+
export type Path<T, D = 7> = [0] extends [1 & T]
|
|
6
6
|
? readonly (Key | never)[]
|
|
7
7
|
: D extends -1
|
|
8
8
|
? never
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const SymbolCache: unique symbol;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SymbolCache.js","sourceRoot":"","sources":["../../lib/constants/SymbolCache.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const SymbolSelf: unique symbol;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SymbolSelf.js","sourceRoot":"","sources":["../../lib/constants/SymbolSelf.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const SymbolCache = Symbol("cache");
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const SymbolSelf = Symbol("self");
|