@sima-land/isomorph 11.0.0-alpha.61 → 11.0.0-alpha.62

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.
@@ -3,6 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ Object.defineProperty(exports, "createCurriedSelector", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _createCurriedSelector.createCurriedSelector;
10
+ }
11
+ });
6
12
  Object.defineProperty(exports, "safetyAsync", {
7
13
  enumerable: true,
8
14
  get: function () {
@@ -17,4 +23,5 @@ Object.defineProperty(exports, "toMilliseconds", {
17
23
  });
18
24
  var _function = require("./function");
19
25
  var _math = require("./math");
26
+ var _createCurriedSelector = require("./selectors/create-curried-selector");
20
27
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_function","require","_math"],"sources":["../../../src/utils/index.ts"],"sourcesContent":["export { safetyAsync, type SafetyInfo } from './function';\nexport { toMilliseconds } from './math';\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA"}
1
+ {"version":3,"file":"index.js","names":["_function","require","_math","_createCurriedSelector"],"sources":["../../../src/utils/index.ts"],"sourcesContent":["export { safetyAsync, type SafetyInfo } from './function';\nexport { toMilliseconds } from './math';\nexport { createCurriedSelector } from './selectors/create-curried-selector'\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,sBAAA,GAAAF,OAAA"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createCurriedSelector = void 0;
7
+ var _reselect = require("reselect");
8
+ var _reactRedux = require("react-redux");
9
+ /**
10
+ * Опции для включения внутреннего кэша,
11
+ * чтобы селектор с параметрами запоминал вычисления при смене значения параметра.
12
+ */
13
+ const MEMOIZE_OPTIONS = {
14
+ equalityCheck: _reactRedux.shallowEqual,
15
+ resultEqualityCheck: _reactRedux.shallowEqual,
16
+ maxSize: 10
17
+ };
18
+ const createCashedSelector = (0, _reselect.createSelectorCreator)(_reselect.defaultMemoize, MEMOIZE_OPTIONS);
19
+
20
+ /**
21
+ * Возвращает каррированную версию селектора.
22
+ * По мотивам https://reselect.js.org/FAQ#how-can-i-make-a-curried-selector.
23
+ * @param selector Исходный селектор.
24
+ * @return Каррированный селектор.
25
+ */
26
+ const currySelector = selector => {
27
+ /** @inheritdoc */
28
+ const curriedSelector = (...args) => state => selector(state, ...args);
29
+ return Object.assign(curriedSelector, selector, {
30
+ uncurried: selector
31
+ });
32
+ };
33
+
34
+ /**
35
+ * Тот же createSelector, но возвращает каррированный селектор с кэшем параметров.
36
+ * По мотивам https://reselect.js.org/FAQ#how-can-i-make-a-curried-selector.
37
+ * @inheritdoc
38
+ */
39
+ const createCurriedSelector = (...args) => currySelector(createCashedSelector(...args));
40
+ exports.createCurriedSelector = createCurriedSelector;
41
+ //# sourceMappingURL=create-curried-selector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-curried-selector.js","names":["_reselect","require","_reactRedux","MEMOIZE_OPTIONS","equalityCheck","shallowEqual","resultEqualityCheck","maxSize","createCashedSelector","createSelectorCreator","defaultMemoize","currySelector","selector","curriedSelector","args","state","Object","assign","uncurried","createCurriedSelector","exports"],"sources":["../../../../src/utils/selectors/create-curried-selector.ts"],"sourcesContent":["import {\n createSelectorCreator,\n defaultMemoize,\n createSelector,\n Selector,\n GetStateFromSelectors,\n GetParamsFromSelectors,\n} from 'reselect';\nimport { shallowEqual } from 'react-redux';\n\n/**\n * Опции для включения внутреннего кэша,\n * чтобы селектор с параметрами запоминал вычисления при смене значения параметра.\n */\nconst MEMOIZE_OPTIONS = {\n equalityCheck: shallowEqual,\n resultEqualityCheck: shallowEqual,\n maxSize: 10,\n};\n\nconst createCashedSelector = createSelectorCreator(defaultMemoize, MEMOIZE_OPTIONS);\n\n/**\n * Возвращает каррированную версию селектора.\n * По мотивам https://reselect.js.org/FAQ#how-can-i-make-a-curried-selector.\n * @param selector Исходный селектор.\n * @return Каррированный селектор.\n */\nconst currySelector = <\n State extends GetStateFromSelectors<InputSelectors>,\n Result,\n Params extends GetParamsFromSelectors<InputSelectors>,\n InputSelectors extends Selector[],\n AdditionalFields,\n>(\n selector: ReturnType<typeof createSelector<InputSelectors, Result>> & AdditionalFields,\n) => {\n /** @inheritdoc */\n const curriedSelector =\n (...args: Params) =>\n (state: State) =>\n selector(state, ...args);\n return Object.assign(curriedSelector, selector, { uncurried: selector });\n};\n\n/**\n * Тот же createSelector, но возвращает каррированный селектор с кэшем параметров.\n * По мотивам https://reselect.js.org/FAQ#how-can-i-make-a-curried-selector.\n * @inheritdoc\n */\nexport const createCurriedSelector = <InputSelectors extends Selector[], Result>(\n ...args: Parameters<typeof createSelector<InputSelectors, Result>>\n) => currySelector(createCashedSelector(...args));\n"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAQA,IAAAC,WAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA,MAAME,eAAe,GAAG;EACtBC,aAAa,EAAEC,wBAAY;EAC3BC,mBAAmB,EAAED,wBAAY;EACjCE,OAAO,EAAE;AACX,CAAC;AAED,MAAMC,oBAAoB,GAAG,IAAAC,+BAAqB,EAACC,wBAAc,EAAEP,eAAe,CAAC;;AAEnF;AACA;AACA;AACA;AACA;AACA;AACA,MAAMQ,aAAa,GAOjBC,QAAsF,IACnF;EACH;EACA,MAAMC,eAAe,GACnBA,CAAC,GAAGC,IAAY,KACfC,KAAY,IACXH,QAAQ,CAACG,KAAK,EAAE,GAAGD,IAAI,CAAC;EAC5B,OAAOE,MAAM,CAACC,MAAM,CAACJ,eAAe,EAAED,QAAQ,EAAE;IAAEM,SAAS,EAAEN;EAAS,CAAC,CAAC;AAC1E,CAAC;;AAED;AACA;AACA;AACA;AACA;AACO,MAAMO,qBAAqB,GAAGA,CACnC,GAAGL,IAA+D,KAC/DH,aAAa,CAACH,oBAAoB,CAAC,GAAGM,IAAI,CAAC,CAAC;AAACM,OAAA,CAAAD,qBAAA,GAAAA,qBAAA"}
@@ -1,3 +1,4 @@
1
1
  export { safetyAsync } from "./function.js";
2
2
  export { toMilliseconds } from "./math.js";
3
+ export { createCurriedSelector } from "./selectors/create-curried-selector.js";
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["safetyAsync","toMilliseconds"],"sources":["../../../src/utils/index.ts"],"sourcesContent":["export { safetyAsync, type SafetyInfo } from './function';\nexport { toMilliseconds } from './math';\n"],"mappings":"AAAA,SAASA,WAAW,QAAyB,eAAY;AACzD,SAASC,cAAc,QAAQ,WAAQ"}
1
+ {"version":3,"file":"index.js","names":["safetyAsync","toMilliseconds","createCurriedSelector"],"sources":["../../../src/utils/index.ts"],"sourcesContent":["export { safetyAsync, type SafetyInfo } from './function';\nexport { toMilliseconds } from './math';\nexport { createCurriedSelector } from './selectors/create-curried-selector'\n"],"mappings":"AAAA,SAASA,WAAW,QAAyB,eAAY;AACzD,SAASC,cAAc,QAAQ,WAAQ;AACvC,SAASC,qBAAqB,QAAQ,wCAAqC"}
@@ -0,0 +1,35 @@
1
+ import { createSelectorCreator, defaultMemoize } from 'reselect';
2
+ import { shallowEqual } from 'react-redux';
3
+
4
+ /**
5
+ * Опции для включения внутреннего кэша,
6
+ * чтобы селектор с параметрами запоминал вычисления при смене значения параметра.
7
+ */
8
+ const MEMOIZE_OPTIONS = {
9
+ equalityCheck: shallowEqual,
10
+ resultEqualityCheck: shallowEqual,
11
+ maxSize: 10
12
+ };
13
+ const createCashedSelector = createSelectorCreator(defaultMemoize, MEMOIZE_OPTIONS);
14
+
15
+ /**
16
+ * Возвращает каррированную версию селектора.
17
+ * По мотивам https://reselect.js.org/FAQ#how-can-i-make-a-curried-selector.
18
+ * @param selector Исходный селектор.
19
+ * @return Каррированный селектор.
20
+ */
21
+ const currySelector = selector => {
22
+ /** @inheritdoc */
23
+ const curriedSelector = (...args) => state => selector(state, ...args);
24
+ return Object.assign(curriedSelector, selector, {
25
+ uncurried: selector
26
+ });
27
+ };
28
+
29
+ /**
30
+ * Тот же createSelector, но возвращает каррированный селектор с кэшем параметров.
31
+ * По мотивам https://reselect.js.org/FAQ#how-can-i-make-a-curried-selector.
32
+ * @inheritdoc
33
+ */
34
+ export const createCurriedSelector = (...args) => currySelector(createCashedSelector(...args));
35
+ //# sourceMappingURL=create-curried-selector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-curried-selector.js","names":["createSelectorCreator","defaultMemoize","shallowEqual","MEMOIZE_OPTIONS","equalityCheck","resultEqualityCheck","maxSize","createCashedSelector","currySelector","selector","curriedSelector","args","state","Object","assign","uncurried","createCurriedSelector"],"sources":["../../../../src/utils/selectors/create-curried-selector.ts"],"sourcesContent":["import {\n createSelectorCreator,\n defaultMemoize,\n createSelector,\n Selector,\n GetStateFromSelectors,\n GetParamsFromSelectors,\n} from 'reselect';\nimport { shallowEqual } from 'react-redux';\n\n/**\n * Опции для включения внутреннего кэша,\n * чтобы селектор с параметрами запоминал вычисления при смене значения параметра.\n */\nconst MEMOIZE_OPTIONS = {\n equalityCheck: shallowEqual,\n resultEqualityCheck: shallowEqual,\n maxSize: 10,\n};\n\nconst createCashedSelector = createSelectorCreator(defaultMemoize, MEMOIZE_OPTIONS);\n\n/**\n * Возвращает каррированную версию селектора.\n * По мотивам https://reselect.js.org/FAQ#how-can-i-make-a-curried-selector.\n * @param selector Исходный селектор.\n * @return Каррированный селектор.\n */\nconst currySelector = <\n State extends GetStateFromSelectors<InputSelectors>,\n Result,\n Params extends GetParamsFromSelectors<InputSelectors>,\n InputSelectors extends Selector[],\n AdditionalFields,\n>(\n selector: ReturnType<typeof createSelector<InputSelectors, Result>> & AdditionalFields,\n) => {\n /** @inheritdoc */\n const curriedSelector =\n (...args: Params) =>\n (state: State) =>\n selector(state, ...args);\n return Object.assign(curriedSelector, selector, { uncurried: selector });\n};\n\n/**\n * Тот же createSelector, но возвращает каррированный селектор с кэшем параметров.\n * По мотивам https://reselect.js.org/FAQ#how-can-i-make-a-curried-selector.\n * @inheritdoc\n */\nexport const createCurriedSelector = <InputSelectors extends Selector[], Result>(\n ...args: Parameters<typeof createSelector<InputSelectors, Result>>\n) => currySelector(createCashedSelector(...args));\n"],"mappings":"AAAA,SACEA,qBAAqB,EACrBC,cAAc,QAKT,UAAU;AACjB,SAASC,YAAY,QAAQ,aAAa;;AAE1C;AACA;AACA;AACA;AACA,MAAMC,eAAe,GAAG;EACtBC,aAAa,EAAEF,YAAY;EAC3BG,mBAAmB,EAAEH,YAAY;EACjCI,OAAO,EAAE;AACX,CAAC;AAED,MAAMC,oBAAoB,GAAGP,qBAAqB,CAACC,cAAc,EAAEE,eAAe,CAAC;;AAEnF;AACA;AACA;AACA;AACA;AACA;AACA,MAAMK,aAAa,GAOjBC,QAAsF,IACnF;EACH;EACA,MAAMC,eAAe,GACnBA,CAAC,GAAGC,IAAY,KACfC,KAAY,IACXH,QAAQ,CAACG,KAAK,EAAE,GAAGD,IAAI,CAAC;EAC5B,OAAOE,MAAM,CAACC,MAAM,CAACJ,eAAe,EAAED,QAAQ,EAAE;IAAEM,SAAS,EAAEN;EAAS,CAAC,CAAC;AAC1E,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMO,qBAAqB,GAAGA,CACnC,GAAGL,IAA+D,KAC/DH,aAAa,CAACD,oBAAoB,CAAC,GAAGI,IAAI,CAAC,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export { safetyAsync, type SafetyInfo } from './function';
2
2
  export { toMilliseconds } from './math';
3
+ export { createCurriedSelector } from './selectors/create-curried-selector';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAA"}
@@ -0,0 +1,22 @@
1
+ import { Selector, GetStateFromSelectors } from 'reselect';
2
+ /**
3
+ * Тот же createSelector, но возвращает каррированный селектор с кэшем параметров.
4
+ * По мотивам https://reselect.js.org/FAQ#how-can-i-make-a-curried-selector.
5
+ * @inheritdoc
6
+ */
7
+ export declare const createCurriedSelector: <InputSelectors extends ((state: any, ...params: any[]) => unknown)[], Result>(selectors: [...InputSelectors], combiner: (...args: import("reselect/es/types").ExtractReturnType<InputSelectors>) => Result, options?: import("reselect").CreateSelectorOptions<[equalityCheckOrOptions?: import("reselect").EqualityFn | import("reselect").DefaultMemoizeOptions | undefined]> | undefined) => ((...args: import("reselect/es/types").Tail<import("reselect/es/versionedTypes").MergeParameters<InputSelectors>>) => (state: GetStateFromSelectors<InputSelectors>) => Result) & Selector<GetStateFromSelectors<InputSelectors>, Result, import("reselect/es/types").Tail<import("reselect/es/versionedTypes").MergeParameters<InputSelectors>>> & import("reselect").OutputSelectorFields<(...args: import("reselect/es/types").ExtractReturnType<InputSelectors>) => Result, {
8
+ clearCache: () => void;
9
+ }> & {
10
+ clearCache: () => void;
11
+ } & import("reselect").OutputSelectorFields<(...args: import("reselect/es/types").ExtractReturnType<InputSelectors>) => Result, {
12
+ clearCache: () => void;
13
+ }> & {
14
+ uncurried: Selector<GetStateFromSelectors<InputSelectors>, Result, import("reselect/es/types").Tail<import("reselect/es/versionedTypes").MergeParameters<InputSelectors>>> & import("reselect").OutputSelectorFields<(...args: import("reselect/es/types").ExtractReturnType<InputSelectors>) => Result, {
15
+ clearCache: () => void;
16
+ }> & {
17
+ clearCache: () => void;
18
+ } & import("reselect").OutputSelectorFields<(...args: import("reselect/es/types").ExtractReturnType<InputSelectors>) => Result, {
19
+ clearCache: () => void;
20
+ }>;
21
+ };
22
+ //# sourceMappingURL=create-curried-selector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-curried-selector.d.ts","sourceRoot":"","sources":["../../../../src/utils/selectors/create-curried-selector.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,QAAQ,EACR,qBAAqB,EAEtB,MAAM,UAAU,CAAC;AAsClB;;;;GAIG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;CAEe,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sima-land/isomorph",
3
- "version": "11.0.0-alpha.61",
3
+ "version": "11.0.0-alpha.62",
4
4
  "description": "Tiny framework for fast start frontend microservices",
5
5
  "author": "www.sima-land.ru team",
6
6
  "license": "Apache-2.0",