@kithinji/orca 1.0.22 → 1.0.24

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.
@@ -13230,7 +13230,16 @@ var StreamRenderer = class {
13230
13230
  }
13231
13231
  }
13232
13232
  const instance = componentInjector.resolve(ComponentClass);
13233
- instance.props = vnode.props || {};
13233
+ const mergedProps = Object.create(Object.getPrototypeOf(instance.props));
13234
+ Object.defineProperties(
13235
+ mergedProps,
13236
+ Object.getOwnPropertyDescriptors(instance.props)
13237
+ );
13238
+ Object.defineProperties(
13239
+ mergedProps,
13240
+ Object.getOwnPropertyDescriptors(vnode.props || {})
13241
+ );
13242
+ instance.props = mergedProps;
13234
13243
  const childVNode = instance.build();
13235
13244
  if (childVNode instanceof Promise) {
13236
13245
  return this.createPendingReference(vnode, childVNode, componentInjector);
@@ -14056,6 +14065,13 @@ var Subject = class extends Observable {
14056
14065
  this.subscribers = /* @__PURE__ */ new Set();
14057
14066
  this._isCompleted = false;
14058
14067
  this._hasError = false;
14068
+ this._thrownError = null;
14069
+ }
14070
+ asObservable() {
14071
+ return new Observable((observer) => {
14072
+ const subscription = this.subscribe(observer);
14073
+ return () => subscription.unsubscribe();
14074
+ });
14059
14075
  }
14060
14076
  subscribe(observerOrNext, error, complete) {
14061
14077
  if (this._isCompleted) {
@@ -14092,16 +14108,10 @@ var Subject = class extends Observable {
14092
14108
  error(err) {
14093
14109
  if (this._isCompleted || this._hasError) return;
14094
14110
  this._hasError = true;
14095
- const currentSubscribers = Array.from(this.subscribers);
14096
- currentSubscribers.forEach((observer) => {
14097
- if (observer.error) {
14098
- try {
14099
- observer.error(err);
14100
- } catch (e) {
14101
- console.error("Error in error handler:", e);
14102
- }
14103
- }
14104
- });
14111
+ this._thrownError = err;
14112
+ for (const observer of this.subscribers) {
14113
+ observer.error?.(err);
14114
+ }
14105
14115
  this.subscribers.clear();
14106
14116
  }
14107
14117
  complete() {
@@ -14130,22 +14140,23 @@ var BehaviorSubject = class extends Subject {
14130
14140
  get $value() {
14131
14141
  return this._value;
14132
14142
  }
14133
- setValue(value2) {
14134
- this._value = value2;
14135
- }
14136
14143
  next(value2) {
14137
14144
  this._value = value2;
14138
14145
  super.next(value2);
14139
14146
  }
14140
14147
  subscribe(observerOrNext, error, complete) {
14141
14148
  const observer = typeof observerOrNext === "function" ? { next: observerOrNext, error, complete } : observerOrNext;
14142
- try {
14143
- observer.next(this._value);
14144
- } catch (err) {
14145
- if (observer.error) {
14146
- observer.error(err);
14147
- }
14149
+ if (this._hasError) {
14150
+ observer.error?.(this._thrownError);
14151
+ return { unsubscribe: () => {
14152
+ } };
14148
14153
  }
14154
+ if (this._isCompleted) {
14155
+ observer.complete?.();
14156
+ return { unsubscribe: () => {
14157
+ } };
14158
+ }
14159
+ observer.next(this._value);
14149
14160
  return super.subscribe(observer);
14150
14161
  }
14151
14162
  };
@@ -14155,6 +14166,8 @@ var OrcaComponent = class {
14155
14166
  constructor() {
14156
14167
  this.__cleanup = [];
14157
14168
  }
14169
+ onInit() {
14170
+ }
14158
14171
  onDestroy() {
14159
14172
  this.__cleanup.forEach((cb) => cb());
14160
14173
  }
@@ -18613,7 +18626,11 @@ function createComponent(ComponentClass, props = {}, parentComponent) {
18613
18626
  if (routePattern) {
18614
18627
  builtRoute = buildRouteFromProps(routePattern, props, ComponentClass.name);
18615
18628
  }
18616
- instance.props = props;
18629
+ const mergedProps = Object.create(Object.getPrototypeOf(instance.props));
18630
+ Object.defineProperties(mergedProps, Object.getOwnPropertyDescriptors(instance.props));
18631
+ Object.defineProperties(mergedProps, Object.getOwnPropertyDescriptors(props));
18632
+ instance.props = mergedProps;
18633
+ instance.onInit?.();
18617
18634
  const root = instance.build();
18618
18635
  if (!(root instanceof Node)) {
18619
18636
  throw new Error(`Component ${ComponentClass.name}.build() must return a DOM Node`);