react-obsidian 2.29.0 → 2.30.0-alpha.0

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,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.GRAPH_INSTANCE_NAME_KEY = void 0;
7
- const lodash_1 = require("lodash");
7
+ const isString_1 = require("../../utils/isString");
8
8
  const ObjectGraph_1 = require("../../graph/ObjectGraph");
9
9
  const GraphRegistry_1 = __importDefault(require("../../graph/registry/GraphRegistry"));
10
10
  const InjectionMetadata_1 = __importDefault(require("./InjectionMetadata"));
@@ -24,7 +24,7 @@ class LateInjector {
24
24
  getGraph(target, keyOrGraph) {
25
25
  if (keyOrGraph instanceof ObjectGraph_1.ObjectGraph)
26
26
  return keyOrGraph;
27
- if ((0, lodash_1.isString)(keyOrGraph))
27
+ if ((0, isString_1.isString)(keyOrGraph))
28
28
  return GraphRegistry_1.default.resolve(keyOrGraph, 'classInjection');
29
29
  return this.getGraphInstance(target);
30
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LateInjector.js","sourceRoot":"","sources":["../../../../src/injectors/class/LateInjector.ts"],"names":[],"mappings":";;;;;;AAAA,mCAAkC;AAClC,yDAAsD;AACtD,uFAA+D;AAC/D,4EAAoD;AACpD,iDAA4C;AAE/B,QAAA,uBAAuB,GAAG,qBAAqB,CAAC;AAE7D,MAAM,YAAY;IAChB,MAAM,CAAC,MAAS,EAAE,UAAiC;QACjD,IAAI,UAAU;YAAE,uBAAa,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC3D,MAAM,iBAAiB,GAAG,IAAI,2BAAiB,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAChD,iBAAiB,CAAC,yBAAyB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAC9E,iBAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,QAAQ,CAAC,MAAS,EAAE,UAAiC;QAC3D,IAAI,UAAU,YAAY,yBAAW;YAAE,OAAO,UAAU,CAAC;QACzD,IAAI,IAAA,iBAAQ,EAAC,UAAU,CAAC;YAAE,OAAO,uBAAa,CAAC,OAAO,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;QACrF,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAEO,gBAAgB,CAAC,MAAS;QAChC,MAAM,iBAAiB,GAAG,iBAAO,CAAC,WAAW,CAAC,+BAAuB,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3F,OAAO,uBAAa,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;IAC3D,CAAC;CACF;AAED,kBAAe,IAAI,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"LateInjector.js","sourceRoot":"","sources":["../../../../src/injectors/class/LateInjector.ts"],"names":[],"mappings":";;;;;;AAAA,mDAAgD;AAChD,yDAAsD;AACtD,uFAA+D;AAC/D,4EAAoD;AACpD,iDAA4C;AAE/B,QAAA,uBAAuB,GAAG,qBAAqB,CAAC;AAE7D,MAAM,YAAY;IAChB,MAAM,CAAC,MAAS,EAAE,UAAiC;QACjD,IAAI,UAAU;YAAE,uBAAa,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC3D,MAAM,iBAAiB,GAAG,IAAI,2BAAiB,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAChD,iBAAiB,CAAC,yBAAyB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAC9E,iBAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,QAAQ,CAAC,MAAS,EAAE,UAAiC;QAC3D,IAAI,UAAU,YAAY,yBAAW;YAAE,OAAO,UAAU,CAAC;QACzD,IAAI,IAAA,mBAAQ,EAAC,UAAU,CAAC;YAAE,OAAO,uBAAa,CAAC,OAAO,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;QACrF,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAEO,gBAAgB,CAAC,MAAS;QAChC,MAAM,iBAAiB,GAAG,iBAAO,CAAC,WAAW,CAAC,+BAAuB,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3F,OAAO,uBAAa,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;IAC3D,CAAC;CACF;AAED,kBAAe,IAAI,YAAY,EAAE,CAAC"}
@@ -14,7 +14,7 @@ class Observable {
14
14
  this.subscribers.forEach((subscriber) => subscriber(value));
15
15
  }
16
16
  async first() {
17
- if (this.currentValue)
17
+ if (this.currentValue !== undefined)
18
18
  return this.currentValue;
19
19
  return new Promise((resolve) => {
20
20
  const unsubscribe = this.subscribe((value) => {
@@ -1 +1 @@
1
- {"version":3,"file":"Observable.js","sourceRoot":"","sources":["../../../src/observable/Observable.ts"],"names":[],"mappings":";;;AAEA,MAAa,UAAU;IAIrB,YAAY,YAAgB;QAHpB,gBAAW,GAAmB,IAAI,GAAG,EAAE,CAAC;QAI9C,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,YAAiB,CAAC;IAChC,CAAC;IAED,IAAW,KAAK,CAAC,KAAQ;QACvB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC,YAAY,CAAC;QAChD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC3C,WAAW,EAAE,CAAC;gBACd,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,SAAS,CAAC,MAAiB;QAChC,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IAEM,WAAW,CAAC,MAAgB;QACjC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;CACF;AAzCD,gCAyCC"}
1
+ {"version":3,"file":"Observable.js","sourceRoot":"","sources":["../../../src/observable/Observable.ts"],"names":[],"mappings":";;;AAEA,MAAa,UAAU;IAIrB,YAAY,YAAgB;QAHpB,gBAAW,GAAmB,IAAI,GAAG,EAAE,CAAC;QAI9C,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,YAAiB,CAAC;IAChC,CAAC;IAED,IAAW,KAAK,CAAC,KAAQ;QACvB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,YAAY,CAAC;QAC9D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC3C,WAAW,EAAE,CAAC;gBACd,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,SAAS,CAAC,MAAiB;QAChC,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IAEM,WAAW,CAAC,MAAgB;QACjC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;CACF;AAzCD,gCAyCC"}
@@ -1 +1 @@
1
- {"version":3,"file":"MediatorObservable.d.ts","sourceRoot":"","sources":["../../../../src/observable/mediator/MediatorObservable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EACL,MAAM,EACN,WAAW,EACX,WAAW,EACX,MAAM,EACN,UAAU,IAAI,WAAW,EAEzB,WAAW,EACZ,MAAM,UAAU,CAAC;AAElB,qBAAa,kBAAkB,CAAC,CAAC,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAC;IACtD,SAAS,CAAC,MAAM,EAAE,MAAM,SAAS,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAO/F,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAQtD,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC3B,OAAO,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EACxC,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IAuBzC,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC3B,OAAO,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EACxC,OAAO,EAAE,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;CAsB9C"}
1
+ {"version":3,"file":"MediatorObservable.d.ts","sourceRoot":"","sources":["../../../../src/observable/mediator/MediatorObservable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EACL,MAAM,EACN,WAAW,EACX,WAAW,EACX,MAAM,EACN,UAAU,IAAI,WAAW,EAEzB,WAAW,EACZ,MAAM,UAAU,CAAC;AAElB,qBAAa,kBAAkB,CAAC,CAAC,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAC;IACtD,SAAS,CAAC,MAAM,EAAE,MAAM,SAAS,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAO/F,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAQtD,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC3B,OAAO,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EACxC,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IAsBzC,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC3B,OAAO,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EACxC,OAAO,EAAE,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;CAqB9C"}
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MediatorObservable = void 0;
4
- const notNull_1 = require("../../utils/notNull");
5
4
  const Observable_1 = require("../Observable");
6
5
  class MediatorObservable extends Observable_1.Observable {
7
6
  mapSource(source, mapNext) {
@@ -19,42 +18,38 @@ class MediatorObservable extends Observable_1.Observable {
19
18
  }
20
19
  addSources(sources, onNext) {
21
20
  const values = new Array(sources.length);
22
- sources
23
- .filter(notNull_1.notNull)
24
- .forEach((source, index) => {
21
+ const initializedIndices = new Set();
22
+ sources.forEach((source, index) => {
23
+ if (source == null)
24
+ throw new Error(`addSources: source at index ${index} is null or undefined`);
25
25
  this.addSource(source, (next) => {
26
- if (values[index] === next)
26
+ if (initializedIndices.has(index) && values[index] === next)
27
27
  return;
28
- if (values[index] === undefined) {
29
- values[index] = next;
30
- }
31
- else {
32
- values[index] = next;
28
+ values[index] = next;
29
+ initializedIndices.add(index);
30
+ if (initializedIndices.size === sources.length) {
33
31
  onNext(values);
34
32
  }
35
33
  });
36
34
  });
37
- onNext(values);
38
35
  return this;
39
36
  }
40
37
  mapSources(sources, mapNext) {
41
38
  const values = new Array(sources.length);
42
- sources
43
- .filter(notNull_1.notNull)
44
- .forEach((source, index) => {
39
+ const initializedIndices = new Set();
40
+ sources.forEach((source, index) => {
41
+ if (source == null)
42
+ throw new Error(`mapSources: source at index ${index} is null or undefined`);
45
43
  this.addSource(source, (next) => {
46
- if (values[index] === next)
44
+ if (initializedIndices.has(index) && values[index] === next)
47
45
  return;
48
- if (values[index] === undefined) {
49
- values[index] = next;
50
- }
51
- else {
52
- values[index] = next;
46
+ values[index] = next;
47
+ initializedIndices.add(index);
48
+ if (initializedIndices.size === sources.length) {
53
49
  this.value = mapNext(values, this.value);
54
50
  }
55
51
  });
56
52
  });
57
- this.value = mapNext(values, this.value);
58
53
  return this;
59
54
  }
60
55
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MediatorObservable.js","sourceRoot":"","sources":["../../../../src/observable/mediator/MediatorObservable.ts"],"names":[],"mappings":";;;AAAA,iDAA8C;AAC9C,8CAA2C;AAW3C,MAAa,kBAAsB,SAAQ,uBAAa;IACtD,SAAS,CAA2B,MAA0B,EAAE,OAA+B;QAC7F,IAAI,CAAC,SAAS,CAAS,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACtC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,KAAe,CAAW,CAAC;QAC7D,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS,CAAI,MAAsB,EAAE,MAAiB;QACpD,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACzB,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU,CACR,OAAwC,EACxC,MAAuC;QAEvC,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAA6B,CAAC;QAErE,OAAO;aACJ,MAAM,CAAC,iBAAO,CAAC;aACf,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACzB,IAAI,CAAC,SAAS,CAAC,MAA0B,EAAE,CAAC,IAAI,EAAE,EAAE;gBAClD,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI;oBAAE,OAAO;gBAEnC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;oBAChC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;gBACvB,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;oBACrB,MAAM,CAAC,MAAM,CAAC,CAAC;gBACjB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEL,MAAM,CAAC,MAAM,CAAC,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU,CACR,OAAwC,EACxC,OAA2C;QAE3C,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAA6B,CAAC;QAErE,OAAO;aACJ,MAAM,CAAC,iBAAO,CAAC;aACf,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACzB,IAAI,CAAC,SAAS,CAAC,MAA0B,EAAE,CAAC,IAAI,EAAE,EAAE;gBAClD,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI;oBAAE,OAAO;gBAEnC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;oBAChC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;gBACvB,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;oBACrB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAM,CAAC;gBAChD,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEL,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAjED,gDAiEC"}
1
+ {"version":3,"file":"MediatorObservable.js","sourceRoot":"","sources":["../../../../src/observable/mediator/MediatorObservable.ts"],"names":[],"mappings":";;;AAAA,8CAA2C;AAW3C,MAAa,kBAAsB,SAAQ,uBAAa;IACtD,SAAS,CAA2B,MAA0B,EAAE,OAA+B;QAC7F,IAAI,CAAC,SAAS,CAAS,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACtC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,KAAe,CAAW,CAAC;QAC7D,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS,CAAI,MAAsB,EAAE,MAAiB;QACpD,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACzB,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU,CACR,OAAwC,EACxC,MAAuC;QAEvC,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAA6B,CAAC;QACrE,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;QAE7C,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAChC,IAAI,MAAM,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,uBAAuB,CAAC,CAAC;YACjG,IAAI,CAAC,SAAS,CAAC,MAA0B,EAAE,CAAC,IAAI,EAAE,EAAE;gBAClD,IAAI,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI;oBAAE,OAAO;gBAEpE,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;gBACrB,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAE9B,IAAI,kBAAkB,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;oBAC/C,MAAM,CAAC,MAAM,CAAC,CAAC;gBACjB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU,CACR,OAAwC,EACxC,OAA2C;QAE3C,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAA6B,CAAC;QACrE,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;QAE7C,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAChC,IAAI,MAAM,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,uBAAuB,CAAC,CAAC;YACjG,IAAI,CAAC,SAAS,CAAC,MAA0B,EAAE,CAAC,IAAI,EAAE,EAAE;gBAClD,IAAI,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI;oBAAE,OAAO;gBAEpE,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;gBACrB,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAE9B,IAAI,kBAAkB,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;oBAC/C,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAM,CAAC;gBAChD,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AA/DD,gDA+DC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-obsidian",
3
- "version": "2.29.0",
3
+ "version": "2.30.0-alpha.0",
4
4
  "description": "Dependency injection framework for React and React Native applications",
5
5
  "scripts": {
6
6
  "prepack": "yarn lint && tsc --project tsconfig.prod.json",
@@ -1,4 +1,4 @@
1
- import { isString } from 'lodash';
1
+ import { isString } from '../../utils/isString';
2
2
  import { ObjectGraph } from '../../graph/ObjectGraph';
3
3
  import graphRegistry from '../../graph/registry/GraphRegistry';
4
4
  import InjectionMetadata from './InjectionMetadata';
@@ -18,7 +18,7 @@ export class Observable<T> implements IObservable<T> {
18
18
  }
19
19
 
20
20
  async first(): Promise<T> {
21
- if (this.currentValue) return this.currentValue;
21
+ if (this.currentValue !== undefined) return this.currentValue;
22
22
  return new Promise((resolve) => {
23
23
  const unsubscribe = this.subscribe((value) => {
24
24
  unsubscribe();
@@ -1,4 +1,3 @@
1
- import { notNull } from '../../utils/notNull';
2
1
  import { Observable } from '../Observable';
3
2
  import {
4
3
  Mapper,
@@ -31,23 +30,22 @@ export class MediatorObservable<T> extends Observable<T> {
31
30
  onNext: OnMultiNext<S1, S2, S3, S4, S5>,
32
31
  ) {
33
32
  const values = new Array(sources.length) as Args<S1, S2, S3, S4, S5>;
33
+ const initializedIndices = new Set<number>();
34
34
 
35
- sources
36
- .filter(notNull)
37
- .forEach((source, index) => {
38
- this.addSource(source as IObservable<any>, (next) => {
39
- if (values[index] === next) return;
35
+ sources.forEach((source, index) => {
36
+ if (source == null) throw new Error(`addSources: source at index ${index} is null or undefined`);
37
+ this.addSource(source as IObservable<any>, (next) => {
38
+ if (initializedIndices.has(index) && values[index] === next) return;
40
39
 
41
- if (values[index] === undefined) {
42
- values[index] = next;
43
- } else {
44
- values[index] = next;
45
- onNext(values);
46
- }
47
- });
40
+ values[index] = next;
41
+ initializedIndices.add(index);
42
+
43
+ if (initializedIndices.size === sources.length) {
44
+ onNext(values);
45
+ }
48
46
  });
47
+ });
49
48
 
50
- onNext(values);
51
49
  return this;
52
50
  }
53
51
 
@@ -56,23 +54,22 @@ export class MediatorObservable<T> extends Observable<T> {
56
54
  mapNext: MultiMapper<T, S1, S2, S3, S4, S5>,
57
55
  ) {
58
56
  const values = new Array(sources.length) as Args<S1, S2, S3, S4, S5>;
57
+ const initializedIndices = new Set<number>();
59
58
 
60
- sources
61
- .filter(notNull)
62
- .forEach((source, index) => {
63
- this.addSource(source as IObservable<any>, (next) => {
64
- if (values[index] === next) return;
59
+ sources.forEach((source, index) => {
60
+ if (source == null) throw new Error(`mapSources: source at index ${index} is null or undefined`);
61
+ this.addSource(source as IObservable<any>, (next) => {
62
+ if (initializedIndices.has(index) && values[index] === next) return;
65
63
 
66
- if (values[index] === undefined) {
67
- values[index] = next;
68
- } else {
69
- values[index] = next;
70
- this.value = mapNext(values, this.value) as T;
71
- }
72
- });
64
+ values[index] = next;
65
+ initializedIndices.add(index);
66
+
67
+ if (initializedIndices.size === sources.length) {
68
+ this.value = mapNext(values, this.value) as T;
69
+ }
73
70
  });
71
+ });
74
72
 
75
- this.value = mapNext(values, this.value);
76
73
  return this;
77
74
  }
78
75
  }