@webkrafters/react-observable-context 4.0.0-alpha.3 → 4.0.0-alpha.5

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.
@@ -1,14 +1,79 @@
1
1
  "use strict";
2
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
3
  Object.defineProperty(exports, "__esModule", {
3
4
  value: true
4
5
  });
5
- exports.makeReadonly = void 0;
6
- var _lodash = _interopRequireDefault(require("lodash.isplainobject"));
6
+ exports.arrangePropertyPaths = arrangePropertyPaths;
7
+ exports.makeReadonly = makeReadonly;
8
+ exports.mapPathsToObject = mapPathsToObject;
9
+ exports.none = void 0;
10
+ var _lodash = _interopRequireDefault(require("lodash.get"));
11
+ var _lodash2 = _interopRequireDefault(require("lodash.has"));
12
+ var _lodash3 = _interopRequireDefault(require("lodash.isplainobject"));
7
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
8
- /**
9
14
  * Converts argument to readonly.
10
15
  *
11
16
  * Note: Mutates original argument.
12
17
  *
13
18
  * @param {T} v
14
19
  * @returns {Readonly<T>}
15
20
  * @template T
16
21
  */
17
- var makeReadonly = function makeReadonly(v) {
22
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
23
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
24
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
25
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
26
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
27
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
28
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
29
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
30
+ var None = _createClass(function None() {
31
+ _classCallCheck(this, None);
32
+ });
33
+ ;
34
+ var none = new None();
35
+ exports.none = none;
36
+ function arrangePropertyPaths(propertyPaths) {
37
+ var superPathTokensMap = {};
38
+ var _iterator = _createForOfIteratorHelper(propertyPaths),
39
+ _step;
40
+ try {
41
+ var _loop = function _loop() {
42
+ var path = _step.value;
43
+ var pathTokens = path.replace(/\[([0-9]+)\]/g, '.$1').replace(/^\./, '').split(/\./);
44
+ L2: {
45
+ var replacedSuperPaths = [];
46
+ var _loop2 = function _loop2(superPath) {
47
+ var superPathTokens = superPathTokensMap[superPath];
48
+ if (superPathTokens.length <= pathTokens.length) {
49
+ if (superPathTokens.every(function (p, i) {
50
+ return p === pathTokens[i];
51
+ })) {
52
+ return "break|L2";
53
+ }
54
+ } else {
55
+ pathTokens.every(function (p, i) {
56
+ return p === superPathTokens[i];
57
+ }) && replacedSuperPaths.push(superPath);
58
+ }
59
+ };
60
+ for (var superPath in superPathTokensMap) {
61
+ var _ret = _loop2(superPath);
62
+ if (_ret === "break|L2") break L2;
63
+ }
64
+ superPathTokensMap[path] = pathTokens;
65
+ for (var _i = 0, _replacedSuperPaths = replacedSuperPaths; _i < _replacedSuperPaths.length; _i++) {
66
+ var _path = _replacedSuperPaths[_i];
67
+ delete superPathTokensMap[_path];
68
+ }
69
+ }
70
+ };
71
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
72
+ _loop();
73
+ }
74
+ } catch (err) {
75
+ _iterator.e(err);
76
+ } finally {
77
+ _iterator.f();
78
+ }
79
+ return Object.keys(superPathTokensMap);
80
+ }
81
+ ;
82
+ function makeReadonly(v) {
18
83
  var frozen = true;
19
- if ((0, _lodash["default"])(v)) {
84
+ if ((0, _lodash3["default"])(v)) {
20
85
  for (var k in v) {
21
86
  makeReadonly(v[k]);
22
87
  }
@@ -22,5 +87,50 @@ var makeReadonly = function makeReadonly(v) {
22
87
  }
23
88
  !frozen && Object.freeze(v);
24
89
  return v;
25
- };
26
- exports.makeReadonly = makeReadonly;
90
+ }
91
+ ;
92
+ function mapPathsToObject(source, propertyPaths) {
93
+ var paths = [];
94
+ var _iterator2 = _createForOfIteratorHelper(propertyPaths),
95
+ _step2;
96
+ try {
97
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
98
+ var path = _step2.value;
99
+ paths.push(path.replace(/\.?\[/g, '.').replace(/^\.|\]/g, ''));
100
+ }
101
+ } catch (err) {
102
+ _iterator2.e(err);
103
+ } finally {
104
+ _iterator2.f();
105
+ }
106
+ var dest = {};
107
+ var object = dest;
108
+ var _iterator3 = _createForOfIteratorHelper(arrangePropertyPaths(paths)),
109
+ _step3;
110
+ try {
111
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
112
+ var _path2 = _step3.value;
113
+ if (!(0, _lodash2["default"])(source, _path2)) {
114
+ continue;
115
+ }
116
+ var value = (0, _lodash["default"])(source, _path2);
117
+ for (var tokens = _path2.split('.'), tLen = tokens.length, t = 0; t < tLen; t++) {
118
+ var token = tokens[t];
119
+ if (t + 1 === tLen) {
120
+ object[token] = value;
121
+ object = dest;
122
+ break;
123
+ }
124
+ if (!(token in object)) {
125
+ object[token] = {};
126
+ }
127
+ object = object[token];
128
+ }
129
+ }
130
+ } catch (err) {
131
+ _iterator3.e(err);
132
+ } finally {
133
+ _iterator3.f();
134
+ }
135
+ return dest;
136
+ }
package/index.js CHANGED
@@ -1 +1 @@
1
- module.exports = require( './dist/main' );
1
+ module.exports = require( './dist/main' );
package/package.json CHANGED
@@ -1,21 +1,20 @@
1
1
  {
2
2
  "author": "Stephen Isienyi <stephen.isienyi@webkrafting.com>",
3
3
  "bugs": {
4
- "url": "https://github.com/steveswork/react-observable-context/issues"
4
+ "url": "https://github.com/webKrafters/react-observable-context/issues"
5
5
  },
6
6
  "contributors": [
7
- "steveswork <stephen.isienyi@webkrafting.com> (https://github.com/steveswork)"
7
+ "steveswork <stephen.isienyi@gmail.com> (https://github.com/steveswork)"
8
8
  ],
9
9
  "dependencies": {
10
10
  "lodash.clonedeep": "^4.5.0",
11
11
  "lodash.get": "^4.4.2",
12
12
  "lodash.has": "^4.5.2",
13
+ "lodash.isboolean": "^3.0.3",
13
14
  "lodash.isempty": "^4.4.0",
14
15
  "lodash.isequal": "^4.5.0",
15
16
  "lodash.isplainobject": "^4.0.6",
16
17
  "lodash.omit": "^4.5.0",
17
- "lodash.pick": "^4.4.0",
18
- "lodash.set": "^4.3.2",
19
18
  "uuid": "^9.0.0"
20
19
  },
21
20
  "description": "Observable react context - prevents an automatic total component tree tear-down and re-rendering during context updates.",
@@ -77,13 +76,22 @@
77
76
  "dist/constants.js",
78
77
  "dist/constants.d.ts"
79
78
  ],
