@ngxs/store 3.7.6-dev.master-4d7e301 → 3.7.6-dev.master-94b06c2
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/bundles/ngxs-store.umd.js +85 -0
- package/bundles/ngxs-store.umd.js.map +1 -1
- package/esm2015/src/public_api.js +5 -4
- package/esm2015/src/selectors/create-model-selector.js +28 -0
- package/esm2015/src/selectors/create-pick-selector.js +14 -0
- package/esm2015/src/selectors/create-property-selectors.js +18 -0
- package/esm2015/src/selectors/index.js +5 -0
- package/esm2015/src/selectors/selector-checks.util.js +18 -0
- package/esm2015/src/selectors/selector-types.util.js +2 -0
- package/fesm2015/ngxs-store.js +72 -1
- package/fesm2015/ngxs-store.js.map +1 -1
- package/package.json +1 -1
- package/src/public_api.d.ts +4 -3
- package/src/selectors/create-model-selector.d.ts +10 -0
- package/src/selectors/create-pick-selector.d.ts +6 -0
- package/src/selectors/create-property-selectors.d.ts +5 -0
- package/src/selectors/index.d.ts +4 -0
- package/src/selectors/selector-checks.util.d.ts +9 -0
- package/src/selectors/selector-types.util.d.ts +7 -0
|
@@ -2767,6 +2767,88 @@
|
|
|
2767
2767
|
type: i0.NgModule
|
|
2768
2768
|
}] });
|
|
2769
2769
|
|
|
2770
|
+
function ensureValidSelector(selector, context) {
|
|
2771
|
+
if (context === void 0) { context = {}; }
|
|
2772
|
+
var noun = context.noun || 'selector';
|
|
2773
|
+
var prefix = context.prefix ? context.prefix + ': ' : '';
|
|
2774
|
+
ensureValueProvided(selector, { noun: noun, prefix: context.prefix });
|
|
2775
|
+
var metadata = getSelectorMetadata$1(selector) || getStoreMetadata$1(selector);
|
|
2776
|
+
if (!metadata) {
|
|
2777
|
+
throw new Error(prefix + "The value provided as the " + noun + " is not a valid selector.");
|
|
2778
|
+
}
|
|
2779
|
+
}
|
|
2780
|
+
function ensureValueProvided(value, context) {
|
|
2781
|
+
if (context === void 0) { context = {}; }
|
|
2782
|
+
var noun = context.noun || 'value';
|
|
2783
|
+
var prefix = context.prefix ? context.prefix + ': ' : '';
|
|
2784
|
+
if (!value) {
|
|
2785
|
+
throw new Error(prefix + "A " + noun + " must be provided.");
|
|
2786
|
+
}
|
|
2787
|
+
}
|
|
2788
|
+
|
|
2789
|
+
function createModelSelector(selectorMap) {
|
|
2790
|
+
var selectorKeys = Object.keys(selectorMap);
|
|
2791
|
+
var selectors = Object.values(selectorMap);
|
|
2792
|
+
ensureValidSelectorMap({
|
|
2793
|
+
prefix: '[createModelSelector]',
|
|
2794
|
+
selectorMap: selectorMap,
|
|
2795
|
+
selectorKeys: selectorKeys,
|
|
2796
|
+
selectors: selectors,
|
|
2797
|
+
});
|
|
2798
|
+
return createSelector(selectors, function () {
|
|
2799
|
+
var args = [];
|
|
2800
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
2801
|
+
args[_i] = arguments[_i];
|
|
2802
|
+
}
|
|
2803
|
+
return selectorKeys.reduce(function (obj, key, index) {
|
|
2804
|
+
obj[key] = args[index];
|
|
2805
|
+
return obj;
|
|
2806
|
+
}, {});
|
|
2807
|
+
});
|
|
2808
|
+
}
|
|
2809
|
+
function ensureValidSelectorMap(_a) {
|
|
2810
|
+
var prefix = _a.prefix, selectorMap = _a.selectorMap, selectorKeys = _a.selectorKeys, selectors = _a.selectors;
|
|
2811
|
+
ensureValueProvided(selectorMap, { prefix: prefix, noun: 'selector map' });
|
|
2812
|
+
ensureValueProvided(typeof selectorMap === 'object', { prefix: prefix, noun: 'valid selector map' });
|
|
2813
|
+
ensureValueProvided(selectorKeys.length, { prefix: prefix, noun: 'non-empty selector map' });
|
|
2814
|
+
selectors.forEach(function (selector, index) { return ensureValidSelector(selector, {
|
|
2815
|
+
prefix: prefix,
|
|
2816
|
+
noun: "selector for the '" + selectorKeys[index] + "' property",
|
|
2817
|
+
}); });
|
|
2818
|
+
}
|
|
2819
|
+
|
|
2820
|
+
function createPickSelector(selector, keys) {
|
|
2821
|
+
ensureValidSelector(selector, { prefix: '[createPickSelector]' });
|
|
2822
|
+
var validKeys = keys.filter(Boolean);
|
|
2823
|
+
var selectors = validKeys.map(function (key) { return createSelector([selector], function (s) { return s[key]; }); });
|
|
2824
|
+
return createSelector(__spreadArray([], __read(selectors)), function () {
|
|
2825
|
+
var props = [];
|
|
2826
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
2827
|
+
props[_i] = arguments[_i];
|
|
2828
|
+
}
|
|
2829
|
+
return validKeys.reduce(function (acc, key, index) {
|
|
2830
|
+
acc[key] = props[index];
|
|
2831
|
+
return acc;
|
|
2832
|
+
}, {});
|
|
2833
|
+
});
|
|
2834
|
+
}
|
|
2835
|
+
|
|
2836
|
+
function createPropertySelectors(parentSelector) {
|
|
2837
|
+
ensureValidSelector(parentSelector, {
|
|
2838
|
+
prefix: '[createPropertySelectors]',
|
|
2839
|
+
noun: 'parent selector',
|
|
2840
|
+
});
|
|
2841
|
+
var cache = {};
|
|
2842
|
+
return new Proxy({}, {
|
|
2843
|
+
get: function (_target, prop) {
|
|
2844
|
+
var selector = cache[prop] ||
|
|
2845
|
+
createSelector([parentSelector], function (s) { return s === null || s === void 0 ? void 0 : s[prop]; });
|
|
2846
|
+
cache[prop] = selector;
|
|
2847
|
+
return selector;
|
|
2848
|
+
},
|
|
2849
|
+
});
|
|
2850
|
+
}
|
|
2851
|
+
|
|
2770
2852
|
/**
|
|
2771
2853
|
* The public api for consumers of @ngxs/store
|
|
2772
2854
|
*/
|
|
@@ -2793,6 +2875,9 @@
|
|
|
2793
2875
|
exports.Store = Store;
|
|
2794
2876
|
exports.UpdateState = UpdateState;
|
|
2795
2877
|
exports.actionMatcher = actionMatcher;
|
|
2878
|
+
exports.createModelSelector = createModelSelector;
|
|
2879
|
+
exports.createPickSelector = createPickSelector;
|
|
2880
|
+
exports.createPropertySelectors = createPropertySelectors;
|
|
2796
2881
|
exports.createSelector = createSelector;
|
|
2797
2882
|
exports.ensureSelectorMetadata = ensureSelectorMetadata;
|
|
2798
2883
|
exports.ensureStoreMetadata = ensureStoreMetadata;
|