imng-nrsrx-client-utils 6.144.4 → 6.179.2
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/esm2022/lib/array.helper.mjs +8 -1
- package/esm2022/lib/guid.helper.mjs +2 -3
- package/esm2022/lib/normalize-request.mjs +2 -1
- package/esm2022/lib/nrsrx-api-client.mjs +30 -6
- package/esm2022/lib/to-date-only.mjs +4 -0
- package/fesm2022/imng-nrsrx-client-utils.mjs +39 -5
- package/fesm2022/imng-nrsrx-client-utils.mjs.map +1 -1
- package/lib/array.helper.d.ts +6 -0
- package/lib/nrsrx-api-client.d.ts +28 -5
- package/lib/to-date-only.d.ts +1 -0
- package/package.json +2 -2
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
export function distinct(arr) {
|
|
2
2
|
return arr.filter((value, index, array) => array.indexOf(value) === index);
|
|
3
3
|
}
|
|
4
|
+
/**
|
|
5
|
+
* Will flatten an array of arrays into a single array
|
|
6
|
+
* WARNING: This will only flatten two levels of arrays.
|
|
7
|
+
* @param arr
|
|
8
|
+
* @returns
|
|
9
|
+
*/
|
|
4
10
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
5
11
|
export function flat(arr) {
|
|
12
|
+
//NOSONAR
|
|
6
13
|
return arr.reduce((acc, val) => acc.concat(val), []);
|
|
7
14
|
}
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9pbW5nLW5yc3J4LWNsaWVudC11dGlscy9zcmMvbGliL2FycmF5LmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsUUFBUSxDQUFJLEdBQVE7SUFDbEMsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUM7QUFDN0UsQ0FBQztBQUNEOzs7OztHQUtHO0FBQ0gsOERBQThEO0FBQzlELE1BQU0sVUFBVSxJQUFJLENBQUksR0FBYztJQUNwQyxTQUFTO0lBQ1QsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBUSxFQUFFLEdBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNqRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGRpc3RpbmN0PFQ+KGFycjogVFtdKTogVFtdIHtcbiAgcmV0dXJuIGFyci5maWx0ZXIoKHZhbHVlLCBpbmRleCwgYXJyYXkpID0+IGFycmF5LmluZGV4T2YodmFsdWUpID09PSBpbmRleCk7XG59XG4vKipcbiAqIFdpbGwgZmxhdHRlbiBhbiBhcnJheSBvZiBhcnJheXMgaW50byBhIHNpbmdsZSBhcnJheVxuICogV0FSTklORzogVGhpcyB3aWxsIG9ubHkgZmxhdHRlbiB0d28gbGV2ZWxzIG9mIGFycmF5cy5cbiAqIEBwYXJhbSBhcnJcbiAqIEByZXR1cm5zXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5leHBvcnQgZnVuY3Rpb24gZmxhdDxUPihhcnI6IFRbXSB8IGFueSk6IFRbXSB7XG4gIC8vTk9TT05BUlxuICByZXR1cm4gYXJyLnJlZHVjZSgoYWNjOiBUW10sIHZhbDogVFtdKSA9PiBhY2MuY29uY2F0KHZhbCksIFtdKTtcbn1cbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
class GuidHelper {
|
|
1
|
+
export class GuidHelper {
|
|
2
2
|
static { this.guidSegmentCriteria = `[a-f0-9]`; }
|
|
3
3
|
static { this.guidRegexWithDashes = new RegExp(`${GuidHelper.guidSegmentCriteria}{8}-${GuidHelper.guidSegmentCriteria}{4}-` +
|
|
4
4
|
`${GuidHelper.guidSegmentCriteria}{4}-${GuidHelper.guidSegmentCriteria}{4}-${GuidHelper.guidSegmentCriteria}`, 'gim'); }
|
|
@@ -13,5 +13,4 @@ class GuidHelper {
|
|
|
13
13
|
return str;
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
|
-
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VpZC5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2ltbmctbnJzcngtY2xpZW50LXV0aWxzL3NyYy9saWIvZ3VpZC5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBYSxVQUFVO2FBQ0csd0JBQW1CLEdBQUcsVUFBVSxDQUFDO2FBQ2pDLHdCQUFtQixHQUFHLElBQUksTUFBTSxDQUFDLEdBQUcsVUFBVSxDQUFDLG1CQUFtQixPQUFPLFVBQVUsQ0FBQyxtQkFBbUIsTUFBTTtRQUNuSSxHQUFHLFVBQVUsQ0FBQyxtQkFBbUIsT0FBTyxVQUFVLENBQUMsbUJBQW1CLE9BQU8sVUFBVSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDaEcsY0FBUyxHQUFHLElBQUksQ0FBQztJQUNsQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQVc7UUFDaEMsSUFBSSxDQUF5QixDQUFDO1FBQzlCLE9BQU8sQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUN4RCxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNsQixHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDbEUsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQzs7U0FiVSxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEd1aWRIZWxwZXIge1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBndWlkU2VnbWVudENyaXRlcmlhID0gYFthLWYwLTldYDtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgZ3VpZFJlZ2V4V2l0aERhc2hlcyA9IG5ldyBSZWdFeHAoYCR7R3VpZEhlbHBlci5ndWlkU2VnbWVudENyaXRlcmlhfXs4fS0ke0d1aWRIZWxwZXIuZ3VpZFNlZ21lbnRDcml0ZXJpYX17NH0tYCArXG4gICAgYCR7R3VpZEhlbHBlci5ndWlkU2VnbWVudENyaXRlcmlhfXs0fS0ke0d1aWRIZWxwZXIuZ3VpZFNlZ21lbnRDcml0ZXJpYX17NH0tJHtHdWlkSGVscGVyLmd1aWRTZWdtZW50Q3JpdGVyaWF9YCwgJ2dpbScpO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBkYXNoUmVnZXggPSAvLS9nO1xuICBwdWJsaWMgc3RhdGljIG1pbmltaXplKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBsZXQgbTogUmVnRXhwRXhlY0FycmF5IHwgbnVsbDtcbiAgICB3aGlsZSAoKG0gPSB0aGlzLmd1aWRSZWdleFdpdGhEYXNoZXMuZXhlYyhzdHIpKSAhPT0gbnVsbCkge1xuICAgICAgbS5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICBzdHIgPSBzdHIucmVwbGFjZShlbGVtZW50LCBlbGVtZW50LnJlcGxhY2UodGhpcy5kYXNoUmVnZXgsICcnKSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHN0cjtcbiAgfVxufVxuIl19
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VpZC5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2ltbmctbnJzcngtY2xpZW50LXV0aWxzL3NyYy9saWIvZ3VpZC5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFVBQVU7YUFDRyx3QkFBbUIsR0FBRyxVQUFVLENBQUM7YUFDakMsd0JBQW1CLEdBQUcsSUFBSSxNQUFNLENBQUMsR0FBRyxVQUFVLENBQUMsbUJBQW1CLE9BQU8sVUFBVSxDQUFDLG1CQUFtQixNQUFNO1FBQ25JLEdBQUcsVUFBVSxDQUFDLG1CQUFtQixPQUFPLFVBQVUsQ0FBQyxtQkFBbUIsT0FBTyxVQUFVLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQzthQUNoRyxjQUFTLEdBQUcsSUFBSSxDQUFDO0lBQ2xDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBVztRQUNoQyxJQUFJLENBQXlCLENBQUM7UUFDOUIsT0FBTyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ3hELENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ2xCLEdBQUcsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNsRSxDQUFDLENBQUMsQ0FBQztTQUNKO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEd1aWRIZWxwZXIge1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBndWlkU2VnbWVudENyaXRlcmlhID0gYFthLWYwLTldYDtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgZ3VpZFJlZ2V4V2l0aERhc2hlcyA9IG5ldyBSZWdFeHAoYCR7R3VpZEhlbHBlci5ndWlkU2VnbWVudENyaXRlcmlhfXs4fS0ke0d1aWRIZWxwZXIuZ3VpZFNlZ21lbnRDcml0ZXJpYX17NH0tYCArXG4gICAgYCR7R3VpZEhlbHBlci5ndWlkU2VnbWVudENyaXRlcmlhfXs0fS0ke0d1aWRIZWxwZXIuZ3VpZFNlZ21lbnRDcml0ZXJpYX17NH0tJHtHdWlkSGVscGVyLmd1aWRTZWdtZW50Q3JpdGVyaWF9YCwgJ2dpbScpO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBkYXNoUmVnZXggPSAvLS9nO1xuICBwdWJsaWMgc3RhdGljIG1pbmltaXplKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBsZXQgbTogUmVnRXhwRXhlY0FycmF5IHwgbnVsbDtcbiAgICB3aGlsZSAoKG0gPSB0aGlzLmd1aWRSZWdleFdpdGhEYXNoZXMuZXhlYyhzdHIpKSAhPT0gbnVsbCkge1xuICAgICAgbS5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICBzdHIgPSBzdHIucmVwbGFjZShlbGVtZW50LCBlbGVtZW50LnJlcGxhY2UodGhpcy5kYXNoUmVnZXgsICcnKSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHN0cjtcbiAgfVxufVxuIl19
|
|
@@ -6,6 +6,7 @@ import { isaString } from './id-type';
|
|
|
6
6
|
**/
|
|
7
7
|
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
8
8
|
export function normalizeRequest(payload) {
|
|
9
|
+
payload = { ...payload };
|
|
9
10
|
for (const x in payload) {
|
|
10
11
|
let val = payload[x];
|
|
11
12
|
if (isaString(val)) {
|
|
@@ -18,4 +19,4 @@ export function normalizeRequest(payload) {
|
|
|
18
19
|
}
|
|
19
20
|
return payload;
|
|
20
21
|
}
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLXJlcXVlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2ltbmctbnJzcngtY2xpZW50LXV0aWxzL3NyYy9saWIvbm9ybWFsaXplLXJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0Qzs7OztJQUlJO0FBRUosd0RBQXdEO0FBQ3hELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBbUIsT0FBVTtJQUMzRCxPQUFPLEdBQUcsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDO0lBQ3pCLEtBQUssTUFBTSxDQUFDLElBQUksT0FBTyxFQUFFO1FBQ3ZCLElBQUksR0FBRyxHQUFZLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5QixJQUFJLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNsQixPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsRUFBRSxJQUFJLEVBQVcsQ0FBQztTQUN6QztRQUNELElBQ0UsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDO1lBQy9CLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFDbkM7WUFDQSxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBYSxDQUFDO1NBQzVCO0tBQ0Y7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNhU3RyaW5nIH0gZnJvbSAnLi9pZC10eXBlJztcbi8qKlxuICogICBTdW1tYXJ5OiBUaGlzIHdpbGwgdXBkYXRlIGFuIG9iamVjdCB0byBtYWtlIGFsbCBwcm9wZXJ0aWVzIHdpdGggZW1wdHkgc3RyaW5nIHZhbHVlcyBoYXZlIG51bGwgdmFsdWVzIGluc3RlYWQuXG4gKiBAdXNhZ2VOb3Rlc1xuICogT25seSB1c2UgdGhpcyBtZXRob2Qgd2l0aCBwbGFpbiBvYmplY3RzLlxuICoqL1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlc1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZVJlcXVlc3Q8VCBleHRlbmRzIG9iamVjdD4ocGF5bG9hZDogVCk6IFQge1xuICBwYXlsb2FkID0geyAuLi5wYXlsb2FkIH07XG4gIGZvciAoY29uc3QgeCBpbiBwYXlsb2FkKSB7XG4gICAgbGV0IHZhbDogdW5rbm93biA9IHBheWxvYWRbeF07XG4gICAgaWYgKGlzYVN0cmluZyh2YWwpKSB7XG4gICAgICBwYXlsb2FkW3hdID0gdmFsID0gdmFsPy50cmltKCkgYXMgbmV2ZXI7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIChpc2FTdHJpbmcodmFsKSAmJiAhdmFsLmxlbmd0aCkgfHxcbiAgICAgIChBcnJheS5pc0FycmF5KHZhbCkgJiYgIXZhbC5sZW5ndGgpXG4gICAgKSB7XG4gICAgICBwYXlsb2FkW3hdID0gbnVsbCBhcyBuZXZlcjtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHBheWxvYWQ7XG59XG4iXX0=
|
|
@@ -1,18 +1,42 @@
|
|
|
1
|
+
import { normalizeRequest } from './normalize-request';
|
|
2
|
+
import { toDateOnly } from './to-date-only';
|
|
1
3
|
export class NrsrxBaseApiClientService {
|
|
2
4
|
constructor(http) {
|
|
3
5
|
this.http = http;
|
|
4
|
-
|
|
6
|
+
/**
|
|
7
|
+
* A collection of strings that represent date only property names
|
|
8
|
+
*/
|
|
9
|
+
this.dateOnlyPropertyNames = [];
|
|
5
10
|
}
|
|
6
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Calls the insert (POST) endpoint on a NRSRx based API endpoint
|
|
13
|
+
* @param payload
|
|
14
|
+
* @returns Observable<TENTITY>
|
|
15
|
+
*/
|
|
7
16
|
post(payload) {
|
|
8
|
-
return this.http.post(payload.id ? `${this.url}?id=${payload.id}` : this.url, payload);
|
|
17
|
+
return this.http.post(payload.id ? `${this.url}?id=${payload.id}` : this.url, this.formatEntity(payload));
|
|
9
18
|
}
|
|
10
|
-
|
|
19
|
+
/**
|
|
20
|
+
* Calls the update (PUT) endpoint on a NRSRx based API endpoint
|
|
21
|
+
* @param payload
|
|
22
|
+
* @returns Observable<TENTITY>
|
|
23
|
+
*/
|
|
11
24
|
put(payload) {
|
|
12
|
-
return this.http.put(`${this.url}?id=${payload.id}`, payload);
|
|
25
|
+
return this.http.put(`${this.url}?id=${payload.id}`, this.formatEntity(payload));
|
|
13
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Calls the delete endpoint on a NRSRx based API endpoint
|
|
29
|
+
* @param payload
|
|
30
|
+
* @returns Observable<TENTITY>
|
|
31
|
+
*/
|
|
14
32
|
delete(payload) {
|
|
15
33
|
return this.http.delete(`${this.url}?id=${payload.id}`);
|
|
16
34
|
}
|
|
35
|
+
formatEntity(entity) {
|
|
36
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
37
|
+
const anyEntity = normalizeRequest(entity); //NOSONAR
|
|
38
|
+
this.dateOnlyPropertyNames.forEach((propertyName) => (anyEntity[propertyName] = toDateOnly(anyEntity[propertyName])));
|
|
39
|
+
return anyEntity;
|
|
40
|
+
}
|
|
17
41
|
}
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnJzcngtYXBpLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvaW1uZy1ucnNyeC1jbGllbnQtdXRpbHMvc3JjL2xpYi9ucnNyeC1hcGktY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1QyxNQUFNLE9BQWdCLHlCQUF5QjtJQWE3QyxZQUErQixJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBTC9DOztXQUVHO1FBQ0ksMEJBQXFCLEdBQWEsRUFBRSxDQUFDO0lBRU0sQ0FBQztJQUVuRDs7OztPQUlHO0lBQ0ksSUFBSSxDQUFDLE9BQWdCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ25CLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsT0FBTyxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQ3RELElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQzNCLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEdBQUcsQ0FBQyxPQUFnQjtRQUN6QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUNsQixHQUFHLElBQUksQ0FBQyxHQUFHLE9BQU8sT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUM5QixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUMzQixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsT0FBZ0I7UUFDNUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBVSxHQUFHLElBQUksQ0FBQyxHQUFHLE9BQU8sT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVNLFlBQVksQ0FBQyxNQUFlO1FBQ2pDLDhEQUE4RDtRQUM5RCxNQUFNLFNBQVMsR0FBUSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDMUQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FDaEMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUNmLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUNsRSxDQUFDO1FBQ0YsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElkVHlwZSB9IGZyb20gJy4vaWQtdHlwZSc7XG5pbXBvcnQgeyBub3JtYWxpemVSZXF1ZXN0IH0gZnJvbSAnLi9ub3JtYWxpemUtcmVxdWVzdCc7XG5pbXBvcnQgeyB0b0RhdGVPbmx5IH0gZnJvbSAnLi90by1kYXRlLW9ubHknO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTnJzcnhCYXNlQXBpQ2xpZW50U2VydmljZTxcbiAgVEVOVElUWSBleHRlbmRzIHsgaWQ/OiBJZFR5cGUgfCBudWxsIH0sXG4+IHtcbiAgLyoqXG4gICAqIFRoZSBVUkwgb2YgdGhlIEFQSSBlbmRwb2ludCB0byBjYWxsXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgdXJsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgY29sbGVjdGlvbiBvZiBzdHJpbmdzIHRoYXQgcmVwcmVzZW50IGRhdGUgb25seSBwcm9wZXJ0eSBuYW1lc1xuICAgKi9cbiAgcHVibGljIGRhdGVPbmx5UHJvcGVydHlOYW1lczogc3RyaW5nW10gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVhZG9ubHkgaHR0cDogSHR0cENsaWVudCkge31cblxuICAvKipcbiAgICogQ2FsbHMgdGhlIGluc2VydCAoUE9TVCkgZW5kcG9pbnQgb24gYSBOUlNSeCBiYXNlZCBBUEkgZW5kcG9pbnRcbiAgICogQHBhcmFtIHBheWxvYWRcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxURU5USVRZPlxuICAgKi9cbiAgcHVibGljIHBvc3QocGF5bG9hZDogVEVOVElUWSk6IE9ic2VydmFibGU8VEVOVElUWT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxURU5USVRZPihcbiAgICAgIHBheWxvYWQuaWQgPyBgJHt0aGlzLnVybH0/aWQ9JHtwYXlsb2FkLmlkfWAgOiB0aGlzLnVybCxcbiAgICAgIHRoaXMuZm9ybWF0RW50aXR5KHBheWxvYWQpLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbHMgdGhlIHVwZGF0ZSAoUFVUKSBlbmRwb2ludCBvbiBhIE5SU1J4IGJhc2VkIEFQSSBlbmRwb2ludFxuICAgKiBAcGFyYW0gcGF5bG9hZFxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPFRFTlRJVFk+XG4gICAqL1xuICBwdWJsaWMgcHV0KHBheWxvYWQ6IFRFTlRJVFkpOiBPYnNlcnZhYmxlPFRFTlRJVFk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxURU5USVRZPihcbiAgICAgIGAke3RoaXMudXJsfT9pZD0ke3BheWxvYWQuaWR9YCxcbiAgICAgIHRoaXMuZm9ybWF0RW50aXR5KHBheWxvYWQpLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbHMgdGhlIGRlbGV0ZSBlbmRwb2ludCBvbiBhIE5SU1J4IGJhc2VkIEFQSSBlbmRwb2ludFxuICAgKiBAcGFyYW0gcGF5bG9hZFxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPFRFTlRJVFk+XG4gICAqL1xuICBwdWJsaWMgZGVsZXRlKHBheWxvYWQ6IFRFTlRJVFkpOiBPYnNlcnZhYmxlPFRFTlRJVFk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxURU5USVRZPihgJHt0aGlzLnVybH0/aWQ9JHtwYXlsb2FkLmlkfWApO1xuICB9XG5cbiAgcHVibGljIGZvcm1hdEVudGl0eShlbnRpdHk6IFRFTlRJVFkpOiBURU5USVRZIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIGNvbnN0IGFueUVudGl0eTogYW55ID0gbm9ybWFsaXplUmVxdWVzdChlbnRpdHkpOyAvL05PU09OQVJcbiAgICB0aGlzLmRhdGVPbmx5UHJvcGVydHlOYW1lcy5mb3JFYWNoKFxuICAgICAgKHByb3BlcnR5TmFtZSkgPT5cbiAgICAgICAgKGFueUVudGl0eVtwcm9wZXJ0eU5hbWVdID0gdG9EYXRlT25seShhbnlFbnRpdHlbcHJvcGVydHlOYW1lXSkpLFxuICAgICk7XG4gICAgcmV0dXJuIGFueUVudGl0eTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export function toDateOnly(date) {
|
|
2
|
+
return date?.toISOString().split('T')[0];
|
|
3
|
+
}
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG8tZGF0ZS1vbmx5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9pbW5nLW5yc3J4LWNsaWVudC11dGlscy9zcmMvbGliL3RvLWRhdGUtb25seS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsVUFBVSxDQUFDLElBQVc7SUFDcEMsT0FBTyxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzNDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gdG9EYXRlT25seShkYXRlPzogRGF0ZSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBkYXRlPy50b0lTT1N0cmluZygpLnNwbGl0KCdUJylbMF07XG59XG4iXX0=
|
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
function distinct(arr) {
|
|
2
2
|
return arr.filter((value, index, array) => array.indexOf(value) === index);
|
|
3
3
|
}
|
|
4
|
+
/**
|
|
5
|
+
* Will flatten an array of arrays into a single array
|
|
6
|
+
* WARNING: This will only flatten two levels of arrays.
|
|
7
|
+
* @param arr
|
|
8
|
+
* @returns
|
|
9
|
+
*/
|
|
4
10
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
5
11
|
function flat(arr) {
|
|
12
|
+
//NOSONAR
|
|
6
13
|
return arr.reduce((acc, val) => acc.concat(val), []);
|
|
7
14
|
}
|
|
8
15
|
|
|
@@ -127,6 +134,7 @@ function isNullOrUndefined(obj) {
|
|
|
127
134
|
**/
|
|
128
135
|
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
129
136
|
function normalizeRequest(payload) {
|
|
137
|
+
payload = { ...payload };
|
|
130
138
|
for (const x in payload) {
|
|
131
139
|
let val = payload[x];
|
|
132
140
|
if (isaString(val)) {
|
|
@@ -140,22 +148,48 @@ function normalizeRequest(payload) {
|
|
|
140
148
|
return payload;
|
|
141
149
|
}
|
|
142
150
|
|
|
151
|
+
function toDateOnly(date) {
|
|
152
|
+
return date?.toISOString().split('T')[0];
|
|
153
|
+
}
|
|
154
|
+
|
|
143
155
|
class NrsrxBaseApiClientService {
|
|
144
156
|
constructor(http) {
|
|
145
157
|
this.http = http;
|
|
146
|
-
|
|
158
|
+
/**
|
|
159
|
+
* A collection of strings that represent date only property names
|
|
160
|
+
*/
|
|
161
|
+
this.dateOnlyPropertyNames = [];
|
|
147
162
|
}
|
|
148
|
-
|
|
163
|
+
/**
|
|
164
|
+
* Calls the insert (POST) endpoint on a NRSRx based API endpoint
|
|
165
|
+
* @param payload
|
|
166
|
+
* @returns Observable<TENTITY>
|
|
167
|
+
*/
|
|
149
168
|
post(payload) {
|
|
150
|
-
return this.http.post(payload.id ? `${this.url}?id=${payload.id}` : this.url, payload);
|
|
169
|
+
return this.http.post(payload.id ? `${this.url}?id=${payload.id}` : this.url, this.formatEntity(payload));
|
|
151
170
|
}
|
|
152
|
-
|
|
171
|
+
/**
|
|
172
|
+
* Calls the update (PUT) endpoint on a NRSRx based API endpoint
|
|
173
|
+
* @param payload
|
|
174
|
+
* @returns Observable<TENTITY>
|
|
175
|
+
*/
|
|
153
176
|
put(payload) {
|
|
154
|
-
return this.http.put(`${this.url}?id=${payload.id}`, payload);
|
|
177
|
+
return this.http.put(`${this.url}?id=${payload.id}`, this.formatEntity(payload));
|
|
155
178
|
}
|
|
179
|
+
/**
|
|
180
|
+
* Calls the delete endpoint on a NRSRx based API endpoint
|
|
181
|
+
* @param payload
|
|
182
|
+
* @returns Observable<TENTITY>
|
|
183
|
+
*/
|
|
156
184
|
delete(payload) {
|
|
157
185
|
return this.http.delete(`${this.url}?id=${payload.id}`);
|
|
158
186
|
}
|
|
187
|
+
formatEntity(entity) {
|
|
188
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
189
|
+
const anyEntity = normalizeRequest(entity); //NOSONAR
|
|
190
|
+
this.dateOnlyPropertyNames.forEach((propertyName) => (anyEntity[propertyName] = toDateOnly(anyEntity[propertyName])));
|
|
191
|
+
return anyEntity;
|
|
192
|
+
}
|
|
159
193
|
}
|
|
160
194
|
|
|
161
195
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imng-nrsrx-client-utils.mjs","sources":["../../../../libs/imng-nrsrx-client-utils/src/lib/array.helper.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/array.extensions.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/num-pad.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/date.extensions.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/default-proxy-settings.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/get-enum-display-text.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/get-related-field.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/get-related-value.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/guid.helper.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/id-type.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/is-null-or-undefined.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/normalize-request.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/nrsrx-api-client.ts","../../../../libs/imng-nrsrx-client-utils/src/imng-nrsrx-client-utils.ts"],"sourcesContent":["export function distinct<T>(arr: T[]): T[] {\n return arr.filter((value, index, array) => array.indexOf(value) === index);\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function flat<T>(arr: T[] | any): T[] { //NOSONAR\n return arr.reduce((acc: T[], val: T[]) => acc.concat(val), []);\n}\n","import { distinct, flat } from './array.helper';\n\ndeclare global {\n export interface Array<T> {\n distinct(): T[];\n flat(): T;\n }\n}\n\nif (!Array.prototype.distinct) {\n Array.prototype.distinct = function <T>(this: T[]): T[] { //NOSONAR\n return distinct(this);\n };\n}\n\nif (!Array.prototype.flat) {\n Array.prototype.flat = function <T>(this: T[][] | T[]): T[] { //NOSONAR\n return flat(this);\n };\n}\nexport { };\n","export function numPad(x: number, maxLength = 2) {\n return x.toString().padStart(maxLength, '0');\n}\n","import { numPad } from './num-pad';\n\ndeclare global {\n export interface Date {\n toShortDateString(): string;\n weekOfYear(): number;\n toLocalTimeStamp(): string;\n }\n}\n\nexport const shortDateOptions: Intl.DateTimeFormatOptions = {\n month: '2-digit',\n day: '2-digit',\n year: 'numeric',\n};\nexport const MILLI_SECS_PER_DAY = 86400000;\nexport const MILLI_SECS_PER_SEC = 60000;\nexport const DAYS_PER_WEEK = 7;\nif (!Date.prototype.toShortDateString) {\n //NOSONAR\n Date.prototype.toShortDateString = function (this: Date): string { //NOSONAR\n return toShortDateString(this);\n };\n}\n\nif (!Date.prototype.weekOfYear) {\n //NOSONAR\n // tslint:disable-next-line: space-before-function-paren\n Date.prototype.weekOfYear = function (this: Date): number { //NOSONAR\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n return weekOfYear(this);\n };\n}\nexport { };\n\nexport function weekOfYear(dt: Date): number {\n const onejan = new Date(dt.getFullYear(), 0, 1);\n return Math.ceil(((dt.getTime() - onejan.getTime()) / MILLI_SECS_PER_DAY + onejan.getDay() + 1) / DAYS_PER_WEEK);\n}\n\n// tslint:disable-next-line: space-before-function-paren\nexport function toLocalTimeStamp(dt: Date = new Date()): string {\n return `${dt.getFullYear()}${numPad(dt.getMonth() + 1)}${numPad(dt.getDate())}${numPad(dt.getHours())}${numPad(dt.getMinutes())}${numPad(dt.getSeconds())}-${numPad(dt.getMilliseconds(), 3)}`;\n}\n\n\n// tslint:disable-next-line: space-before-function-paren\nexport function toShortDateString(dt: Date): string {\n const locale =\n navigator.language || (navigator.languages && navigator.languages.length > 0) ? navigator.languages[0] : 'en-US';\n\n return dt?.toLocaleDateString(locale, shortDateOptions);\n}\n","\nexport const defaultProxySettings = {\n\n secure: true,\n changeOrigin: true,\n onProxyRes: (proxyRes: { headers: { [x: string]: string; }; }) =>\n proxyRes.headers['Cache-Control'] = `max-age=2590000, public`\n};\nexport const defaultProxyDebugSettings =\n{\n ...defaultProxySettings,\n logLevel: 'debug',\n};\n","export function getEnumDisplayText(\n values: { key: number; name: string; displayText: string }[],\n value: string | number,\n): string | undefined {\n return values.find((t) => t.name === value || t.key === value)?.displayText;\n}\n","export function getRelatedField(options: IRelatedFieldOptions): string {\n return options.segments.join(options.seperator || '/');\n}\nexport interface IRelatedFieldOptions {\n seperator?: string;\n segments: string[];\n}\n\nexport function isRelatedFieldOptions(\n source: string | IRelatedFieldOptions,\n): source is IRelatedFieldOptions {\n return !!(source as IRelatedFieldOptions).segments;\n}\n","export function getRelatedValue<ENTITY>(\n obj: ENTITY,\n ...segments: string[]\n): // eslint-disable-next-line @typescript-eslint/no-explicit-any\nany {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let result: any = obj; //NOSONAR\n segments.forEach((segment) => {\n if (result) {\n result = result[segment];\n }\n });\n return result;\n}\n","export class GuidHelper {\n private static readonly guidSegmentCriteria = `[a-f0-9]`;\n private static readonly guidRegexWithDashes = new RegExp(`${GuidHelper.guidSegmentCriteria}{8}-${GuidHelper.guidSegmentCriteria}{4}-` +\n `${GuidHelper.guidSegmentCriteria}{4}-${GuidHelper.guidSegmentCriteria}{4}-${GuidHelper.guidSegmentCriteria}`, 'gim');\n private static readonly dashRegex = /-/g;\n public static minimize(str: string): string {\n let m: RegExpExecArray | null;\n while ((m = this.guidRegexWithDashes.exec(str)) !== null) {\n m.forEach(element => {\n str = str.replace(element, element.replace(this.dashRegex, ''));\n });\n }\n return str;\n }\n}\n","export type IdType = number | string | Date;\n\nexport function isaNumber(value: unknown): value is number {\n const type = typeof value;\n return type === 'number' || type === 'bigint';\n}\n\nexport function isaString(value: unknown): value is string {\n return typeof value === 'string';\n}\nexport function isaDate(value: unknown): value is Date {\n return value instanceof Date;\n}\n","export function isNullOrUndefined(obj: unknown): boolean {\n return obj === undefined || obj === null;\n}\n","import { isaString } from './id-type';\n/**\n * Summary: This will update an object to make all properties with empty string values have null values instead.\n * @usageNotes\n * Only use this method with plain objects.\n **/\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function normalizeRequest<T extends object>(payload: T): T {\n for (const x in payload) {\n let val: unknown = payload[x];\n if (isaString(val)) {\n payload[x] = val = val?.trim() as never;\n }\n if (\n (isaString(val) && !val.length) ||\n (Array.isArray(val) && !val.length)\n ) {\n payload[x] = null as never;\n }\n }\n return payload;\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { IdType } from './id-type';\n\nexport class NrsrxBaseApiClientService<T extends { id?: IdType | null }> {\n public url = '';\n constructor(protected readonly http: HttpClient) {}\n // Used to insert entities on NRSRx based API endpoints\n public post(payload: T): Observable<T> {\n return this.http.post<T>(\n payload.id ? `${this.url}?id=${payload.id}` : this.url,\n payload,\n );\n }\n\n // Used to update entities on NRSRx based API endpoints\n public put(payload: T): Observable<T> {\n return this.http.put<T>(`${this.url}?id=${payload.id}`, payload);\n }\n\n public delete(payload: T): Observable<T> {\n return this.http.delete<T>(`${this.url}?id=${payload.id}`);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"imng-nrsrx-client-utils.mjs","sources":["../../../../libs/imng-nrsrx-client-utils/src/lib/array.helper.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/array.extensions.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/num-pad.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/date.extensions.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/default-proxy-settings.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/get-enum-display-text.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/get-related-field.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/get-related-value.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/guid.helper.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/id-type.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/is-null-or-undefined.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/normalize-request.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/to-date-only.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/nrsrx-api-client.ts","../../../../libs/imng-nrsrx-client-utils/src/imng-nrsrx-client-utils.ts"],"sourcesContent":["export function distinct<T>(arr: T[]): T[] {\n return arr.filter((value, index, array) => array.indexOf(value) === index);\n}\n/**\n * Will flatten an array of arrays into a single array\n * WARNING: This will only flatten two levels of arrays.\n * @param arr\n * @returns\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function flat<T>(arr: T[] | any): T[] {\n //NOSONAR\n return arr.reduce((acc: T[], val: T[]) => acc.concat(val), []);\n}\n","import { distinct, flat } from './array.helper';\n\ndeclare global {\n export interface Array<T> {\n distinct(): T[];\n flat(): T;\n }\n}\n\nif (!Array.prototype.distinct) {\n Array.prototype.distinct = function <T>(this: T[]): T[] { //NOSONAR\n return distinct(this);\n };\n}\n\nif (!Array.prototype.flat) {\n Array.prototype.flat = function <T>(this: T[][] | T[]): T[] { //NOSONAR\n return flat(this);\n };\n}\nexport { };\n","export function numPad(x: number, maxLength = 2) {\n return x.toString().padStart(maxLength, '0');\n}\n","import { numPad } from './num-pad';\n\ndeclare global {\n export interface Date {\n toShortDateString(): string;\n weekOfYear(): number;\n toLocalTimeStamp(): string;\n }\n}\n\nexport const shortDateOptions: Intl.DateTimeFormatOptions = {\n month: '2-digit',\n day: '2-digit',\n year: 'numeric',\n};\nexport const MILLI_SECS_PER_DAY = 86400000;\nexport const MILLI_SECS_PER_SEC = 60000;\nexport const DAYS_PER_WEEK = 7;\nif (!Date.prototype.toShortDateString) {\n //NOSONAR\n Date.prototype.toShortDateString = function (this: Date): string { //NOSONAR\n return toShortDateString(this);\n };\n}\n\nif (!Date.prototype.weekOfYear) {\n //NOSONAR\n // tslint:disable-next-line: space-before-function-paren\n Date.prototype.weekOfYear = function (this: Date): number { //NOSONAR\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n return weekOfYear(this);\n };\n}\nexport { };\n\nexport function weekOfYear(dt: Date): number {\n const onejan = new Date(dt.getFullYear(), 0, 1);\n return Math.ceil(((dt.getTime() - onejan.getTime()) / MILLI_SECS_PER_DAY + onejan.getDay() + 1) / DAYS_PER_WEEK);\n}\n\n// tslint:disable-next-line: space-before-function-paren\nexport function toLocalTimeStamp(dt: Date = new Date()): string {\n return `${dt.getFullYear()}${numPad(dt.getMonth() + 1)}${numPad(dt.getDate())}${numPad(dt.getHours())}${numPad(dt.getMinutes())}${numPad(dt.getSeconds())}-${numPad(dt.getMilliseconds(), 3)}`;\n}\n\n\n// tslint:disable-next-line: space-before-function-paren\nexport function toShortDateString(dt: Date): string {\n const locale =\n navigator.language || (navigator.languages && navigator.languages.length > 0) ? navigator.languages[0] : 'en-US';\n\n return dt?.toLocaleDateString(locale, shortDateOptions);\n}\n","\nexport const defaultProxySettings = {\n\n secure: true,\n changeOrigin: true,\n onProxyRes: (proxyRes: { headers: { [x: string]: string; }; }) =>\n proxyRes.headers['Cache-Control'] = `max-age=2590000, public`\n};\nexport const defaultProxyDebugSettings =\n{\n ...defaultProxySettings,\n logLevel: 'debug',\n};\n","export function getEnumDisplayText(\n values: { key: number; name: string; displayText: string }[],\n value: string | number,\n): string | undefined {\n return values.find((t) => t.name === value || t.key === value)?.displayText;\n}\n","export function getRelatedField(options: IRelatedFieldOptions): string {\n return options.segments.join(options.seperator || '/');\n}\nexport interface IRelatedFieldOptions {\n seperator?: string;\n segments: string[];\n}\n\nexport function isRelatedFieldOptions(\n source: string | IRelatedFieldOptions,\n): source is IRelatedFieldOptions {\n return !!(source as IRelatedFieldOptions).segments;\n}\n","export function getRelatedValue<ENTITY>(\n obj: ENTITY,\n ...segments: string[]\n): // eslint-disable-next-line @typescript-eslint/no-explicit-any\nany {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let result: any = obj; //NOSONAR\n segments.forEach((segment) => {\n if (result) {\n result = result[segment];\n }\n });\n return result;\n}\n","export class GuidHelper {\n private static readonly guidSegmentCriteria = `[a-f0-9]`;\n private static readonly guidRegexWithDashes = new RegExp(`${GuidHelper.guidSegmentCriteria}{8}-${GuidHelper.guidSegmentCriteria}{4}-` +\n `${GuidHelper.guidSegmentCriteria}{4}-${GuidHelper.guidSegmentCriteria}{4}-${GuidHelper.guidSegmentCriteria}`, 'gim');\n private static readonly dashRegex = /-/g;\n public static minimize(str: string): string {\n let m: RegExpExecArray | null;\n while ((m = this.guidRegexWithDashes.exec(str)) !== null) {\n m.forEach(element => {\n str = str.replace(element, element.replace(this.dashRegex, ''));\n });\n }\n return str;\n }\n}\n","export type IdType = number | string | Date;\n\nexport function isaNumber(value: unknown): value is number {\n const type = typeof value;\n return type === 'number' || type === 'bigint';\n}\n\nexport function isaString(value: unknown): value is string {\n return typeof value === 'string';\n}\nexport function isaDate(value: unknown): value is Date {\n return value instanceof Date;\n}\n","export function isNullOrUndefined(obj: unknown): boolean {\n return obj === undefined || obj === null;\n}\n","import { isaString } from './id-type';\n/**\n * Summary: This will update an object to make all properties with empty string values have null values instead.\n * @usageNotes\n * Only use this method with plain objects.\n **/\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function normalizeRequest<T extends object>(payload: T): T {\n payload = { ...payload };\n for (const x in payload) {\n let val: unknown = payload[x];\n if (isaString(val)) {\n payload[x] = val = val?.trim() as never;\n }\n if (\n (isaString(val) && !val.length) ||\n (Array.isArray(val) && !val.length)\n ) {\n payload[x] = null as never;\n }\n }\n return payload;\n}\n","export function toDateOnly(date?: Date): string | undefined {\n return date?.toISOString().split('T')[0];\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { IdType } from './id-type';\nimport { normalizeRequest } from './normalize-request';\nimport { toDateOnly } from './to-date-only';\n\nexport abstract class NrsrxBaseApiClientService<\n TENTITY extends { id?: IdType | null },\n> {\n /**\n * The URL of the API endpoint to call\n */\n public abstract url: string;\n\n /**\n * A collection of strings that represent date only property names\n */\n public dateOnlyPropertyNames: string[] = [];\n\n constructor(protected readonly http: HttpClient) {}\n\n /**\n * Calls the insert (POST) endpoint on a NRSRx based API endpoint\n * @param payload\n * @returns Observable<TENTITY>\n */\n public post(payload: TENTITY): Observable<TENTITY> {\n return this.http.post<TENTITY>(\n payload.id ? `${this.url}?id=${payload.id}` : this.url,\n this.formatEntity(payload),\n );\n }\n\n /**\n * Calls the update (PUT) endpoint on a NRSRx based API endpoint\n * @param payload\n * @returns Observable<TENTITY>\n */\n public put(payload: TENTITY): Observable<TENTITY> {\n return this.http.put<TENTITY>(\n `${this.url}?id=${payload.id}`,\n this.formatEntity(payload),\n );\n }\n\n /**\n * Calls the delete endpoint on a NRSRx based API endpoint\n * @param payload\n * @returns Observable<TENTITY>\n */\n public delete(payload: TENTITY): Observable<TENTITY> {\n return this.http.delete<TENTITY>(`${this.url}?id=${payload.id}`);\n }\n\n public formatEntity(entity: TENTITY): TENTITY {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const anyEntity: any = normalizeRequest(entity); //NOSONAR\n this.dateOnlyPropertyNames.forEach(\n (propertyName) =>\n (anyEntity[propertyName] = toDateOnly(anyEntity[propertyName])),\n );\n return anyEntity;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/lib/array.helper.d.ts
CHANGED
|
@@ -1,13 +1,36 @@
|
|
|
1
1
|
import { HttpClient } from '@angular/common/http';
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
3
|
import { IdType } from './id-type';
|
|
4
|
-
export declare class NrsrxBaseApiClientService<
|
|
4
|
+
export declare abstract class NrsrxBaseApiClientService<TENTITY extends {
|
|
5
5
|
id?: IdType | null;
|
|
6
6
|
}> {
|
|
7
7
|
protected readonly http: HttpClient;
|
|
8
|
-
|
|
8
|
+
/**
|
|
9
|
+
* The URL of the API endpoint to call
|
|
10
|
+
*/
|
|
11
|
+
abstract url: string;
|
|
12
|
+
/**
|
|
13
|
+
* A collection of strings that represent date only property names
|
|
14
|
+
*/
|
|
15
|
+
dateOnlyPropertyNames: string[];
|
|
9
16
|
constructor(http: HttpClient);
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
17
|
+
/**
|
|
18
|
+
* Calls the insert (POST) endpoint on a NRSRx based API endpoint
|
|
19
|
+
* @param payload
|
|
20
|
+
* @returns Observable<TENTITY>
|
|
21
|
+
*/
|
|
22
|
+
post(payload: TENTITY): Observable<TENTITY>;
|
|
23
|
+
/**
|
|
24
|
+
* Calls the update (PUT) endpoint on a NRSRx based API endpoint
|
|
25
|
+
* @param payload
|
|
26
|
+
* @returns Observable<TENTITY>
|
|
27
|
+
*/
|
|
28
|
+
put(payload: TENTITY): Observable<TENTITY>;
|
|
29
|
+
/**
|
|
30
|
+
* Calls the delete endpoint on a NRSRx based API endpoint
|
|
31
|
+
* @param payload
|
|
32
|
+
* @returns Observable<TENTITY>
|
|
33
|
+
*/
|
|
34
|
+
delete(payload: TENTITY): Observable<TENTITY>;
|
|
35
|
+
formatEntity(entity: TENTITY): TENTITY;
|
|
13
36
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function toDateOnly(date?: Date): string | undefined;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "imng-nrsrx-client-utils",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.179.2",
|
|
4
4
|
"keywords": [
|
|
5
5
|
"Angular",
|
|
6
6
|
"Utils"
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"@angular/common": ">= 14",
|
|
10
10
|
"@angular/core": ">= 14",
|
|
11
11
|
"rxjs": "*",
|
|
12
|
-
"@microsoft/applicationinsights-core-js": "3.0.
|
|
12
|
+
"@microsoft/applicationinsights-core-js": "3.0.2"
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
15
|
"tslib": "^2.3.0"
|