imng-ngrx-utils 4.62.1 → 4.102.13
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/{esm2015/imng-ngrx-utils.js → esm2020/imng-ngrx-utils.mjs} +0 -0
- package/esm2020/index.mjs +8 -0
- package/esm2020/lib/find-and-merge.mjs +7 -0
- package/esm2020/lib/find-and-modify.mjs +9 -0
- package/{esm2015/lib/isTruthy.js → esm2020/lib/isTruthy.mjs} +0 -0
- package/{esm2015/lib/match-and-spread.js → esm2020/lib/match-and-spread.mjs} +0 -0
- package/esm2020/lib/payload.mjs +6 -0
- package/esm2020/lib/remove-by-id.mjs +15 -0
- package/{esm2015/lib/subscribable.js → esm2020/lib/subscribable.mjs} +0 -0
- package/esm2020/lib/subscriptions.mjs +23 -0
- package/{esm2015/testing/imng-ngrx-utils-testing.js → esm2020/testing/imng-ngrx-utils-testing.mjs} +2 -2
- package/esm2020/testing/index.mjs +8 -0
- package/fesm2015/imng-ngrx-utils-testing.mjs +15 -0
- package/fesm2015/imng-ngrx-utils-testing.mjs.map +1 -0
- package/fesm2015/{imng-ngrx-utils.js → imng-ngrx-utils.mjs} +7 -7
- package/fesm2015/imng-ngrx-utils.mjs.map +1 -0
- package/fesm2020/imng-ngrx-utils-testing.mjs +15 -0
- package/fesm2020/imng-ngrx-utils-testing.mjs.map +1 -0
- package/fesm2020/imng-ngrx-utils.mjs +84 -0
- package/fesm2020/imng-ngrx-utils.mjs.map +1 -0
- package/imng-ngrx-utils.d.ts +0 -1
- package/index.d.ts +0 -1
- package/lib/find-and-merge.d.ts +0 -1
- package/lib/find-and-modify.d.ts +0 -1
- package/lib/isTruthy.d.ts +0 -1
- package/lib/match-and-spread.d.ts +0 -1
- package/lib/payload.d.ts +1 -2
- package/lib/remove-by-id.d.ts +1 -2
- package/lib/subscribable.d.ts +0 -1
- package/lib/subscriptions.d.ts +1 -2
- package/package.json +39 -16
- package/testing/README.md +3 -0
- package/testing/imng-ngrx-utils-testing.d.ts +1 -2
- package/testing/index.d.ts +3 -7
- package/testing/package.json +5 -5
- package/bundles/imng-ngrx-utils-testing.umd.js +0 -29
- package/bundles/imng-ngrx-utils-testing.umd.js.map +0 -1
- package/bundles/imng-ngrx-utils.umd.js +0 -433
- package/bundles/imng-ngrx-utils.umd.js.map +0 -1
- package/esm2015/index.js +0 -8
- package/esm2015/lib/find-and-merge.js +0 -4
- package/esm2015/lib/find-and-modify.js +0 -9
- package/esm2015/lib/payload.js +0 -8
- package/esm2015/lib/remove-by-id.js +0 -16
- package/esm2015/lib/subscriptions.js +0 -21
- package/esm2015/testing/index.js +0 -7
- package/esm2015/testing/public_api.js +0 -2
- package/fesm2015/imng-ngrx-utils-testing.js +0 -12
- package/fesm2015/imng-ngrx-utils-testing.js.map +0 -1
- package/fesm2015/imng-ngrx-utils.js.map +0 -1
- package/imng-ngrx-utils.d.ts.map +0 -1
- package/index.d.ts.map +0 -1
- package/lib/find-and-merge.d.ts.map +0 -1
- package/lib/find-and-modify.d.ts.map +0 -1
- package/lib/isTruthy.d.ts.map +0 -1
- package/lib/match-and-spread.d.ts.map +0 -1
- package/lib/payload.d.ts.map +0 -1
- package/lib/remove-by-id.d.ts.map +0 -1
- package/lib/subscribable.d.ts.map +0 -1
- package/lib/subscriptions.d.ts.map +0 -1
- package/testing/imng-ngrx-utils-testing.d.ts.map +0 -1
- package/testing/index.d.ts.map +0 -1
- package/testing/public_api.d.ts +0 -2
- package/testing/public_api.d.ts.map +0 -1
|
File without changes
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { createPayloadAction } from './lib/payload';
|
|
2
|
+
export { isTruthy, isFalsy } from './lib/isTruthy';
|
|
3
|
+
export { findAndModify } from './lib/find-and-modify';
|
|
4
|
+
export { findAndMerge } from './lib/find-and-merge';
|
|
5
|
+
export { matchAndSpread } from './lib/match-and-spread';
|
|
6
|
+
export { removeById } from './lib/remove-by-id';
|
|
7
|
+
export { Subscriptions } from './lib/subscriptions';
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2ltbmctbmdyeC11dGlscy9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFXLG1CQUFtQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IFBheWxvYWQsIGNyZWF0ZVBheWxvYWRBY3Rpb24gfSBmcm9tICcuL2xpYi9wYXlsb2FkJztcbmV4cG9ydCB7IGlzVHJ1dGh5LCBpc0ZhbHN5IH0gZnJvbSAnLi9saWIvaXNUcnV0aHknO1xuZXhwb3J0IHsgZmluZEFuZE1vZGlmeSB9IGZyb20gJy4vbGliL2ZpbmQtYW5kLW1vZGlmeSc7XG5leHBvcnQgeyBmaW5kQW5kTWVyZ2UgfSBmcm9tICcuL2xpYi9maW5kLWFuZC1tZXJnZSc7XG5leHBvcnQgeyBtYXRjaEFuZFNwcmVhZCB9IGZyb20gJy4vbGliL21hdGNoLWFuZC1zcHJlYWQnO1xuZXhwb3J0IHsgcmVtb3ZlQnlJZCB9IGZyb20gJy4vbGliL3JlbW92ZS1ieS1pZCc7XG5leHBvcnQgeyBTdWJzY3JpcHRpb25zIH0gZnJvbSAnLi9saWIvc3Vic2NyaXB0aW9ucyc7XG5leHBvcnQgeyBTdWJzY3JpYmFibGUgfSBmcm9tICcuL2xpYi9zdWJzY3JpYmFibGUnO1xuIl19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export function findAndMerge(record, data) {
|
|
2
|
+
return {
|
|
3
|
+
...data.find((f) => f.id === record.id),
|
|
4
|
+
...record,
|
|
5
|
+
};
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1hbmQtbWVyZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2ltbmctbmdyeC11dGlscy9zcmMvbGliL2ZpbmQtYW5kLW1lcmdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSxZQUFZLENBQzFCLE1BQWMsRUFDZCxJQUF5QjtJQUV6QixPQUFPO1FBQ0wsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDdkMsR0FBRyxNQUFNO0tBQ1YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJZFR5cGUgfSBmcm9tICdpbW5nLW5yc3J4LWNsaWVudC11dGlscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kQW5kTWVyZ2U8RU5USVRZIGV4dGVuZHMgeyBpZD86IElkVHlwZSB9LCBDT0xMRUNUSU9OX0VOVElUWSBleHRlbmRzIHsgaWQ/OiBJZFR5cGUgfT4oXG4gIHJlY29yZDogRU5USVRZLFxuICBkYXRhOiBDT0xMRUNUSU9OX0VOVElUWVtdLFxuKTogRU5USVRZIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5kYXRhLmZpbmQoKGYpID0+IGYuaWQgPT09IHJlY29yZC5pZCksXG4gICAgLi4ucmVjb3JkLFxuICB9O1xufVxuIl19
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export function findAndModify(data, lookupId, modificationLogic) {
|
|
2
|
+
return [...data.map((m) => (m.id === lookupId ? applyChanges(m, modificationLogic) : m))];
|
|
3
|
+
}
|
|
4
|
+
function applyChanges(record, modificationLogic) {
|
|
5
|
+
const spreadRecord = { ...record };
|
|
6
|
+
modificationLogic(spreadRecord);
|
|
7
|
+
return spreadRecord;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1hbmQtbW9kaWZ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9pbW5nLW5ncngtdXRpbHMvc3JjL2xpYi9maW5kLWFuZC1tb2RpZnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxVQUFVLGFBQWEsQ0FDM0IsSUFBYyxFQUNkLFFBQWdCLEVBQ2hCLGlCQUFtRDtJQUVuRCxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM1RixDQUFDO0FBRUQsU0FBUyxZQUFZLENBQVMsTUFBYyxFQUFFLGlCQUFtRDtJQUMvRixNQUFNLFlBQVksR0FBRyxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUM7SUFDbkMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDaEMsT0FBTyxZQUFZLENBQUM7QUFDdEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElkVHlwZSB9IGZyb20gJ2ltbmctbnJzcngtY2xpZW50LXV0aWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRBbmRNb2RpZnk8RU5USVRZIGV4dGVuZHMgeyBpZD86IElkVHlwZSB9PihcbiAgZGF0YTogRU5USVRZW10sXG4gIGxvb2t1cElkOiBJZFR5cGUsXG4gIG1vZGlmaWNhdGlvbkxvZ2ljOiAobWF0Y2hpbmdSZWNvcmQ6IEVOVElUWSkgPT4gdm9pZCxcbik6IEVOVElUWVtdIHtcbiAgcmV0dXJuIFsuLi5kYXRhLm1hcCgobSkgPT4gKG0uaWQgPT09IGxvb2t1cElkID8gYXBwbHlDaGFuZ2VzKG0sIG1vZGlmaWNhdGlvbkxvZ2ljKSA6IG0pKV07XG59XG5cbmZ1bmN0aW9uIGFwcGx5Q2hhbmdlczxFTlRJVFk+KHJlY29yZDogRU5USVRZLCBtb2RpZmljYXRpb25Mb2dpYzogKG1hdGNoaW5nUmVjb3JkOiBFTlRJVFkpID0+IHZvaWQpOiBFTlRJVFkge1xuICBjb25zdCBzcHJlYWRSZWNvcmQgPSB7IC4uLnJlY29yZCB9O1xuICBtb2RpZmljYXRpb25Mb2dpYyhzcHJlYWRSZWNvcmQpO1xuICByZXR1cm4gc3ByZWFkUmVjb3JkO1xufVxuIl19
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { createAction } from '@ngrx/store';
|
|
2
|
+
// tslint:disable-next-line: typedef , doing otherwise would involve having deep imports on the @ngrx library
|
|
3
|
+
export function createPayloadAction(actionType) {
|
|
4
|
+
return createAction(actionType, (payload) => ({ payload }));
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bG9hZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvaW1uZy1uZ3J4LXV0aWxzL3NyYy9saWIvcGF5bG9hZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBTTNDLDZHQUE2RztBQUM3RyxNQUFNLFVBQVUsbUJBQW1CLENBQ2pDLFVBQWtCO0lBRWxCLE9BQU8sWUFBWSxDQUFDLFVBQVUsRUFBRSxDQUFDLE9BQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNqRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlQWN0aW9uIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBheWxvYWQ8VD4ge1xuICBwYXlsb2FkOiBUO1xufVxuXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IHR5cGVkZWYgLCBkb2luZyBvdGhlcndpc2Ugd291bGQgaW52b2x2ZSBoYXZpbmcgZGVlcCBpbXBvcnRzIG9uIHRoZSBAbmdyeCBsaWJyYXJ5XG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUGF5bG9hZEFjdGlvbjxUPihcbiAgYWN0aW9uVHlwZTogc3RyaW5nLFxuKSB7XG4gIHJldHVybiBjcmVhdGVBY3Rpb24oYWN0aW9uVHlwZSwgKHBheWxvYWQ6IFQpID0+ICh7IHBheWxvYWQgfSkpO1xufVxuIl19
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export function removeById(source, id) {
|
|
2
|
+
if (Array.isArray(source)) {
|
|
3
|
+
const result = source;
|
|
4
|
+
return result?.filter((f) => f.id !== id);
|
|
5
|
+
}
|
|
6
|
+
else if (source) {
|
|
7
|
+
const data = source.data?.filter((f) => f.id !== id);
|
|
8
|
+
return {
|
|
9
|
+
total: source.total + (data?.length - source.data?.length) || 0,
|
|
10
|
+
data,
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlLWJ5LWlkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9pbW5nLW5ncngtdXRpbHMvc3JjL2xpYi9yZW1vdmUtYnktaWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxVQUFVLFVBQVUsQ0FDeEIsTUFBZ0QsRUFDaEQsRUFBVTtJQUVWLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUN6QixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDdEIsT0FBTyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0tBQzNDO1NBQU0sSUFBSSxNQUFNLEVBQUU7UUFDakIsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDckQsT0FBTztZQUNMLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxFQUFFLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFDL0QsSUFBSTtTQUNMLENBQUM7S0FDSDtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElkVHlwZSB9IGZyb20gJ2ltbmctbnJzcngtY2xpZW50LXV0aWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUJ5SWQ8VCBleHRlbmRzIHsgaWQ/OiBJZFR5cGU7IH0+KFxuICBzb3VyY2U6IHsgZGF0YTogVFtdOyB0b3RhbDogbnVtYmVyOyB9IHwgQXJyYXk8VD4sXG4gIGlkOiBJZFR5cGUsXG4pOiB7IGRhdGE6IFRbXTsgdG90YWw6IG51bWJlcjsgfSB8IEFycmF5PFQ+IHwgbnVsbCB7XG4gIGlmIChBcnJheS5pc0FycmF5KHNvdXJjZSkpIHtcbiAgICBjb25zdCByZXN1bHQgPSBzb3VyY2U7XG4gICAgcmV0dXJuIHJlc3VsdD8uZmlsdGVyKChmKSA9PiBmLmlkICE9PSBpZCk7XG4gIH0gZWxzZSBpZiAoc291cmNlKSB7XG4gICAgY29uc3QgZGF0YSA9IHNvdXJjZS5kYXRhPy5maWx0ZXIoKGYpID0+IGYuaWQgIT09IGlkKTtcbiAgICByZXR1cm4ge1xuICAgICAgdG90YWw6IHNvdXJjZS50b3RhbCArIChkYXRhPy5sZW5ndGggLSBzb3VyY2UuZGF0YT8ubGVuZ3RoKSB8fCAwLFxuICAgICAgZGF0YSxcbiAgICB9O1xuICB9XG4gIHJldHVybiBudWxsO1xufVxuIl19
|
|
File without changes
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export class Subscriptions {
|
|
2
|
+
constructor(...items) {
|
|
3
|
+
this._subscriptions = items;
|
|
4
|
+
}
|
|
5
|
+
get length() {
|
|
6
|
+
return this._subscriptions.length;
|
|
7
|
+
}
|
|
8
|
+
push(...items) {
|
|
9
|
+
this._subscriptions.push(...items.filter((t) => t));
|
|
10
|
+
}
|
|
11
|
+
forEach(callbackfn, thisArg) {
|
|
12
|
+
this._subscriptions
|
|
13
|
+
.map((t) => t)
|
|
14
|
+
.forEach(callbackfn, thisArg);
|
|
15
|
+
}
|
|
16
|
+
unsubscribeAll() {
|
|
17
|
+
while (this._subscriptions.length > 0) {
|
|
18
|
+
const val = this._subscriptions.pop();
|
|
19
|
+
val?.unsubscribe();
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaXB0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvaW1uZy1uZ3J4LXV0aWxzL3NyYy9saWIvc3Vic2NyaXB0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sYUFBYTtJQUd4QixZQUFtQixHQUFHLEtBQXFCO1FBQ3pDLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO0lBQzlCLENBQUM7SUFDRCxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDO0lBQ3BDLENBQUM7SUFFTSxJQUFJLENBQUMsR0FBRyxLQUFtQztRQUNoRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUNNLE9BQU8sQ0FDWixVQUlTLEVBQ1QsT0FBaUI7UUFFakIsSUFBSSxDQUFDLGNBQWM7YUFDaEIsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFpQixDQUFDO2FBQzdCLE9BQU8sQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVNLGNBQWM7UUFDbkIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDckMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUN0QyxHQUFHLEVBQUUsV0FBVyxFQUFFLENBQUM7U0FDcEI7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGNsYXNzIFN1YnNjcmlwdGlvbnMge1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdWJzY3JpcHRpb25zOiAoU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkKVtdO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvciguLi5pdGVtczogU3Vic2NyaXB0aW9uW10pIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zID0gaXRlbXM7XG4gIH1cbiAgcHVibGljIGdldCBsZW5ndGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fc3Vic2NyaXB0aW9ucy5sZW5ndGg7XG4gIH1cblxuICBwdWJsaWMgcHVzaCguLi5pdGVtczogKFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZClbXSk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMucHVzaCguLi5pdGVtcy5maWx0ZXIoKHQpID0+IHQpKTtcbiAgfVxuICBwdWJsaWMgZm9yRWFjaChcbiAgICBjYWxsYmFja2ZuOiAoXG4gICAgICB2YWx1ZTogU3Vic2NyaXB0aW9uLFxuICAgICAgaW5kZXg6IG51bWJlcixcbiAgICAgIGFycmF5OiBTdWJzY3JpcHRpb25bXVxuICAgICkgPT4gdm9pZCxcbiAgICB0aGlzQXJnPzogdW5rbm93blxuICApOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zXG4gICAgICAubWFwKCh0KSA9PiB0IGFzIFN1YnNjcmlwdGlvbilcbiAgICAgIC5mb3JFYWNoKGNhbGxiYWNrZm4sIHRoaXNBcmcpO1xuICB9XG5cbiAgcHVibGljIHVuc3Vic2NyaWJlQWxsKCk6IHZvaWQge1xuICAgIHdoaWxlICh0aGlzLl9zdWJzY3JpcHRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHZhbCA9IHRoaXMuX3N1YnNjcmlwdGlvbnMucG9wKCk7XG4gICAgICB2YWw/LnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
package/{esm2015/testing/imng-ngrx-utils-testing.js → esm2020/testing/imng-ngrx-utils-testing.mjs}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Generated bundle index. Do not edit.
|
|
3
3
|
*/
|
|
4
|
-
export * from './
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1uZy1uZ3J4LXV0aWxzLXRlc3RpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2ltbmctbmdyeC11dGlscy90ZXN0aW5nL3NyYy9pbW5nLW5ncngtdXRpbHMtdGVzdGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { first, firstValueFrom, lastValueFrom, toArray } from 'rxjs';
|
|
2
|
+
export function readFirst(o) {
|
|
3
|
+
return firstValueFrom(o.pipe(first()));
|
|
4
|
+
}
|
|
5
|
+
export function readAll(o) {
|
|
6
|
+
return lastValueFrom(o.pipe(toArray()));
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2ltbmctbmdyeC11dGlscy90ZXN0aW5nL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWpGLE1BQU0sVUFBVSxTQUFTLENBQUksQ0FBZ0I7SUFDM0MsT0FBTyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDekMsQ0FBQztBQUVELE1BQU0sVUFBVSxPQUFPLENBQUksQ0FBZ0I7SUFDekMsT0FBTyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDMUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpcnN0LCBmaXJzdFZhbHVlRnJvbSwgbGFzdFZhbHVlRnJvbSwgT2JzZXJ2YWJsZSwgdG9BcnJheSB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVhZEZpcnN0PFQ+KG86IE9ic2VydmFibGU8VD4pOiBQcm9taXNlPFQ+IHtcbiAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKG8ucGlwZShmaXJzdCgpKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkQWxsPFQ+KG86IE9ic2VydmFibGU8VD4pOiBQcm9taXNlPFRbXT4ge1xuICByZXR1cm4gbGFzdFZhbHVlRnJvbShvLnBpcGUodG9BcnJheSgpKSk7XG59XG4iXX0=
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { firstValueFrom, first, lastValueFrom, toArray } from 'rxjs';
|
|
2
|
+
|
|
3
|
+
function readFirst(o) {
|
|
4
|
+
return firstValueFrom(o.pipe(first()));
|
|
5
|
+
}
|
|
6
|
+
function readAll(o) {
|
|
7
|
+
return lastValueFrom(o.pipe(toArray()));
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Generated bundle index. Do not edit.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
export { readAll, readFirst };
|
|
15
|
+
//# sourceMappingURL=imng-ngrx-utils-testing.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imng-ngrx-utils-testing.mjs","sources":["../../../../libs/imng-ngrx-utils/testing/src/index.ts","../../../../libs/imng-ngrx-utils/testing/src/imng-ngrx-utils-testing.ts"],"sourcesContent":["import { first, firstValueFrom, lastValueFrom, Observable, toArray } from 'rxjs';\n\nexport function readFirst<T>(o: Observable<T>): Promise<T> {\n return firstValueFrom(o.pipe(first()));\n}\n\nexport function readAll<T>(o: Observable<T>): Promise<T[]> {\n return lastValueFrom(o.pipe(toArray()));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAEM,SAAU,SAAS,CAAI,CAAgB,EAAA;IAC3C,OAAO,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC;AAEK,SAAU,OAAO,CAAI,CAAgB,EAAA;IACzC,OAAO,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAC1C;;ACRA;;AAEG;;;;"}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { createAction } from '@ngrx/store';
|
|
2
2
|
|
|
3
|
-
class Payload {
|
|
4
|
-
}
|
|
5
3
|
// tslint:disable-next-line: typedef , doing otherwise would involve having deep imports on the @ngrx library
|
|
6
4
|
function createPayloadAction(actionType) {
|
|
7
5
|
return createAction(actionType, (payload) => ({ payload }));
|
|
@@ -47,7 +45,7 @@ function removeById(source, id) {
|
|
|
47
45
|
const data = (_a = source.data) === null || _a === void 0 ? void 0 : _a.filter((f) => f.id !== id);
|
|
48
46
|
return {
|
|
49
47
|
total: source.total + ((data === null || data === void 0 ? void 0 : data.length) - ((_b = source.data) === null || _b === void 0 ? void 0 : _b.length)) || 0,
|
|
50
|
-
data
|
|
48
|
+
data,
|
|
51
49
|
};
|
|
52
50
|
}
|
|
53
51
|
return null;
|
|
@@ -61,10 +59,12 @@ class Subscriptions {
|
|
|
61
59
|
return this._subscriptions.length;
|
|
62
60
|
}
|
|
63
61
|
push(...items) {
|
|
64
|
-
this._subscriptions.push(...items);
|
|
62
|
+
this._subscriptions.push(...items.filter((t) => t));
|
|
65
63
|
}
|
|
66
64
|
forEach(callbackfn, thisArg) {
|
|
67
|
-
this._subscriptions
|
|
65
|
+
this._subscriptions
|
|
66
|
+
.map((t) => t)
|
|
67
|
+
.forEach(callbackfn, thisArg);
|
|
68
68
|
}
|
|
69
69
|
unsubscribeAll() {
|
|
70
70
|
while (this._subscriptions.length > 0) {
|
|
@@ -78,5 +78,5 @@ class Subscriptions {
|
|
|
78
78
|
* Generated bundle index. Do not edit.
|
|
79
79
|
*/
|
|
80
80
|
|
|
81
|
-
export {
|
|
82
|
-
//# sourceMappingURL=imng-ngrx-utils.
|
|
81
|
+
export { Subscriptions, createPayloadAction, findAndMerge, findAndModify, isFalsy, isTruthy, matchAndSpread, removeById };
|
|
82
|
+
//# sourceMappingURL=imng-ngrx-utils.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imng-ngrx-utils.mjs","sources":["../../../../libs/imng-ngrx-utils/src/lib/payload.ts","../../../../libs/imng-ngrx-utils/src/lib/isTruthy.ts","../../../../libs/imng-ngrx-utils/src/lib/find-and-modify.ts","../../../../libs/imng-ngrx-utils/src/lib/find-and-merge.ts","../../../../libs/imng-ngrx-utils/src/lib/match-and-spread.ts","../../../../libs/imng-ngrx-utils/src/lib/remove-by-id.ts","../../../../libs/imng-ngrx-utils/src/lib/subscriptions.ts","../../../../libs/imng-ngrx-utils/src/imng-ngrx-utils.ts"],"sourcesContent":["import { createAction } from '@ngrx/store';\n\nexport interface Payload<T> {\n payload: T;\n}\n\n// tslint:disable-next-line: typedef , doing otherwise would involve having deep imports on the @ngrx library\nexport function createPayloadAction<T>(\n actionType: string,\n) {\n return createAction(actionType, (payload: T) => ({ payload }));\n}\n","export function isTruthy(value: unknown): boolean {\n return !!value;\n}\n\nexport function isFalsy(value: unknown): boolean {\n return !value;\n}\n","import { IdType } from 'imng-nrsrx-client-utils';\n\nexport function findAndModify<ENTITY extends { id?: IdType }>(\n data: ENTITY[],\n lookupId: IdType,\n modificationLogic: (matchingRecord: ENTITY) => void,\n): ENTITY[] {\n return [...data.map((m) => (m.id === lookupId ? applyChanges(m, modificationLogic) : m))];\n}\n\nfunction applyChanges<ENTITY>(record: ENTITY, modificationLogic: (matchingRecord: ENTITY) => void): ENTITY {\n const spreadRecord = { ...record };\n modificationLogic(spreadRecord);\n return spreadRecord;\n}\n","import { IdType } from 'imng-nrsrx-client-utils';\n\nexport function findAndMerge<ENTITY extends { id?: IdType }, COLLECTION_ENTITY extends { id?: IdType }>(\n record: ENTITY,\n data: COLLECTION_ENTITY[],\n): ENTITY {\n return {\n ...data.find((f) => f.id === record.id),\n ...record,\n };\n}\n","import { findAndMerge } from './find-and-merge';\nimport { IdType } from 'imng-nrsrx-client-utils';\n/**\n * Spreads the objects in the dataset1, with a matching id object from the dataset2.\n * @param dataset1 The original dataset, these are the records you can expect to get back.\n * @param dataset2 This dataset will be used to augment the individuals records in dataSet1, records will be matched based on 'id'.\n * @returns dataset1\n */\nexport function matchAndSpread<ENTITY1 extends { id?: IdType }, ENTITY2 extends { id?: IdType }>(\n dataset1: ENTITY1[],\n dataset2: ENTITY2[],\n): ENTITY1[] {\n return dataset1.map((d1) => findAndMerge(d1, dataset2));\n}\n","import { IdType } from 'imng-nrsrx-client-utils';\n\nexport function removeById<T extends { id?: IdType; }>(\n source: { data: T[]; total: number; } | Array<T>,\n id: IdType,\n): { data: T[]; total: number; } | Array<T> | null {\n if (Array.isArray(source)) {\n const result = source;\n return result?.filter((f) => f.id !== id);\n } else if (source) {\n const data = source.data?.filter((f) => f.id !== id);\n return {\n total: source.total + (data?.length - source.data?.length) || 0,\n data,\n };\n }\n return null;\n}\n","import { Subscription } from 'rxjs';\n\nexport class Subscriptions {\n private readonly _subscriptions: (Subscription | undefined)[];\n\n public constructor(...items: Subscription[]) {\n this._subscriptions = items;\n }\n public get length(): number {\n return this._subscriptions.length;\n }\n\n public push(...items: (Subscription | undefined)[]): void {\n this._subscriptions.push(...items.filter((t) => t));\n }\n public forEach(\n callbackfn: (\n value: Subscription,\n index: number,\n array: Subscription[]\n ) => void,\n thisArg?: unknown\n ): void {\n this._subscriptions\n .map((t) => t as Subscription)\n .forEach(callbackfn, thisArg);\n }\n\n public unsubscribeAll(): void {\n while (this._subscriptions.length > 0) {\n const val = this._subscriptions.pop();\n val?.unsubscribe();\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { firstValueFrom, first, lastValueFrom, toArray } from 'rxjs';
|
|
2
|
+
|
|
3
|
+
function readFirst(o) {
|
|
4
|
+
return firstValueFrom(o.pipe(first()));
|
|
5
|
+
}
|
|
6
|
+
function readAll(o) {
|
|
7
|
+
return lastValueFrom(o.pipe(toArray()));
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Generated bundle index. Do not edit.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
export { readAll, readFirst };
|
|
15
|
+
//# sourceMappingURL=imng-ngrx-utils-testing.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imng-ngrx-utils-testing.mjs","sources":["../../../../libs/imng-ngrx-utils/testing/src/index.ts","../../../../libs/imng-ngrx-utils/testing/src/imng-ngrx-utils-testing.ts"],"sourcesContent":["import { first, firstValueFrom, lastValueFrom, Observable, toArray } from 'rxjs';\n\nexport function readFirst<T>(o: Observable<T>): Promise<T> {\n return firstValueFrom(o.pipe(first()));\n}\n\nexport function readAll<T>(o: Observable<T>): Promise<T[]> {\n return lastValueFrom(o.pipe(toArray()));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAEM,SAAU,SAAS,CAAI,CAAgB,EAAA;IAC3C,OAAO,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC;AAEK,SAAU,OAAO,CAAI,CAAgB,EAAA;IACzC,OAAO,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAC1C;;ACRA;;AAEG;;;;"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { createAction } from '@ngrx/store';
|
|
2
|
+
|
|
3
|
+
// tslint:disable-next-line: typedef , doing otherwise would involve having deep imports on the @ngrx library
|
|
4
|
+
function createPayloadAction(actionType) {
|
|
5
|
+
return createAction(actionType, (payload) => ({ payload }));
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
function isTruthy(value) {
|
|
9
|
+
return !!value;
|
|
10
|
+
}
|
|
11
|
+
function isFalsy(value) {
|
|
12
|
+
return !value;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
function findAndModify(data, lookupId, modificationLogic) {
|
|
16
|
+
return [...data.map((m) => (m.id === lookupId ? applyChanges(m, modificationLogic) : m))];
|
|
17
|
+
}
|
|
18
|
+
function applyChanges(record, modificationLogic) {
|
|
19
|
+
const spreadRecord = { ...record };
|
|
20
|
+
modificationLogic(spreadRecord);
|
|
21
|
+
return spreadRecord;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function findAndMerge(record, data) {
|
|
25
|
+
return {
|
|
26
|
+
...data.find((f) => f.id === record.id),
|
|
27
|
+
...record,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Spreads the objects in the dataset1, with a matching id object from the dataset2.
|
|
33
|
+
* @param dataset1 The original dataset, these are the records you can expect to get back.
|
|
34
|
+
* @param dataset2 This dataset will be used to augment the individuals records in dataSet1, records will be matched based on 'id'.
|
|
35
|
+
* @returns dataset1
|
|
36
|
+
*/
|
|
37
|
+
function matchAndSpread(dataset1, dataset2) {
|
|
38
|
+
return dataset1.map((d1) => findAndMerge(d1, dataset2));
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function removeById(source, id) {
|
|
42
|
+
if (Array.isArray(source)) {
|
|
43
|
+
const result = source;
|
|
44
|
+
return result?.filter((f) => f.id !== id);
|
|
45
|
+
}
|
|
46
|
+
else if (source) {
|
|
47
|
+
const data = source.data?.filter((f) => f.id !== id);
|
|
48
|
+
return {
|
|
49
|
+
total: source.total + (data?.length - source.data?.length) || 0,
|
|
50
|
+
data,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
class Subscriptions {
|
|
57
|
+
constructor(...items) {
|
|
58
|
+
this._subscriptions = items;
|
|
59
|
+
}
|
|
60
|
+
get length() {
|
|
61
|
+
return this._subscriptions.length;
|
|
62
|
+
}
|
|
63
|
+
push(...items) {
|
|
64
|
+
this._subscriptions.push(...items.filter((t) => t));
|
|
65
|
+
}
|
|
66
|
+
forEach(callbackfn, thisArg) {
|
|
67
|
+
this._subscriptions
|
|
68
|
+
.map((t) => t)
|
|
69
|
+
.forEach(callbackfn, thisArg);
|
|
70
|
+
}
|
|
71
|
+
unsubscribeAll() {
|
|
72
|
+
while (this._subscriptions.length > 0) {
|
|
73
|
+
const val = this._subscriptions.pop();
|
|
74
|
+
val?.unsubscribe();
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Generated bundle index. Do not edit.
|
|
81
|
+
*/
|
|
82
|
+
|
|
83
|
+
export { Subscriptions, createPayloadAction, findAndMerge, findAndModify, isFalsy, isTruthy, matchAndSpread, removeById };
|
|
84
|
+
//# sourceMappingURL=imng-ngrx-utils.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imng-ngrx-utils.mjs","sources":["../../../../libs/imng-ngrx-utils/src/lib/payload.ts","../../../../libs/imng-ngrx-utils/src/lib/isTruthy.ts","../../../../libs/imng-ngrx-utils/src/lib/find-and-modify.ts","../../../../libs/imng-ngrx-utils/src/lib/find-and-merge.ts","../../../../libs/imng-ngrx-utils/src/lib/match-and-spread.ts","../../../../libs/imng-ngrx-utils/src/lib/remove-by-id.ts","../../../../libs/imng-ngrx-utils/src/lib/subscriptions.ts","../../../../libs/imng-ngrx-utils/src/imng-ngrx-utils.ts"],"sourcesContent":["import { createAction } from '@ngrx/store';\n\nexport interface Payload<T> {\n payload: T;\n}\n\n// tslint:disable-next-line: typedef , doing otherwise would involve having deep imports on the @ngrx library\nexport function createPayloadAction<T>(\n actionType: string,\n) {\n return createAction(actionType, (payload: T) => ({ payload }));\n}\n","export function isTruthy(value: unknown): boolean {\n return !!value;\n}\n\nexport function isFalsy(value: unknown): boolean {\n return !value;\n}\n","import { IdType } from 'imng-nrsrx-client-utils';\n\nexport function findAndModify<ENTITY extends { id?: IdType }>(\n data: ENTITY[],\n lookupId: IdType,\n modificationLogic: (matchingRecord: ENTITY) => void,\n): ENTITY[] {\n return [...data.map((m) => (m.id === lookupId ? applyChanges(m, modificationLogic) : m))];\n}\n\nfunction applyChanges<ENTITY>(record: ENTITY, modificationLogic: (matchingRecord: ENTITY) => void): ENTITY {\n const spreadRecord = { ...record };\n modificationLogic(spreadRecord);\n return spreadRecord;\n}\n","import { IdType } from 'imng-nrsrx-client-utils';\n\nexport function findAndMerge<ENTITY extends { id?: IdType }, COLLECTION_ENTITY extends { id?: IdType }>(\n record: ENTITY,\n data: COLLECTION_ENTITY[],\n): ENTITY {\n return {\n ...data.find((f) => f.id === record.id),\n ...record,\n };\n}\n","import { findAndMerge } from './find-and-merge';\nimport { IdType } from 'imng-nrsrx-client-utils';\n/**\n * Spreads the objects in the dataset1, with a matching id object from the dataset2.\n * @param dataset1 The original dataset, these are the records you can expect to get back.\n * @param dataset2 This dataset will be used to augment the individuals records in dataSet1, records will be matched based on 'id'.\n * @returns dataset1\n */\nexport function matchAndSpread<ENTITY1 extends { id?: IdType }, ENTITY2 extends { id?: IdType }>(\n dataset1: ENTITY1[],\n dataset2: ENTITY2[],\n): ENTITY1[] {\n return dataset1.map((d1) => findAndMerge(d1, dataset2));\n}\n","import { IdType } from 'imng-nrsrx-client-utils';\n\nexport function removeById<T extends { id?: IdType; }>(\n source: { data: T[]; total: number; } | Array<T>,\n id: IdType,\n): { data: T[]; total: number; } | Array<T> | null {\n if (Array.isArray(source)) {\n const result = source;\n return result?.filter((f) => f.id !== id);\n } else if (source) {\n const data = source.data?.filter((f) => f.id !== id);\n return {\n total: source.total + (data?.length - source.data?.length) || 0,\n data,\n };\n }\n return null;\n}\n","import { Subscription } from 'rxjs';\n\nexport class Subscriptions {\n private readonly _subscriptions: (Subscription | undefined)[];\n\n public constructor(...items: Subscription[]) {\n this._subscriptions = items;\n }\n public get length(): number {\n return this._subscriptions.length;\n }\n\n public push(...items: (Subscription | undefined)[]): void {\n this._subscriptions.push(...items.filter((t) => t));\n }\n public forEach(\n callbackfn: (\n value: Subscription,\n index: number,\n array: Subscription[]\n ) => void,\n thisArg?: unknown\n ): void {\n this._subscriptions\n .map((t) => t as Subscription)\n .forEach(callbackfn, thisArg);\n }\n\n public unsubscribeAll(): void {\n while (this._subscriptions.length > 0) {\n const val = this._subscriptions.pop();\n val?.unsubscribe();\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/imng-ngrx-utils.d.ts
CHANGED
package/index.d.ts
CHANGED
package/lib/find-and-merge.d.ts
CHANGED
package/lib/find-and-modify.d.ts
CHANGED
package/lib/isTruthy.d.ts
CHANGED
package/lib/payload.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
export
|
|
1
|
+
export interface Payload<T> {
|
|
2
2
|
payload: T;
|
|
3
3
|
}
|
|
4
4
|
export declare function createPayloadAction<T>(actionType: string): import("@ngrx/store").FunctionWithParametersType<[payload: T], {
|
|
5
5
|
payload: T;
|
|
6
6
|
} & import("@ngrx/store/src/models").TypedAction<string>> & import("@ngrx/store/src/models").TypedAction<string>;
|
|
7
|
-
//# sourceMappingURL=payload.d.ts.map
|
package/lib/remove-by-id.d.ts
CHANGED
package/lib/subscribable.d.ts
CHANGED
package/lib/subscriptions.d.ts
CHANGED
|
@@ -3,8 +3,7 @@ export declare class Subscriptions {
|
|
|
3
3
|
private readonly _subscriptions;
|
|
4
4
|
constructor(...items: Subscription[]);
|
|
5
5
|
get length(): number;
|
|
6
|
-
push(...items: Subscription[]): void;
|
|
6
|
+
push(...items: (Subscription | undefined)[]): void;
|
|
7
7
|
forEach(callbackfn: (value: Subscription, index: number, array: Subscription[]) => void, thisArg?: unknown): void;
|
|
8
8
|
unsubscribeAll(): void;
|
|
9
9
|
}
|
|
10
|
-
//# sourceMappingURL=subscriptions.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,34 +1,57 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "imng-ngrx-utils",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.102.13",
|
|
4
|
+
"keywords": [
|
|
5
|
+
"Angular",
|
|
6
|
+
"NGRX"
|
|
7
|
+
],
|
|
4
8
|
"peerDependencies": {
|
|
5
|
-
"@
|
|
6
|
-
"@
|
|
9
|
+
"@angular/common": ">=13.x",
|
|
10
|
+
"@angular/core": ">=13.x",
|
|
11
|
+
"@ngrx/store": ">=13.x",
|
|
12
|
+
"imng-nrsrx-client-utils": "*",
|
|
13
|
+
"rxjs": "*"
|
|
7
14
|
},
|
|
8
15
|
"dependencies": {
|
|
9
|
-
|
|
10
|
-
"imng-nrsrx-client-utils": "4.62.1",
|
|
11
|
-
"@angular/common": "12.2.11",
|
|
12
|
-
"rxjs": "^6.6.7",
|
|
13
|
-
"@angular/core": "12.2.11",
|
|
14
|
-
"@nrwl/angular": "13.0.1"
|
|
16
|
+
"tslib": "^2.3.0"
|
|
15
17
|
},
|
|
18
|
+
"license": "MIT",
|
|
16
19
|
"repository": {
|
|
17
20
|
"type": "git",
|
|
18
21
|
"url": "https://github.com/ikemtz/AngularMonoRepo.git"
|
|
19
22
|
},
|
|
20
23
|
"icon": "https://avatars.githubusercontent.com/u/6444182?v=4",
|
|
21
|
-
"license": "MIT",
|
|
22
24
|
"private": false,
|
|
23
25
|
"author": {
|
|
24
26
|
"name": "Isaac Martinez <@ikemtz>",
|
|
25
27
|
"url": "https://github.com/ikemtz"
|
|
26
28
|
},
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"fesm2015": "fesm2015/imng-ngrx-utils.
|
|
29
|
+
"module": "fesm2015/imng-ngrx-utils.mjs",
|
|
30
|
+
"es2020": "fesm2020/imng-ngrx-utils.mjs",
|
|
31
|
+
"esm2020": "esm2020/imng-ngrx-utils.mjs",
|
|
32
|
+
"fesm2020": "fesm2020/imng-ngrx-utils.mjs",
|
|
33
|
+
"fesm2015": "fesm2015/imng-ngrx-utils.mjs",
|
|
32
34
|
"typings": "imng-ngrx-utils.d.ts",
|
|
35
|
+
"exports": {
|
|
36
|
+
"./package.json": {
|
|
37
|
+
"default": "./package.json"
|
|
38
|
+
},
|
|
39
|
+
".": {
|
|
40
|
+
"types": "./imng-ngrx-utils.d.ts",
|
|
41
|
+
"esm2020": "./esm2020/imng-ngrx-utils.mjs",
|
|
42
|
+
"es2020": "./fesm2020/imng-ngrx-utils.mjs",
|
|
43
|
+
"es2015": "./fesm2015/imng-ngrx-utils.mjs",
|
|
44
|
+
"node": "./fesm2015/imng-ngrx-utils.mjs",
|
|
45
|
+
"default": "./fesm2020/imng-ngrx-utils.mjs"
|
|
46
|
+
},
|
|
47
|
+
"./testing": {
|
|
48
|
+
"types": "./testing/imng-ngrx-utils-testing.d.ts",
|
|
49
|
+
"esm2020": "./esm2020/testing/imng-ngrx-utils-testing.mjs",
|
|
50
|
+
"es2020": "./fesm2020/imng-ngrx-utils-testing.mjs",
|
|
51
|
+
"es2015": "./fesm2015/imng-ngrx-utils-testing.mjs",
|
|
52
|
+
"node": "./fesm2015/imng-ngrx-utils-testing.mjs",
|
|
53
|
+
"default": "./fesm2020/imng-ngrx-utils-testing.mjs"
|
|
54
|
+
}
|
|
55
|
+
},
|
|
33
56
|
"sideEffects": false
|
|
34
|
-
}
|
|
57
|
+
}
|
package/testing/index.d.ts
CHANGED
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
*
|
|
5
|
-
*/
|
|
6
|
-
export { readAll, readFirst } from '@nrwl/angular/testing/src/testing-utils';
|
|
7
|
-
//# sourceMappingURL=index.d.ts.map
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
export declare function readFirst<T>(o: Observable<T>): Promise<T>;
|
|
3
|
+
export declare function readAll<T>(o: Observable<T>): Promise<T[]>;
|
package/testing/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
"
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
"fesm2015": "../fesm2015/imng-ngrx-utils-testing.
|
|
2
|
+
"module": "../fesm2015/imng-ngrx-utils-testing.mjs",
|
|
3
|
+
"es2020": "../fesm2020/imng-ngrx-utils-testing.mjs",
|
|
4
|
+
"esm2020": "../esm2020/testing/imng-ngrx-utils-testing.mjs",
|
|
5
|
+
"fesm2020": "../fesm2020/imng-ngrx-utils-testing.mjs",
|
|
6
|
+
"fesm2015": "../fesm2015/imng-ngrx-utils-testing.mjs",
|
|
7
7
|
"typings": "imng-ngrx-utils-testing.d.ts",
|
|
8
8
|
"sideEffects": false,
|
|
9
9
|
"name": "imng-ngrx-utils/testing"
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@nrwl/angular/testing/src/testing-utils')) :
|
|
3
|
-
typeof define === 'function' && define.amd ? define('imng-ngrx-utils/testing', ['exports', '@nrwl/angular/testing/src/testing-utils'], factory) :
|
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global["imng-ngrx-utils"] = global["imng-ngrx-utils"] || {}, global["imng-ngrx-utils"].testing = {}), global.testingUtils));
|
|
5
|
-
})(this, (function (exports, testingUtils) { 'use strict';
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* This was introduced due to breaking changes in Jest@27
|
|
9
|
-
* Issue Link: https://github.com/nrwl/nx/issues/5716#issuecomment-864705809
|
|
10
|
-
*
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Generated bundle index. Do not edit.
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
Object.defineProperty(exports, 'readAll', {
|
|
18
|
-
enumerable: true,
|
|
19
|
-
get: function () { return testingUtils.readAll; }
|
|
20
|
-
});
|
|
21
|
-
Object.defineProperty(exports, 'readFirst', {
|
|
22
|
-
enumerable: true,
|
|
23
|
-
get: function () { return testingUtils.readFirst; }
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
27
|
-
|
|
28
|
-
}));
|
|
29
|
-
//# sourceMappingURL=imng-ngrx-utils-testing.umd.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"imng-ngrx-utils-testing.umd.js","sources":["../../../../libs/imng-ngrx-utils/testing/src/index.ts","../../../../libs/imng-ngrx-utils/testing/src/imng-ngrx-utils-testing.ts"],"sourcesContent":["/**\n * This was introduced due to breaking changes in Jest@27\n * Issue Link: https://github.com/nrwl/nx/issues/5716#issuecomment-864705809\n * \n */\n\nexport { readAll, readFirst } from '@nrwl/angular/testing/src/testing-utils';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;CAAA;;;;;;CCAA;;;;;;;;;;;;;;;;;;;"}
|