@dereekb/util 5.3.0 → 6.0.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 +20 -0
- package/package.json +1 -1
- package/src/lib/auth/auth.role.claims.js +2 -2
- package/src/lib/auth/auth.role.claims.js.map +1 -1
- package/src/lib/error/error.server.d.ts +4 -1
- package/src/lib/error/error.server.js +5 -1
- package/src/lib/error/error.server.js.map +1 -1
- package/src/lib/getter/getter.d.ts +1 -1
- package/src/lib/getter/index.d.ts +1 -0
- package/src/lib/getter/index.js +1 -0
- package/src/lib/getter/index.js.map +1 -1
- package/src/lib/getter/type.d.ts +5 -0
- package/src/lib/getter/type.js +3 -0
- package/src/lib/getter/type.js.map +1 -0
- package/src/lib/iterable/iterable.d.ts +1 -0
- package/src/lib/iterable/iterable.js +12 -1
- package/src/lib/iterable/iterable.js.map +1 -1
- package/src/lib/service/index.d.ts +1 -0
- package/src/lib/service/index.js +1 -0
- package/src/lib/service/index.js.map +1 -1
- package/src/lib/service/typed.service.d.ts +30 -0
- package/src/lib/service/typed.service.js +41 -0
- package/src/lib/service/typed.service.js.map +1 -0
- package/src/lib/set/set.d.ts +12 -2
- package/src/lib/set/set.js +16 -4
- package/src/lib/set/set.js.map +1 -1
- package/src/lib/type.d.ts +11 -1
- package/test/CHANGELOG.md +4 -0
- package/test/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,26 @@
|
|
|
2
2
|
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
|
4
4
|
|
|
5
|
+
# [6.0.0](https://github.com/dereekb/dbx-components/compare/v5.3.0-dev...v6.0.0) (2022-06-03)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* added asIterable to handle strings ([9d5b785](https://github.com/dereekb/dbx-components/commit/9d5b7854b6ce4f3c08b4b36fa75419fb97e8d548))
|
|
11
|
+
* hasAuthRoleHook fix ([e4749ba](https://github.com/dereekb/dbx-components/commit/e4749bae9a657d7cdc82974d129211392261aa3c))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Features
|
|
15
|
+
|
|
16
|
+
* added ContextGrantedModelRolesReader ([6fba1cc](https://github.com/dereekb/dbx-components/commit/6fba1cc637beeff55523df599eb88391352f9f58))
|
|
17
|
+
* added FirebaseModelService ([3876575](https://github.com/dereekb/dbx-components/commit/387657559a86908eee57326b655c63a0a836c239))
|
|
18
|
+
* added firebaseModelsService ([7432e55](https://github.com/dereekb/dbx-components/commit/7432e55111cec66a239856ecb2db6adfc9e9780d))
|
|
19
|
+
* added grantedRoleMapReader ([11d2f17](https://github.com/dereekb/dbx-components/commit/11d2f1786f06024dfbbbfd9ac00e48791cbc0521))
|
|
20
|
+
* added OnCallDeleteModel ([358189d](https://github.com/dereekb/dbx-components/commit/358189d6db6ef7d8db93d6dd881d29cc724dd083))
|
|
21
|
+
* added orderByDocumentId, startAtValue, endAtValue constraints ([c846fee](https://github.com/dereekb/dbx-components/commit/c846feef6c26a3818bb006a807b6e931b7b14eaf))
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
5
25
|
# [5.3.0](https://github.com/dereekb/dbx-components/compare/v5.2.1-dev...v5.3.0) (2022-05-30)
|
|
6
26
|
|
|
7
27
|
|
package/package.json
CHANGED
|
@@ -59,7 +59,7 @@ function authRoleClaimsService(config, defaults = {}) {
|
|
|
59
59
|
entry.claimKey = x[0];
|
|
60
60
|
return [x[0], entry];
|
|
61
61
|
});
|
|
62
|
-
const
|
|
62
|
+
const authRoleMap = new Map(tuples.map((x) => [x[0].toLowerCase(), x[1]]));
|
|
63
63
|
const toClaims = (roles) => {
|
|
64
64
|
const claims = {};
|
|
65
65
|
// iterate by each claim value to build the claims.
|
|
@@ -74,7 +74,7 @@ function authRoleClaimsService(config, defaults = {}) {
|
|
|
74
74
|
const roles = new Set();
|
|
75
75
|
(0, object_1.forEachKeyValue)(claims, {
|
|
76
76
|
forEach: ([claimsKey, value]) => {
|
|
77
|
-
const entry =
|
|
77
|
+
const entry = authRoleMap.get(claimsKey);
|
|
78
78
|
if (entry != null) {
|
|
79
79
|
const decodedRoles = entry.decodeRolesFromValue(value);
|
|
80
80
|
(0, set_1.addToSet)(roles, decodedRoles);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.role.claims.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/auth/auth.role.claims.ts"],"names":[],"mappings":";;;AACA,6CAA2G;AAC3G,qDAAsD;AACtD,0CAAuD;AACvD,gCAAwD;AAsH3C,QAAA,oCAAoC,GAAG,CAAC,CAAC;AACzC,QAAA,oCAAoC,GAAG,IAAI,CAAC;AAMzD;;;;;;GAMG;AACH,SAAgB,qBAAqB,CAA6B,MAAsC,EAAE,WAA0C,EAAE;;IACpJ,MAAM,iBAAiB,GAAmB,MAAA,CAAC,IAAA,qBAAY,EAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,UAAU,CAAC,CAAC,CAAC,4CAAoC,CAAC,mCAAI,4CAAoC,CAAC;IACvL,MAAM,iBAAiB,GAAyC,MAAA,CAAC,IAAA,qBAAY,EAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,UAAU,CAAC,CAAC,CAAC,4CAAoC,CAAC,mCAAI,IAAI,CAAC;IAE7K,SAAS,eAAe,CAAC,KAA4C;QACnE,OAAQ,KAAuD,CAAC,KAAK,IAAI,IAAI,CAAC;IAChF,CAAC;IAED,MAAM,MAAM,GAA0D,IAAA,2BAAc,EAAgD,MAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;;QAC3J,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,KAAoD,CAAC;QAEzD,IAAI,eAAe,CAAC,UAAU,CAAC,EAAE;YAC/B,MAAM,aAAa,GAAG,MAAA,UAAU,CAAC,KAAK,mCAAI,iBAAiB,CAAC;YAC5D,MAAM,UAAU,GAAG,IAAA,eAAO,EAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAE7C,kGAAkG;YAClG,8IAA8I;YAC9I,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;gBACrC,MAAM,IAAI,KAAK,CAAC,6GAA6G,CAAC,CAAC;aAChI;YAED,KAAK,GAAG;gBACN,oBAAoB,EAAE,CAAC,KAAkB,EAAE,EAAE;;oBAC3C,IAAI,WAAW,CAAC;oBAEhB,qEAAqE;oBACrE,IAAI,IAAA,0BAAoB,EAAC,KAAK,EAAE,UAAU,CAAC,EAAE;wBAC3C,WAAW,GAAG,MAAA,UAAU,CAAC,KAAK,mCAAI,iBAAiB,CAAC;qBACrD;oBAED,OAAO,WAAW,CAAC;gBACrB,CAAC;gBACD,oBAAoB,EAAE,CAAC,KAA4B,EAAE,EAAE;oBACrD,IAAI,KAAK,KAAK,aAAa,EAAE;wBAC3B,OAAO,UAAU,CAAC;qBACnB;yBAAM;wBACL,OAAO,EAAE,CAAC;qBACX;gBACH,CAAC;aACF,CAAC;SACH;aAAM;YACL,KAAK,GAAG,UAA2D,CAAC;SACrE;QAEA,KAA6C,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAA4C,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,MAAM,
|
|
1
|
+
{"version":3,"file":"auth.role.claims.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/auth/auth.role.claims.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Maybe } from '../value/maybe';
|
|
2
|
-
import { ReadableError, ReadableDataError, StringErrorCode } from './error';
|
|
2
|
+
import { ReadableError, ReadableDataError, StringErrorCode, CodedError } from './error';
|
|
3
3
|
/**
|
|
4
4
|
* The expected error object returned from the server.
|
|
5
5
|
*/
|
|
@@ -15,6 +15,9 @@ export interface ServerErrorResponseData extends ReadableError {
|
|
|
15
15
|
export interface ServerError<T = ServerErrorResponseData> extends ReadableDataError<T> {
|
|
16
16
|
status: number;
|
|
17
17
|
}
|
|
18
|
+
export interface ServerErrorMakeConfig<T> extends ServerError<T>, Partial<CodedError> {
|
|
19
|
+
}
|
|
20
|
+
export declare function serverError<T>(config: ServerErrorMakeConfig<T>): ServerError<T>;
|
|
18
21
|
/**
|
|
19
22
|
* Base server-error class.
|
|
20
23
|
*/
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.UnauthorizedServerErrorResponse = exports.ServerErrorResponse = void 0;
|
|
3
|
+
exports.UnauthorizedServerErrorResponse = exports.ServerErrorResponse = exports.serverError = void 0;
|
|
4
|
+
function serverError(config) {
|
|
5
|
+
return Object.assign(Object.assign({}, config), { data: config.data });
|
|
6
|
+
}
|
|
7
|
+
exports.serverError = serverError;
|
|
4
8
|
/**
|
|
5
9
|
* Base server-error class.
|
|
6
10
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.server.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/error/error.server.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"error.server.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/error/error.server.ts"],"names":[],"mappings":";;;AAsBA,SAAgB,WAAW,CAAI,MAAgC;IAC7D,uCACK,MAAM,KACT,IAAI,EAAE,MAAM,CAAC,IAAI,IACjB;AACJ,CAAC;AALD,kCAKC;AAED;;GAEG;AACH,MAAa,mBAAmB;IAM9B,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAkB;QACzD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAZD,kDAYC;AAED,MAAa,+BAAgC,SAAQ,mBAAmB;IACtE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAwB;QACvD,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACzE,CAAC;CACF;AAJD,0EAIC"}
|
|
@@ -9,7 +9,7 @@ export declare type Factory<T> = Getter<T>;
|
|
|
9
9
|
/**
|
|
10
10
|
* Function that returns a value with an optional single argument.
|
|
11
11
|
*/
|
|
12
|
-
export declare type FactoryWithInput<
|
|
12
|
+
export declare type FactoryWithInput<O, I> = (args?: I) => O;
|
|
13
13
|
/**
|
|
14
14
|
* Function that returns a value with a single argument.
|
|
15
15
|
*/
|
package/src/lib/getter/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./type"), exports);
|
|
4
5
|
tslib_1.__exportStar(require("./getter"), exports);
|
|
5
6
|
tslib_1.__exportStar(require("./getter.cache"), exports);
|
|
6
7
|
tslib_1.__exportStar(require("./getter.map"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/getter/index.ts"],"names":[],"mappings":";;;AAAA,mDAAyB;AACzB,yDAA+B;AAC/B,uDAA6B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/getter/index.ts"],"names":[],"mappings":";;;AAAA,iDAAuB;AACvB,mDAAyB;AACzB,yDAA+B;AAC/B,uDAA6B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/getter/type.ts"],"names":[],"mappings":""}
|
|
@@ -5,6 +5,7 @@ import { Maybe } from '../value/maybe';
|
|
|
5
5
|
* Note that strings are a valid Iterable, allowing iteration over characters.
|
|
6
6
|
*/
|
|
7
7
|
export declare type IterableOrValue<T> = T | Iterable<T>;
|
|
8
|
+
export declare function asIterable<T = unknown>(values: IterableOrValue<T>, treatStringAsIterable?: boolean): Iterable<T>;
|
|
8
9
|
/**
|
|
9
10
|
* Returns true if the input is an Iterable.
|
|
10
11
|
*
|
|
@@ -1,7 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.existsInIterable = exports.findInIterable = exports.useIterableOrValue = exports.forEachInIterable = exports.takeValuesFromIterable = exports.firstValueFromIterable = exports.isIterable = void 0;
|
|
3
|
+
exports.existsInIterable = exports.findInIterable = exports.useIterableOrValue = exports.forEachInIterable = exports.takeValuesFromIterable = exports.firstValueFromIterable = exports.isIterable = exports.asIterable = void 0;
|
|
4
4
|
// MARK: Functions
|
|
5
|
+
function asIterable(values, treatStringAsIterable) {
|
|
6
|
+
let iterable;
|
|
7
|
+
if (isIterable(values, treatStringAsIterable)) {
|
|
8
|
+
iterable = values;
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
iterable = [values];
|
|
12
|
+
}
|
|
13
|
+
return iterable;
|
|
14
|
+
}
|
|
15
|
+
exports.asIterable = asIterable;
|
|
5
16
|
/**
|
|
6
17
|
* Returns true if the input is an Iterable.
|
|
7
18
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iterable.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/iterable/iterable.ts"],"names":[],"mappings":";;;AAUA,kBAAkB;AAClB;;;;;;;;GAQG;AACH,SAAgB,UAAU,CAAc,MAAe,EAAE,qBAAqB,GAAG,KAAK;IACpF,IAAI,MAAM,IAAK,MAAsB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,qBAAqB,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,EAAE;QAC/G,OAAO,IAAI,CAAC;KACb;SAAM;QACL,OAAO,KAAK,CAAC;KACd;AACH,CAAC;AAND,gCAMC;AAED;;;;;GAKG;AACH,SAAgB,sBAAsB,CAAI,MAAmB;IAC3D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,OAAO,KAAK,CAAC;KACd;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAND,wDAMC;AAED;;;;;;GAMG;AACH,SAAgB,sBAAsB,CAAI,MAAmB,EAAE,KAAa;IAC1E,MAAM,MAAM,GAAQ,EAAE,CAAC;IAEvB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,IAAI,MAAM,CAAC,MAAM,GAAG,KAAK,EAAE;YACzB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACpB;aAAM;YACL,MAAM;SACP;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAZD,wDAYC;AAED;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAI,MAAmB,EAAE,EAAsB;IAC9E,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,EAAE,CAAC,KAAK,CAAC,CAAC;KACX;AACH,CAAC;AAJD,8CAIC;AAED;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAI,MAAiC,EAAE,EAAsB,EAAE,qBAAqB,GAAG,KAAK;IAC5H,IAAI,MAAM,IAAI,IAAI,EAAE;QAClB,IAAI,UAAU,CAAC,MAAM,EAAE,qBAAqB,CAAC,EAAE;YAC7C,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;SAC/B;aAAM;YACL,EAAE,CAAC,MAAM,CAAC,CAAC;SACZ;KACF;AACH,CAAC;AARD,gDAQC;AAED;;;;;GAKG;AACH,SAAgB,cAAc,CAAI,MAAmB,EAAE,EAAyB;IAC9E,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE;YACb,OAAO,KAAK,CAAC;SACd;KACF;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AARD,wCAQC;AAED;;;;;;GAMG;AACH,SAAgB,gBAAgB,CAAI,MAAmB,EAAE,EAAyB;IAChF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE;YACb,OAAO,IAAI,CAAC;SACb;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AARD,4CAQC"}
|
|
1
|
+
{"version":3,"file":"iterable.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/iterable/iterable.ts"],"names":[],"mappings":";;;AAUA,kBAAkB;AAClB,SAAgB,UAAU,CAAc,MAA0B,EAAE,qBAA+B;IACjG,IAAI,QAAqB,CAAC;IAE1B,IAAI,UAAU,CAAC,MAAM,EAAE,qBAAqB,CAAC,EAAE;QAC7C,QAAQ,GAAG,MAAM,CAAC;KACnB;SAAM;QACL,QAAQ,GAAG,CAAC,MAAM,CAAC,CAAC;KACrB;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAVD,gCAUC;AAED;;;;;;;;GAQG;AACH,SAAgB,UAAU,CAAc,MAAe,EAAE,qBAAqB,GAAG,KAAK;IACpF,IAAI,MAAM,IAAK,MAAsB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,qBAAqB,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,EAAE;QAC/G,OAAO,IAAI,CAAC;KACb;SAAM;QACL,OAAO,KAAK,CAAC;KACd;AACH,CAAC;AAND,gCAMC;AAED;;;;;GAKG;AACH,SAAgB,sBAAsB,CAAI,MAAmB;IAC3D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,OAAO,KAAK,CAAC;KACd;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAND,wDAMC;AAED;;;;;;GAMG;AACH,SAAgB,sBAAsB,CAAI,MAAmB,EAAE,KAAa;IAC1E,MAAM,MAAM,GAAQ,EAAE,CAAC;IAEvB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,IAAI,MAAM,CAAC,MAAM,GAAG,KAAK,EAAE;YACzB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACpB;aAAM;YACL,MAAM;SACP;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAZD,wDAYC;AAED;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAI,MAAmB,EAAE,EAAsB;IAC9E,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,EAAE,CAAC,KAAK,CAAC,CAAC;KACX;AACH,CAAC;AAJD,8CAIC;AAED;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAI,MAAiC,EAAE,EAAsB,EAAE,qBAAqB,GAAG,KAAK;IAC5H,IAAI,MAAM,IAAI,IAAI,EAAE;QAClB,IAAI,UAAU,CAAC,MAAM,EAAE,qBAAqB,CAAC,EAAE;YAC7C,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;SAC/B;aAAM;YACL,EAAE,CAAC,MAAM,CAAC,CAAC;SACZ;KACF;AACH,CAAC;AARD,gDAQC;AAED;;;;;GAKG;AACH,SAAgB,cAAc,CAAI,MAAmB,EAAE,EAAyB;IAC9E,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE;YACb,OAAO,KAAK,CAAC;SACd;KACF;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AARD,wCAQC;AAED;;;;;;GAMG;AACH,SAAgB,gBAAgB,CAAI,MAAmB,EAAE,EAAyB;IAChF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE;YACb,OAAO,IAAI,CAAC;SACb;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AARD,4CAQC"}
|
package/src/lib/service/index.js
CHANGED
|
@@ -3,4 +3,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
tslib_1.__exportStar(require("./handler"), exports);
|
|
5
5
|
tslib_1.__exportStar(require("./handler.config"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./typed.service"), exports);
|
|
6
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/service/index.ts"],"names":[],"mappings":";;;AAAA,oDAA0B;AAC1B,2DAAiC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/service/index.ts"],"names":[],"mappings":";;;AAAA,oDAA0B;AAC1B,2DAAiC;AACjC,0DAAgC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { GetterOrValue } from '../getter/getter';
|
|
2
|
+
/**
|
|
3
|
+
* Registry used to load model services when requested.
|
|
4
|
+
*/
|
|
5
|
+
export interface TypedServiceRegistry<S, T extends string = string> {
|
|
6
|
+
/**
|
|
7
|
+
* Returns the service for the type. If a service is not registered, will throw an exception.
|
|
8
|
+
*
|
|
9
|
+
* @param type
|
|
10
|
+
*/
|
|
11
|
+
serviceForType(type: T): S;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* TypedServiceRegistry implementation.
|
|
15
|
+
*/
|
|
16
|
+
export declare class TypedServiceRegistryInstance<S, T extends string = string> implements TypedServiceRegistry<S, T> {
|
|
17
|
+
private _map;
|
|
18
|
+
registerServiceForType(type: T, service: GetterOrValue<S>): void;
|
|
19
|
+
serviceForType(type: T): S;
|
|
20
|
+
}
|
|
21
|
+
export interface TypedServiceRegistrySetupConfig<S, T extends string = string> {
|
|
22
|
+
services: {
|
|
23
|
+
[K in T]: S;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Creates a new TypedServiceRegistryInstance and registers the input types.
|
|
28
|
+
* @returns
|
|
29
|
+
*/
|
|
30
|
+
export declare function typedServiceRegistry<S, T extends string = string>(config: TypedServiceRegistrySetupConfig<S, T>): TypedServiceRegistryInstance<S, T>;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.typedServiceRegistry = exports.TypedServiceRegistryInstance = void 0;
|
|
4
|
+
const getter_1 = require("../getter/getter");
|
|
5
|
+
const object_1 = require("../object/object");
|
|
6
|
+
/**
|
|
7
|
+
* TypedServiceRegistry implementation.
|
|
8
|
+
*/
|
|
9
|
+
class TypedServiceRegistryInstance {
|
|
10
|
+
constructor() {
|
|
11
|
+
this._map = new Map();
|
|
12
|
+
}
|
|
13
|
+
registerServiceForType(type, service) {
|
|
14
|
+
const getter = (0, getter_1.asGetter)(service);
|
|
15
|
+
this._map.set(type, getter);
|
|
16
|
+
}
|
|
17
|
+
serviceForType(type) {
|
|
18
|
+
const getter = this._map.get(type);
|
|
19
|
+
const service = getter === null || getter === void 0 ? void 0 : getter();
|
|
20
|
+
if (service == null) {
|
|
21
|
+
throw new Error(`no service registered for type "${type}"`);
|
|
22
|
+
}
|
|
23
|
+
return service;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.TypedServiceRegistryInstance = TypedServiceRegistryInstance;
|
|
27
|
+
/**
|
|
28
|
+
* Creates a new TypedServiceRegistryInstance and registers the input types.
|
|
29
|
+
* @returns
|
|
30
|
+
*/
|
|
31
|
+
function typedServiceRegistry(config) {
|
|
32
|
+
const instance = new TypedServiceRegistryInstance();
|
|
33
|
+
(0, object_1.forEachKeyValue)(config.services, {
|
|
34
|
+
forEach: ([key, service]) => {
|
|
35
|
+
instance.registerServiceForType(key, service);
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
return instance;
|
|
39
|
+
}
|
|
40
|
+
exports.typedServiceRegistry = typedServiceRegistry;
|
|
41
|
+
//# sourceMappingURL=typed.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typed.service.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/service/typed.service.ts"],"names":[],"mappings":";;;AAAA,6CAAmE;AACnE,6CAAmD;AAcnD;;GAEG;AACH,MAAa,4BAA4B;IAAzC;QACU,SAAI,GAAG,IAAI,GAAG,EAAgB,CAAC;IAiBzC,CAAC;IAfC,sBAAsB,CAAC,IAAO,EAAE,OAAyB;QACvD,MAAM,MAAM,GAAG,IAAA,iBAAQ,EAAC,OAAO,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED,cAAc,CAAC,IAAO;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,EAAI,CAAC;QAE3B,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,GAAG,CAAC,CAAC;SAC7D;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAlBD,oEAkBC;AAQD;;;GAGG;AACH,SAAgB,oBAAoB,CAA+B,MAA6C;IAC9G,MAAM,QAAQ,GAAG,IAAI,4BAA4B,EAAQ,CAAC;IAE1D,IAAA,wBAAe,EAAC,MAAM,CAAC,QAAQ,EAAE;QAC/B,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE;YAC1B,QAAQ,CAAC,sBAAsB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAChD,CAAC;KACF,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC;AAClB,CAAC;AAVD,oDAUC"}
|
package/src/lib/set/set.d.ts
CHANGED
|
@@ -15,8 +15,9 @@ export declare function excludeValuesFromSet<T>(values: T[], set: Set<T>): T[];
|
|
|
15
15
|
export declare function filterValuesFromSet<T>(values: T[], set: Set<T>, exclude?: boolean): T[];
|
|
16
16
|
/**
|
|
17
17
|
* Set inclusion comparison type.
|
|
18
|
-
* - all:
|
|
19
|
-
* -
|
|
18
|
+
* - all: The set must include all values from values (set is a subset of values)
|
|
19
|
+
* - all_reverse: All values must be included in the set (values is a subset of set)
|
|
20
|
+
* - any: Any value from values is in the set
|
|
20
21
|
*/
|
|
21
22
|
export declare type SetIncludesMode = 'all' | 'any';
|
|
22
23
|
/**
|
|
@@ -31,6 +32,15 @@ export declare type SetIncludesFunction<T> = (valuesToFind: Iterable<T>) => bool
|
|
|
31
32
|
* @param mode
|
|
32
33
|
*/
|
|
33
34
|
export declare function setIncludesFunction<T>(valuesSet: Set<T>, mode?: SetIncludesMode): SetIncludesFunction<T>;
|
|
35
|
+
/**
|
|
36
|
+
* Convenience function for calling setIncludesFunction() and passing the result a value, checking for includion.
|
|
37
|
+
*
|
|
38
|
+
* @param valuesSet
|
|
39
|
+
* @param valuesToFind
|
|
40
|
+
* @param mode
|
|
41
|
+
* @returns
|
|
42
|
+
*/
|
|
43
|
+
export declare function setIncludes<T>(valuesSet: Set<T>, valuesToFind: Iterable<T>, mode?: SetIncludesMode): boolean;
|
|
34
44
|
/**
|
|
35
45
|
* Returns true if the input array contains any value from the second array.
|
|
36
46
|
*/
|
package/src/lib/set/set.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.setContainsAllValues = exports.containsAllValues = exports.setContainsAnyValue = exports.containsAnyValueFromSet = exports.containsAnyValue = exports.setIncludesFunction = exports.filterValuesFromSet = exports.excludeValuesFromSet = exports.keepValuesFromSet = exports.flattenArrayToSet = exports.symmetricDifferenceKeysSet = exports.symmetricDifferenceKeys = exports.hasDifferentValues = exports.removeFromSet = exports.removeFromSetCopy = exports.addToSet = exports.addToSetCopy = exports.copySetAndDo = exports.asSet = void 0;
|
|
3
|
+
exports.setContainsAllValues = exports.containsAllValues = exports.setContainsAnyValue = exports.containsAnyValueFromSet = exports.containsAnyValue = exports.setIncludes = exports.setIncludesFunction = exports.filterValuesFromSet = exports.excludeValuesFromSet = exports.keepValuesFromSet = exports.flattenArrayToSet = exports.symmetricDifferenceKeysSet = exports.symmetricDifferenceKeys = exports.hasDifferentValues = exports.removeFromSet = exports.removeFromSetCopy = exports.addToSet = exports.addToSetCopy = exports.copySetAndDo = exports.asSet = void 0;
|
|
4
4
|
const array_1 = require("../array/array");
|
|
5
5
|
const iterable_1 = require("../iterable/iterable");
|
|
6
6
|
const extra_set_1 = require("extra-set");
|
|
@@ -85,11 +85,23 @@ function setIncludesFunction(valuesSet, mode = 'all') {
|
|
|
85
85
|
return (valuesToFind) => fn(valuesSet, valuesToFind);
|
|
86
86
|
}
|
|
87
87
|
exports.setIncludesFunction = setIncludesFunction;
|
|
88
|
+
/**
|
|
89
|
+
* Convenience function for calling setIncludesFunction() and passing the result a value, checking for includion.
|
|
90
|
+
*
|
|
91
|
+
* @param valuesSet
|
|
92
|
+
* @param valuesToFind
|
|
93
|
+
* @param mode
|
|
94
|
+
* @returns
|
|
95
|
+
*/
|
|
96
|
+
function setIncludes(valuesSet, valuesToFind, mode) {
|
|
97
|
+
return setIncludesFunction(valuesSet, mode)(valuesToFind);
|
|
98
|
+
}
|
|
99
|
+
exports.setIncludes = setIncludes;
|
|
88
100
|
/**
|
|
89
101
|
* Returns true if the input array contains any value from the second array.
|
|
90
102
|
*/
|
|
91
103
|
function containsAnyValue(values, valuesToFind) {
|
|
92
|
-
const set = new Set(valuesToFind);
|
|
104
|
+
const set = new Set((0, iterable_1.asIterable)(valuesToFind, false));
|
|
93
105
|
return containsAnyValueFromSet(values, set);
|
|
94
106
|
}
|
|
95
107
|
exports.containsAnyValue = containsAnyValue;
|
|
@@ -98,7 +110,7 @@ function containsAnyValueFromSet(values, valuesToFind) {
|
|
|
98
110
|
}
|
|
99
111
|
exports.containsAnyValueFromSet = containsAnyValueFromSet;
|
|
100
112
|
function setContainsAnyValue(valuesSet, valuesToFind) {
|
|
101
|
-
return valuesSet ? Array.from(valuesToFind).findIndex((x) => valuesSet.has(x)) !== -1 : false;
|
|
113
|
+
return valuesSet ? Array.from((0, iterable_1.asIterable)(valuesToFind)).findIndex((x) => valuesSet.has(x)) !== -1 : false;
|
|
102
114
|
}
|
|
103
115
|
exports.setContainsAnyValue = setContainsAnyValue;
|
|
104
116
|
/**
|
|
@@ -122,7 +134,7 @@ exports.containsAllValues = containsAllValues;
|
|
|
122
134
|
* @returns
|
|
123
135
|
*/
|
|
124
136
|
function setContainsAllValues(valuesSet, valuesToFind) {
|
|
125
|
-
return valuesSet ? Array.from(valuesToFind).findIndex((x) => !valuesSet.has(x)) == -1 : false;
|
|
137
|
+
return valuesSet ? Array.from((0, iterable_1.asIterable)(valuesToFind)).findIndex((x) => !valuesSet.has(x)) == -1 : false;
|
|
126
138
|
}
|
|
127
139
|
exports.setContainsAllValues = setContainsAllValues;
|
|
128
140
|
//# sourceMappingURL=set.js.map
|
package/src/lib/set/set.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/set/set.ts"],"names":[],"mappings":";;;AACA,0CAA8C;AAC9C,
|
|
1
|
+
{"version":3,"file":"set.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/set/set.ts"],"names":[],"mappings":"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"}
|
package/src/lib/type.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Merge, PickProperties, StrictOmit, Writable } from 'ts-essentials';
|
|
1
|
+
import { Merge, NonNever, PickProperties, StrictOmit, Writable } from 'ts-essentials';
|
|
2
2
|
/**
|
|
3
3
|
* Class typing, restricted to types that have a constructor via the new keyword.
|
|
4
4
|
*/
|
|
@@ -46,6 +46,16 @@ export declare type RemoveIndex<T> = {
|
|
|
46
46
|
* https://stackoverflow.com/questions/51954558/how-can-i-remove-a-wider-type-from-a-union-type-without-removing-its-subtypes-in/51955852#51955852
|
|
47
47
|
*/
|
|
48
48
|
export declare type KnownKeys<T> = keyof RemoveIndex<T>;
|
|
49
|
+
/**
|
|
50
|
+
* Returns only properties that have string keys.
|
|
51
|
+
*/
|
|
52
|
+
export declare type StringKeyProperties<T> = NonNever<{
|
|
53
|
+
[K in keyof T]: K extends string ? T[K] : never;
|
|
54
|
+
}>;
|
|
55
|
+
/**
|
|
56
|
+
* Returns the name of all keys that are strings.
|
|
57
|
+
*/
|
|
58
|
+
export declare type StringKeyPropertyKeys<T> = keyof StringKeyProperties<T>;
|
|
49
59
|
/**
|
|
50
60
|
* Makes a readonly type able to be configured. Useful for configurating readonly types before they are used.
|
|
51
61
|
*/
|
package/test/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
|
4
4
|
|
|
5
|
+
# [6.0.0](https://github.com/dereekb/dbx-components/compare/v5.3.0-dev...v6.0.0) (2022-06-03)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
5
9
|
# [5.3.0](https://github.com/dereekb/dbx-components/compare/v5.2.1-dev...v5.3.0) (2022-05-30)
|
|
6
10
|
|
|
7
11
|
|
package/test/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dereekb/util/test",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "6.0.0",
|
|
4
4
|
"main": "./src/index.js",
|
|
5
5
|
"typings": "./src/index.d.ts",
|
|
6
6
|
"dependencies": {},
|
|
7
7
|
"peerDependencies": {
|
|
8
|
-
"@dereekb/util": "
|
|
8
|
+
"@dereekb/util": "6.0.0",
|
|
9
9
|
"make-error": "^1.3.0",
|
|
10
10
|
"extra-set": "^2.2.11",
|
|
11
11
|
"tslib": "^2.0.0"
|