react-obsidian 0.0.43 → 0.0.45

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.
@@ -4,12 +4,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Inject = void 0;
7
- const lodash_1 = require("lodash");
7
+ const isNumber_1 = require("../../utils/isNumber");
8
8
  const InjectionMetadata_1 = __importDefault(require("../../injectors/class/InjectionMetadata"));
9
9
  function Inject(name) {
10
10
  return (target, _propertyKey, indexOrPropertyDescriptor) => {
11
11
  const metadata = new InjectionMetadata_1.default();
12
- if ((0, lodash_1.isNumber)(indexOrPropertyDescriptor)) {
12
+ if ((0, isNumber_1.isNumber)(indexOrPropertyDescriptor)) {
13
13
  metadata.saveConstructorParamMetadata(target, name, indexOrPropertyDescriptor);
14
14
  }
15
15
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"Inject.js","sourceRoot":"","sources":["../../../../src/decorators/inject/Inject.ts"],"names":[],"mappings":";;;;;;AAAA,mCAAkC;AAClC,gGAAwE;AAExE,SAAgB,MAAM,CAAC,IAAa;IAClC,OAAO,CACL,MAAoB,EACpB,YAAqB,EACrB,yBAAuD,EACvD,EAAE;QACF,MAAM,QAAQ,GAAG,IAAI,2BAAiB,EAAE,CAAC;QACzC,IAAI,IAAA,iBAAQ,EAAC,yBAAyB,CAAC,EAAE;YACvC,QAAQ,CAAC,4BAA4B,CAAC,MAAM,EAAE,IAAK,EAAE,yBAAyB,CAAC,CAAC;SACjF;aAAM;YACL,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,WAAW,EAAE,IAAK,CAAC,CAAC;SAC1D;IACH,CAAC,CAAC;AACJ,CAAC;AAbD,wBAaC"}
1
+ {"version":3,"file":"Inject.js","sourceRoot":"","sources":["../../../../src/decorators/inject/Inject.ts"],"names":[],"mappings":";;;;;;AAAA,mDAAgD;AAChD,gGAAwE;AAExE,SAAgB,MAAM,CAAC,IAAa;IAClC,OAAO,CACL,MAAoB,EACpB,YAAqB,EACrB,yBAAuD,EACvD,EAAE;QACF,MAAM,QAAQ,GAAG,IAAI,2BAAiB,EAAE,CAAC;QACzC,IAAI,IAAA,mBAAQ,EAAC,yBAAyB,CAAC,EAAE;YACvC,QAAQ,CAAC,4BAA4B,CAAC,MAAM,EAAE,IAAK,EAAE,yBAAyB,CAAC,CAAC;SACjF;aAAM;YACL,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,WAAW,EAAE,IAAK,CAAC,CAAC;SAC1D;IACH,CAAC,CAAC;AACJ,CAAC;AAbD,wBAaC"}
@@ -13,13 +13,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.isGraph = exports.ObjectGraph = void 0;
16
- const lodash_1 = require("lodash");
16
+ const uniqueId_1 = require("../utils/uniqueId");
17
17
  const Memoize_1 = __importDefault(require("../decorators/Memoize"));
18
18
  const ProviderBinder_1 = require("./ProviderBinder");
19
19
  const PropertyRetriever_1 = __importDefault(require("./PropertyRetriever"));
20
20
  class ObjectGraph {
21
21
  get name() {
22
- return (0, lodash_1.uniqueId)(this.constructor.name);
22
+ return (0, uniqueId_1.uniqueId)(this.constructor.name);
23
23
  }
24
24
  constructor(_props) {
25
25
  this._props = _props;
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectGraph.js","sourceRoot":"","sources":["../../../src/graph/ObjectGraph.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,mCAAkC;AAClC,oEAA4C;AAC5C,qDAAiD;AAEjD,4EAAoD;AAIpD,MAAsB,WAAW;IAG/B,IACI,IAAI;QACN,OAAO,IAAA,iBAAQ,EAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,YAAsB,MAAU;QAAV,WAAM,GAAN,MAAM,CAAI;QAPxB,sBAAiB,GAAG,IAAI,2BAAiB,CAAC,IAAI,CAAC,CAAC;QAQtD,IAAA,8BAAa,EAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,QAAQ,CACN,QAAgB,EAChB,QAAkB,EAClB,QAAuC;QAEvC,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAA2B,CAAC;IACjG,CAAC;IAED,MAAM,CAAC,OAAY;IAEnB,CAAC;CACF;AApBC;IAAC,IAAA,iBAAO,GAAE;;;uCAGT;AANH,kCAuBC;AAED,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,mBAAmB,EAAE,aAAa,CAAC,CAAC;AAE7D,SAAgB,OAAO,CAAC,MAAwC;IAC9D,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,KAAK,aAAa,CAAC;AACpE,CAAC;AAFD,0BAEC"}
1
+ {"version":3,"file":"ObjectGraph.js","sourceRoot":"","sources":["../../../src/graph/ObjectGraph.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gDAA6C;AAC7C,oEAA4C;AAC5C,qDAAiD;AAEjD,4EAAoD;AAIpD,MAAsB,WAAW;IAG/B,IACI,IAAI;QACN,OAAO,IAAA,mBAAQ,EAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,YAAsB,MAAU;QAAV,WAAM,GAAN,MAAM,CAAI;QAPxB,sBAAiB,GAAG,IAAI,2BAAiB,CAAC,IAAI,CAAC,CAAC;QAQtD,IAAA,8BAAa,EAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,QAAQ,CACN,QAAgB,EAChB,QAAkB,EAClB,QAAuC;QAEvC,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAA2B,CAAC;IACjG,CAAC;IAED,MAAM,CAAC,OAAY;IAEnB,CAAC;CACF;AApBC;IAAC,IAAA,iBAAO,GAAE;;;uCAGT;AANH,kCAuBC;AAED,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,mBAAmB,EAAE,aAAa,CAAC,CAAC;AAE7D,SAAgB,OAAO,CAAC,MAAwC;IAC9D,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,KAAK,aAAa,CAAC;AACpE,CAAC;AAFD,0BAEC"}
@@ -63,7 +63,7 @@ class GraphRegistry {
63
63
  }
64
64
  clear(graph) {
65
65
  const Graph = this.instanceToConstructor.get(graph);
66
- if (this.isSingleton(Graph))
66
+ if (!Graph || this.isSingleton(Graph))
67
67
  return;
68
68
  this.instanceToConstructor.delete(graph);
69
69
  this.constructorToInstance.get(Graph).delete(graph);
@@ -1 +1 @@
1
- {"version":3,"file":"GraphRegistry.js","sourceRoot":"","sources":["../../../../src/graph/registry/GraphRegistry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GraphRegistry.js","sourceRoot":"","sources":["../../../../src/graph/registry/GraphRegistry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function isNumber(value: unknown): value is number;
2
+ //# sourceMappingURL=isNumber.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isNumber.d.ts","sourceRoot":"","sources":["../../../src/utils/isNumber.ts"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAExD"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isNumber = void 0;
4
+ function isNumber(value) {
5
+ return typeof value === 'number';
6
+ }
7
+ exports.isNumber = isNumber;
8
+ //# sourceMappingURL=isNumber.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isNumber.js","sourceRoot":"","sources":["../../../src/utils/isNumber.ts"],"names":[],"mappings":";;;AAAA,SAAgB,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;AACnC,CAAC;AAFD,4BAEC"}
@@ -0,0 +1,2 @@
1
+ export declare function uniqueId(prefix?: string): string;
2
+ //# sourceMappingURL=uniqueId.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uniqueId.d.ts","sourceRoot":"","sources":["../../../src/utils/uniqueId.ts"],"names":[],"mappings":"AAEA,wBAAgB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAGhD"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.uniqueId = void 0;
4
+ let idCounter = 0;
5
+ function uniqueId(prefix) {
6
+ const id = ++idCounter;
7
+ return `${prefix !== null && prefix !== void 0 ? prefix : ''}${id}`;
8
+ }
9
+ exports.uniqueId = uniqueId;
10
+ //# sourceMappingURL=uniqueId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uniqueId.js","sourceRoot":"","sources":["../../../src/utils/uniqueId.ts"],"names":[],"mappings":";;;AAAA,IAAI,SAAS,GAAG,CAAC,CAAC;AAElB,SAAgB,QAAQ,CAAC,MAAe;IACtC,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC;IACvB,OAAO,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,GAAG,EAAE,EAAE,CAAC;AAChC,CAAC;AAHD,4BAGC"}
@@ -10,8 +10,7 @@ import TabItem from '@theme/TabItem';
10
10
 
11
11
  Obsidian is a dependency injection container with first-class support for React and React Native applications.
12
12
 
13
- Get started by **following the installation guide** bellow.
14
- <!-- Or **try Obsidian immediately** in the **[Online Playground](https://docusaurus.new)**. -->
13
+ Get started by **following the installation guide** bellow. Or **try Obsidian immediately** in the **[Online Playground](/playground)**.
15
14
 
16
15
  ## The 2 steps tutorial for injecting dependencies with Obsidian
17
16
 
@@ -54,12 +54,3 @@ module.exports = {
54
54
  ]
55
55
  };
56
56
  ```
57
-
58
- ## 5. Jest
59
- If you're using Jest, you'll need to add react-obsidian to [transformIgnorePatterns](https://jestjs.io/docs/configuration#transformignorepatterns-arraystring) so it's transpiled before tests are executed.
60
-
61
- ## 6. Peer Dependencies
62
- Obsidian has a peer dependency on `lodash`.
63
-
64
-
65
-
@@ -8,7 +8,7 @@ const darkCodeTheme = require('prism-react-renderer/themes/dracula');
8
8
  const config = {
9
9
  title: 'Obsidian',
10
10
  tagline: 'Dependency injection framework for React and React Native applications',
11
- url: 'https://your-docusaurus-test-site.com',
11
+ url: 'https://wix-incubator.github.io',
12
12
  baseUrl: '/obsidian/',
13
13
  onBrokenLinks: 'throw',
14
14
  onBrokenMarkdownLinks: 'warn',
@@ -75,6 +75,11 @@ const config = {
75
75
  position: 'left',
76
76
  label: 'Guides',
77
77
  },
78
+ {
79
+ position: 'left',
80
+ label: 'Playground',
81
+ to: '/playground/',
82
+ },
78
83
  // {to: '/blog', label: 'Blog', position: 'left'},
79
84
  {
80
85
  href: 'https://github.com/wix-incubator/obsidian',
@@ -12,7 +12,7 @@
12
12
  "@docusaurus/preset-classic": "2.2.0",
13
13
  "@mdx-js/react": "^1.6.22",
14
14
  "clsx": "^1.2.1",
15
- "enhancedocs-search": "^0.1.5",
15
+ "enhancedocs-search": "^1.0.2",
16
16
  "prism-react-renderer": "^1.3.5",
17
17
  "react": "^17.0.2",
18
18
  "react-dom": "^17.0.2"
@@ -5601,13 +5601,13 @@
5601
5601
  }
5602
5602
  },
5603
5603
  "node_modules/enhancedocs-search": {
5604
- "version": "0.1.5",
5605
- "resolved": "https://registry.npmjs.org/enhancedocs-search/-/enhancedocs-search-0.1.5.tgz",
5606
- "integrity": "sha512-ChDJrxRSM07inFVrkMwmPYfBRzY5grJ8LI5cJAjHI3crNTf5hh4oJh4R/pZ9uN+tbmht9EkuLu+zpHu1Rdxfiw==",
5604
+ "version": "1.0.2",
5605
+ "resolved": "https://registry.npmjs.org/enhancedocs-search/-/enhancedocs-search-1.0.2.tgz",
5606
+ "integrity": "sha512-zxGZ1SfdLywBeKd2Nbq/Q4HjWtydduZnYe1zhVFoUdIluj6rq9Iy3/Cc7pI9sG46CyltFOFDIYKJgTLe5ivwsA==",
5607
5607
  "dependencies": {
5608
+ "mixpanel-browser": "^2.47.0",
5608
5609
  "react-markdown": "^8.0.6",
5609
- "react-modal": "^3.16.1",
5610
- "typesense": "^1.5.3"
5610
+ "react-modal": "^3.16.1"
5611
5611
  },
5612
5612
  "peerDependencies": {
5613
5613
  "react": "^17.x || ^18.x",
@@ -7664,18 +7664,6 @@
7664
7664
  "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
7665
7665
  "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ=="
7666
7666
  },
7667
- "node_modules/loglevel": {
7668
- "version": "1.8.1",
7669
- "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.1.tgz",
7670
- "integrity": "sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg==",
7671
- "engines": {
7672
- "node": ">= 0.6.0"
7673
- },
7674
- "funding": {
7675
- "type": "tidelift",
7676
- "url": "https://tidelift.com/funding/github/npm/loglevel"
7677
- }
7678
- },
7679
7667
  "node_modules/loose-envify": {
7680
7668
  "version": "1.4.0",
7681
7669
  "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
@@ -8470,6 +8458,11 @@
8470
8458
  "url": "https://github.com/sponsors/ljharb"
8471
8459
  }
8472
8460
  },
8461
+ "node_modules/mixpanel-browser": {
8462
+ "version": "2.47.0",
8463
+ "resolved": "https://registry.npmjs.org/mixpanel-browser/-/mixpanel-browser-2.47.0.tgz",
8464
+ "integrity": "sha512-Ldrva0fRBEIFWmEibBQO1PulfpJVF3pf28Guk09lDirDaSQqqU/xs9zQLwN2rL5VwVtsP1aD3JaCgaa98EjojQ=="
8465
+ },
8473
8466
  "node_modules/mri": {
8474
8467
  "version": "1.2.0",
8475
8468
  "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
@@ -12228,26 +12221,6 @@
12228
12221
  "node": ">=4.2.0"
12229
12222
  }
12230
12223
  },
12231
- "node_modules/typesense": {
12232
- "version": "1.5.3",
12233
- "resolved": "https://registry.npmjs.org/typesense/-/typesense-1.5.3.tgz",
12234
- "integrity": "sha512-eLHBP6AHex04tT+q/a7Uc+dFjIuoKTRpvlsNJwVTyedh4n0qnJxbfoLJBCxzhhZn5eITjEK0oWvVZ5byc3E+Ww==",
12235
- "dependencies": {
12236
- "axios": "^0.26.0",
12237
- "loglevel": "^1.8.0"
12238
- },
12239
- "peerDependencies": {
12240
- "@babel/runtime": "^7.17.2"
12241
- }
12242
- },
12243
- "node_modules/typesense/node_modules/axios": {
12244
- "version": "0.26.1",
12245
- "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz",
12246
- "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==",
12247
- "dependencies": {
12248
- "follow-redirects": "^1.14.8"
12249
- }
12250
- },
12251
12224
  "node_modules/ua-parser-js": {
12252
12225
  "version": "0.7.32",
12253
12226
  "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.32.tgz",
@@ -17539,13 +17512,13 @@
17539
17512
  }
17540
17513
  },
17541
17514
  "enhancedocs-search": {
17542
- "version": "0.1.5",
17543
- "resolved": "https://registry.npmjs.org/enhancedocs-search/-/enhancedocs-search-0.1.5.tgz",
17544
- "integrity": "sha512-ChDJrxRSM07inFVrkMwmPYfBRzY5grJ8LI5cJAjHI3crNTf5hh4oJh4R/pZ9uN+tbmht9EkuLu+zpHu1Rdxfiw==",
17515
+ "version": "1.0.2",
17516
+ "resolved": "https://registry.npmjs.org/enhancedocs-search/-/enhancedocs-search-1.0.2.tgz",
17517
+ "integrity": "sha512-zxGZ1SfdLywBeKd2Nbq/Q4HjWtydduZnYe1zhVFoUdIluj6rq9Iy3/Cc7pI9sG46CyltFOFDIYKJgTLe5ivwsA==",
17545
17518
  "requires": {
17519
+ "mixpanel-browser": "^2.47.0",
17546
17520
  "react-markdown": "^8.0.6",
17547
- "react-modal": "^3.16.1",
17548
- "typesense": "^1.5.3"
17521
+ "react-modal": "^3.16.1"
17549
17522
  }
17550
17523
  },
17551
17524
  "entities": {
@@ -19040,11 +19013,6 @@
19040
19013
  "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
19041
19014
  "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ=="
19042
19015
  },
19043
- "loglevel": {
19044
- "version": "1.8.1",
19045
- "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.1.tgz",
19046
- "integrity": "sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg=="
19047
- },
19048
19016
  "loose-envify": {
19049
19017
  "version": "1.4.0",
19050
19018
  "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
@@ -19522,6 +19490,11 @@
19522
19490
  "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz",
19523
19491
  "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g=="
19524
19492
  },
19493
+ "mixpanel-browser": {
19494
+ "version": "2.47.0",
19495
+ "resolved": "https://registry.npmjs.org/mixpanel-browser/-/mixpanel-browser-2.47.0.tgz",
19496
+ "integrity": "sha512-Ldrva0fRBEIFWmEibBQO1PulfpJVF3pf28Guk09lDirDaSQqqU/xs9zQLwN2rL5VwVtsP1aD3JaCgaa98EjojQ=="
19497
+ },
19525
19498
  "mri": {
19526
19499
  "version": "1.2.0",
19527
19500
  "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
@@ -22188,25 +22161,6 @@
22188
22161
  "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz",
22189
22162
  "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA=="
22190
22163
  },
22191
- "typesense": {
22192
- "version": "1.5.3",
22193
- "resolved": "https://registry.npmjs.org/typesense/-/typesense-1.5.3.tgz",
22194
- "integrity": "sha512-eLHBP6AHex04tT+q/a7Uc+dFjIuoKTRpvlsNJwVTyedh4n0qnJxbfoLJBCxzhhZn5eITjEK0oWvVZ5byc3E+Ww==",
22195
- "requires": {
22196
- "axios": "^0.26.0",
22197
- "loglevel": "^1.8.0"
22198
- },
22199
- "dependencies": {
22200
- "axios": {
22201
- "version": "0.26.1",
22202
- "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz",
22203
- "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==",
22204
- "requires": {
22205
- "follow-redirects": "^1.14.8"
22206
- }
22207
- }
22208
- }
22209
- },
22210
22164
  "ua-parser-js": {
22211
22165
  "version": "0.7.32",
22212
22166
  "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.32.tgz",
@@ -19,7 +19,7 @@
19
19
  "@docusaurus/preset-classic": "2.2.0",
20
20
  "@mdx-js/react": "^1.6.22",
21
21
  "clsx": "^1.2.1",
22
- "enhancedocs-search": "^0.1.5",
22
+ "enhancedocs-search": "^1.0.2",
23
23
  "prism-react-renderer": "^1.3.5",
24
24
  "react": "^17.0.2",
25
25
  "react-dom": "^17.0.2"
@@ -0,0 +1,21 @@
1
+ ---
2
+ title: Obsidian playground
3
+ description: A live playground for Obsidian demonstrating both state and dependency management in a React application.
4
+ hide_table_of_contents: true
5
+ ---
6
+
7
+ # Obsidian playground
8
+
9
+ The following is a live playground for Obsidian. You can fork the code to edit it or use it as a template for your own project.
10
+ It's adapted from the state management example in the [React docs](https://react.dev/learn/scaling-up-with-reducer-and-context) and is meant to demonstrate how Obsidian can be used to manage both state and dependencies in a React application.
11
+
12
+ export const Playground = ({children, color}) => (
13
+ <iframe
14
+ style={{border: "1px solid rgba(0, 0, 0, 0.1)", borderRadius: "2px"}}
15
+ width="100%"
16
+ height="600"
17
+ src="https://codesandbox.io/p/sandbox/obsidian-task-list-c16w8r?file=/src/App.tsx:,C11&embed=1&hidenavigation=1"
18
+ allowfullscreen></iframe>
19
+ );
20
+
21
+ <Playground />
@@ -7,10 +7,8 @@ export default function SearchBarWrapper(props) {
7
7
  return (
8
8
  <EnhancedSearch
9
9
  config={{
10
- enhancedSearch: {
11
- projectId: '642ef48a9b7dab8fff36a55b',
12
- accessToken: 'pk_b6c6de86cb63d0857b2a96b3f90ec2906be49358981ac67f'
13
- }
10
+ projectId: '642ef48a9b7dab8fff36a55b',
11
+ accessToken: 'pk_b6c6de86cb63d0857b2a96b3f90ec2906be49358981ac67f'
14
12
  }}
15
13
  theme={{
16
14
  primaryColor: '#B94BEE'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-obsidian",
3
- "version": "0.0.43",
3
+ "version": "0.0.45",
4
4
  "description": "Dependency injection framework for React and React Native applications",
5
5
  "scripts": {
6
6
  "prepack": "npm run lint && tsc --project tsconfig.prod.json",
@@ -17,8 +17,7 @@
17
17
  "reflect-metadata": "~0.1.13"
18
18
  },
19
19
  "peerDependencies": {
20
- "react": "*",
21
- "lodash": "*"
20
+ "react": "*"
22
21
  },
23
22
  "devDependencies": {
24
23
  "@babel/core": "7.20.x",
@@ -28,13 +27,13 @@
28
27
  "@babel/preset-typescript": "7.18.x",
29
28
  "@babel/types": "7.20.x",
30
29
  "@johanblumenberg/ts-mockito": "1.x.x",
31
- "@testing-library/react": "^12.1.2",
30
+ "@testing-library/react": "14.x.x",
32
31
  "@testing-library/react-hooks": "^7.0.2",
33
32
  "@types/hoist-non-react-statics": "^3.3.1",
34
- "@types/jest": "26.x.x",
33
+ "@types/jest": "29.5.x",
35
34
  "@types/lodash": "^4.14.176",
36
- "@types/react": "^17.0.34",
37
- "@types/react-dom": "^17.0.11",
35
+ "@types/react": "18.2.x",
36
+ "@types/react-dom": "18.2.x",
38
37
  "@types/react-test-renderer": "17.0.1",
39
38
  "@typescript-eslint/eslint-plugin": "^5.3.0",
40
39
  "@typescript-eslint/parser": "^5.3.0",
@@ -47,10 +46,11 @@
47
46
  "eslint-plugin-react": "^7.26.1",
48
47
  "eslint-plugin-react-hooks": "^4.2.0",
49
48
  "eslint-plugin-unused-imports": "2.x.x",
50
- "jest": "27.x.x",
49
+ "jest": "29.5.x",
50
+ "jest-environment-jsdom": "^29.5.0",
51
51
  "lodash": "^4.17.21",
52
- "react": "17.0.2",
53
- "react-dom": "17.0.2",
52
+ "react": "18.2.x",
53
+ "react-dom": "18.2.x",
54
54
  "setimmediate": "^1.0.5",
55
55
  "typescript": "^4.5.4"
56
56
  },
@@ -79,4 +79,4 @@
79
79
  "url": "https://github.com/wix-incubator/react-obsidian/issues"
80
80
  },
81
81
  "homepage": "https://github.com/wix-incubator/react-obsidian#readme"
82
- }
82
+ }
@@ -1,4 +1,4 @@
1
- import { isNumber } from 'lodash';
1
+ import { isNumber } from '../../utils/isNumber';
2
2
  import InjectionMetadata from '../../injectors/class/InjectionMetadata';
3
3
 
4
4
  export function Inject(name?: string) {
@@ -1,4 +1,4 @@
1
- import { uniqueId } from 'lodash';
1
+ import { uniqueId } from '../utils/uniqueId';
2
2
  import Memoize from '../decorators/Memoize';
3
3
  import { bindProviders } from './ProviderBinder';
4
4
  import { Graph } from './Graph';
@@ -63,8 +63,8 @@ export class GraphRegistry {
63
63
  }
64
64
 
65
65
  clear(graph: Graph) {
66
- const Graph = this.instanceToConstructor.get(graph)!;
67
- if (this.isSingleton(Graph)) return;
66
+ const Graph = this.instanceToConstructor.get(graph);
67
+ if (!Graph || this.isSingleton(Graph)) return;
68
68
  this.instanceToConstructor.delete(graph);
69
69
  this.constructorToInstance.get(Graph)!.delete(graph);
70
70
  this.nameToInstance.delete(graph.name);
@@ -0,0 +1,3 @@
1
+ export function isNumber(value: unknown): value is number {
2
+ return typeof value === 'number';
3
+ }
@@ -0,0 +1,6 @@
1
+ let idCounter = 0;
2
+
3
+ export function uniqueId(prefix?: string): string {
4
+ const id = ++idCounter;
5
+ return `${prefix ?? ''}${id}`;
6
+ }