@xh/hoist 75.0.0-SNAPSHOT.1753280710081 → 75.0.0-SNAPSHOT.1753294066799
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.
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
import { FilterLike } from './Types';
|
|
2
|
-
import { Filter } from './Filter';
|
|
3
1
|
import { Some } from '@xh/hoist/core';
|
|
2
|
+
import { Filter } from './Filter';
|
|
3
|
+
import { FilterLike } from './Types';
|
|
4
4
|
/**
|
|
5
5
|
* Parse a filter from an object or array representation.
|
|
6
6
|
*
|
|
7
7
|
* @param spec - one or more filters or specs to create one.
|
|
8
8
|
* * An existing Filter instance will be returned directly as-is.
|
|
9
|
-
* *
|
|
10
|
-
* or the equivalent of a filter that always passes every record.
|
|
9
|
+
* * Null/undefined or empty array will return `null`, representing no filter.
|
|
11
10
|
* * A raw Function will be converted to a `FunctionFilter` with key 'default'.
|
|
12
|
-
* *
|
|
11
|
+
* * Non-empty arrays will return a `CompoundFilter` with a default 'AND' operator.
|
|
13
12
|
* * Config objects will be returned as an appropriate concrete `Filter` subclass based on
|
|
14
13
|
* their properties.
|
|
15
14
|
*
|
package/data/filter/Utils.ts
CHANGED
|
@@ -5,24 +5,21 @@
|
|
|
5
5
|
* Copyright © 2025 Extremely Heavy Industries Inc.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
+
import {Some} from '@xh/hoist/core';
|
|
9
|
+
import {CompoundFilter, FunctionFilter} from '@xh/hoist/data';
|
|
8
10
|
import {castArray, flatMap, groupBy, isArray, isFunction} from 'lodash';
|
|
9
|
-
|
|
10
|
-
import {FieldFilterSpec, FilterLike} from './Types';
|
|
11
|
-
import {Filter} from './Filter';
|
|
12
11
|
import {FieldFilter} from './FieldFilter';
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {Some} from '@xh/hoist/core';
|
|
12
|
+
import {Filter} from './Filter';
|
|
13
|
+
import {FieldFilterSpec, FilterLike} from './Types';
|
|
16
14
|
|
|
17
15
|
/**
|
|
18
16
|
* Parse a filter from an object or array representation.
|
|
19
17
|
*
|
|
20
18
|
* @param spec - one or more filters or specs to create one.
|
|
21
19
|
* * An existing Filter instance will be returned directly as-is.
|
|
22
|
-
* *
|
|
23
|
-
* or the equivalent of a filter that always passes every record.
|
|
20
|
+
* * Null/undefined or empty array will return `null`, representing no filter.
|
|
24
21
|
* * A raw Function will be converted to a `FunctionFilter` with key 'default'.
|
|
25
|
-
* *
|
|
22
|
+
* * Non-empty arrays will return a `CompoundFilter` with a default 'AND' operator.
|
|
26
23
|
* * Config objects will be returned as an appropriate concrete `Filter` subclass based on
|
|
27
24
|
* their properties.
|
|
28
25
|
*
|
|
@@ -32,7 +29,8 @@ export function parseFilter(spec: FilterLike): Filter {
|
|
|
32
29
|
let s = spec as any;
|
|
33
30
|
|
|
34
31
|
// Degenerate cases
|
|
35
|
-
if (
|
|
32
|
+
if (s instanceof Filter) return s as Filter;
|
|
33
|
+
if (!s || (isArray(s) && s.length === 0)) return null;
|
|
36
34
|
|
|
37
35
|
// Normalize special forms
|
|
38
36
|
if (isFunction(s)) s = {key: 'default', testFn: s};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xh/hoist",
|
|
3
|
-
"version": "75.0.0-SNAPSHOT.
|
|
3
|
+
"version": "75.0.0-SNAPSHOT.1753294066799",
|
|
4
4
|
"description": "Hoist add-on for building and deploying React Applications.",
|
|
5
5
|
"repository": "github:xh/hoist-react",
|
|
6
6
|
"homepage": "https://xh.io",
|