80
- "homepage": "https://github.com/steveswork/react-observable-context#readme",
79
+ "homepage": "https://github.com/webKrafters/react-observable-context#readme",
81
80
  "jest": {
81
+ "collectCoverageFrom": [
82
+ "src/**/*.js"
83
+ ],
84
+ "coveragePathIgnorePatterns": [
85
+ "src/test-artifacts",
86
+ "src/main/test-apps",
87
+ "src/types"
88
+ ],
82
89
  "transform": {
83
90
  "\\.[jt]sx?$": "babel-jest"
84
91
  }
85
92
  },
86
93
  "keywords": [
94
+ "connect",
87
95
  "context",
88
96
  "react-hooks",
89
97
  "react-context",
@@ -102,13 +110,14 @@
102
110
  },
103
111
  "repository": {
104
112
  "type": "git",
105
- "url": "git+https://github.com/steveswork/react-observable-context.git"
113
+ "url": "git+https://github.com/webKrafters/react-observable-context.git"
106
114
  },
107
115
  "scripts": {
108
- "build": "eslint --fix && rm -rf dist && babel src -d dist && npx -p typescript tsc && node ./post-builder",
109
- "test": "eslint --fix && jest --updateSnapshot",
116
+ "build": "eslint --fix && rm -rf dist && babel src -d dist && npx -p typescript tsc",
117
+ "postbuild": "node ./post-builder",
118
+ "test": "eslint --fix && jest --coverage --updateSnapshot",
110
119
  "test:watch": "eslint --fix && jest --updateSnapshot --watchAll"
111
120
  },
112
121
  "types": "dist/main/index.d.ts",
113
- "version": "4.0.0-alpha.3"
122
+ "version": "4.0.0-alpha.5"
114
123
  }