@dereekb/util 8.2.0 → 8.5.0

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/CHANGELOG.md CHANGED
@@ -2,6 +2,23 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ # [8.5.0](https://github.com/dereekb/dbx-components/compare/v8.4.0-dev...v8.5.0) (2022-06-22)
6
+
7
+
8
+ ### Features
9
+
10
+ * added searchStringFilterFunction() ([f91aaaf](https://github.com/dereekb/dbx-components/commit/f91aaafb7fc4c304fbbd7fc2a3d471c4573ebdf3))
11
+
12
+
13
+
14
+ # [8.4.0](https://github.com/dereekb/dbx-components/compare/v8.3.0-dev...v8.4.0) (2022-06-21)
15
+
16
+
17
+
18
+ # [8.3.0](https://github.com/dereekb/dbx-components/compare/v8.2.0-dev...v8.3.0) (2022-06-20)
19
+
20
+
21
+
5
22
  # [8.2.0](https://github.com/dereekb/dbx-components/compare/v8.1.2-dev...v8.2.0) (2022-06-20)
6
23
 
7
24
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dereekb/util",
3
- "version": "8.2.0",
3
+ "version": "8.5.0",
4
4
  "type": "commonjs",
5
5
  "exports": {
6
6
  ".": {
@@ -1,5 +1,5 @@
1
- import { ReadKeyFunction } from '../key';
2
- import { MapFunction } from '../value';
1
+ import { ReadKeyFunction, ReadKeysFunction } from '../key';
2
+ import { DecisionFunctionFactory, MapFunction } from '../value';
3
3
  export declare function hasDifferentStringsNoCase(a: string[], b: string[]): boolean;
4
4
  export declare function arrayToUppercase(input: string[]): string[];
5
5
  export declare function arrayToLowercase(input: string[]): string[];
@@ -38,3 +38,13 @@ export interface FindUniqueStringsTransformConfig extends TransformStringsConfig
38
38
  }
39
39
  export declare type FindUniqueTransform = TransformStringsFunction;
40
40
  export declare function findUniqueTransform(config: FindUniqueStringsTransformConfig): FindUniqueTransform;
41
+ /**
42
+ * Filters values by the input filter text.
43
+ */
44
+ export declare type SearchStringFilterFunction<T> = (filterText: string, values: T[]) => T[];
45
+ export interface SearchStringFilterConfig<T> {
46
+ readStrings: ReadKeysFunction<T, string>;
47
+ decisionFactory: DecisionFunctionFactory<string, string>;
48
+ }
49
+ export declare function searchStringFilterFunction<T>(config: SearchStringFilterConfig<T>): SearchStringFilterFunction<T>;
50
+ export declare const caseInsensitiveFilterByIndexOfDecisionFactory: DecisionFunctionFactory<string, string>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.findUniqueTransform = exports.containsAllStringsAnyCase = exports.containsAnyStringAnyCase = exports.containsStringAnyCase = exports.findUniqueCaseInsensitiveStrings = exports.flattenArrayUniqueCaseInsensitiveStrings = exports.uniqueCaseInsensitiveStringsSet = exports.uniqueCaseInsensitiveStrings = exports.toCaseInsensitiveStringArray = exports.transformStrings = exports.arrayToLowercase = exports.arrayToUppercase = exports.hasDifferentStringsNoCase = void 0;
3
+ exports.caseInsensitiveFilterByIndexOfDecisionFactory = exports.searchStringFilterFunction = exports.findUniqueTransform = exports.containsAllStringsAnyCase = exports.containsAnyStringAnyCase = exports.containsStringAnyCase = exports.findUniqueCaseInsensitiveStrings = exports.flattenArrayUniqueCaseInsensitiveStrings = exports.uniqueCaseInsensitiveStringsSet = exports.uniqueCaseInsensitiveStrings = exports.toCaseInsensitiveStringArray = exports.transformStrings = exports.arrayToLowercase = exports.arrayToUppercase = exports.hasDifferentStringsNoCase = void 0;
4
4
  const array_1 = require("./array");
5
5
  const array_unique_1 = require("./array.unique");
6
6
  const string_1 = require("../string");
@@ -70,4 +70,21 @@ function findUniqueTransform(config) {
70
70
  }
71
71
  }
72
72
  exports.findUniqueTransform = findUniqueTransform;
73
+ function searchStringFilterFunction(config) {
74
+ const { readStrings, decisionFactory } = config;
75
+ return (filterText, values) => {
76
+ const decision = decisionFactory(filterText);
77
+ return values.filter((value) => {
78
+ const strings = readStrings(value);
79
+ const keep = strings.findIndex(decision) !== -1;
80
+ return keep;
81
+ });
82
+ };
83
+ }
84
+ exports.searchStringFilterFunction = searchStringFilterFunction;
85
+ const caseInsensitiveFilterByIndexOfDecisionFactory = (filterText) => {
86
+ const searchString = filterText.toLocaleLowerCase();
87
+ return (string) => string.toLocaleLowerCase().indexOf(searchString) !== -1;
88
+ };
89
+ exports.caseInsensitiveFilterByIndexOfDecisionFactory = caseInsensitiveFilterByIndexOfDecisionFactory;
73
90
  //# sourceMappingURL=array.string.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"array.string.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/array/array.string.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"array.string.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/array/array.string.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { FactoryWithRequiredInput } from '../getter/getter';
2
+ import { MapFunction, AsyncMapFunction } from './map';
3
+ /**
4
+ * A map function that derives a boolean from the input.
5
+ */
6
+ export declare type DecisionFunction<I> = MapFunction<I, boolean>;
7
+ export declare type AsyncDecisionFunction<I> = AsyncMapFunction<DecisionFunction<I>>;
8
+ export declare type DecisionFunctionFactory<C, I> = FactoryWithRequiredInput<DecisionFunction<I>, C>;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=decision.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decision.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/value/decision.ts"],"names":[],"mappings":""}
@@ -1,4 +1,5 @@
1
1
  export * from './build';
2
+ export * from './decision';
2
3
  export * from './equal';
3
4
  export * from './map';
4
5
  export * from './maybe.type';
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  tslib_1.__exportStar(require("./build"), exports);
5
+ tslib_1.__exportStar(require("./decision"), exports);
5
6
  tslib_1.__exportStar(require("./equal"), exports);
6
7
  tslib_1.__exportStar(require("./map"), exports);
7
8
  tslib_1.__exportStar(require("./maybe.type"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/value/index.ts"],"names":[],"mappings":";;;AAAA,kDAAwB;AACxB,kDAAwB;AACxB,gDAAsB;AACtB,uDAA6B;AAC7B,kDAAwB;AACxB,qDAA2B;AAC3B,gDAAsB;AACtB,gDAAsB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/value/index.ts"],"names":[],"mappings":";;;AAAA,kDAAwB;AACxB,qDAA2B;AAC3B,kDAAwB;AACxB,gDAAsB;AACtB,uDAA6B;AAC7B,kDAAwB;AACxB,qDAA2B;AAC3B,gDAAsB;AACtB,gDAAsB"}
@@ -47,8 +47,3 @@ export declare type MapFunctionOutput<O extends object, I = unknown> = O & {
47
47
  */
48
48
  export declare function wrapMapFunctionOutput<O extends object, I = unknown>(fn: MapFunction<I, O>): MapFunction<I, MapFunctionOutput<O, I>>;
49
49
  export declare function mapFunctionOutput<O extends object, I = unknown>(output: O, input: I): MapFunctionOutput<O, I>;
50
- /**
51
- * A map function that derives a boolean from the input.
52
- */
53
- export declare type DecisionFunction<I> = MapFunction<I, boolean>;
54
- export declare type AsyncDecisionFunction<I> = AsyncMapFunction<DecisionFunction<I>>;
package/test/CHANGELOG.md CHANGED
@@ -2,6 +2,18 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ # [8.5.0](https://github.com/dereekb/dbx-components/compare/v8.4.0-dev...v8.5.0) (2022-06-22)
6
+
7
+
8
+
9
+ # [8.4.0](https://github.com/dereekb/dbx-components/compare/v8.3.0-dev...v8.4.0) (2022-06-21)
10
+
11
+
12
+
13
+ # [8.3.0](https://github.com/dereekb/dbx-components/compare/v8.2.0-dev...v8.3.0) (2022-06-20)
14
+
15
+
16
+
5
17
  # [8.2.0](https://github.com/dereekb/dbx-components/compare/v8.1.2-dev...v8.2.0) (2022-06-20)
6
18
 
7
19
 
package/test/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@dereekb/util/test",
3
- "version": "8.2.0",
3
+ "version": "8.5.0",
4
4
  "main": "./src/index.js",
5
5
  "typings": "./src/index.d.ts",
6
6
  "dependencies": {},
7
7
  "peerDependencies": {
8
- "@dereekb/util": "8.2.0",
8
+ "@dereekb/util": "8.5.0",
9
9
  "make-error": "^1.3.0",
10
10
  "ts-essentials": "^9.1.2",
11
11
  "extra-set": "^2.2.11",