Marketplace móvil para negocios locales mexicanos. Estructura inicial: - apps/backend (NestJS API) - apps/frontend (React Web) - apps/mobile (Expo/React Native) - apps/mcp-server (Claude MCP Server) - apps/whatsapp-service (WhatsApp Business API) - database/ (PostgreSQL DDL) - docs/ (Documentación) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
34 lines
991 B
JavaScript
34 lines
991 B
JavaScript
import { Subject } from './Subject';
|
|
export class AsyncSubject extends Subject {
|
|
constructor() {
|
|
super(...arguments);
|
|
this._value = null;
|
|
this._hasValue = false;
|
|
this._isComplete = false;
|
|
}
|
|
_checkFinalizedStatuses(subscriber) {
|
|
const { hasError, _hasValue, _value, thrownError, isStopped, _isComplete } = this;
|
|
if (hasError) {
|
|
subscriber.error(thrownError);
|
|
}
|
|
else if (isStopped || _isComplete) {
|
|
_hasValue && subscriber.next(_value);
|
|
subscriber.complete();
|
|
}
|
|
}
|
|
next(value) {
|
|
if (!this.isStopped) {
|
|
this._value = value;
|
|
this._hasValue = true;
|
|
}
|
|
}
|
|
complete() {
|
|
const { _hasValue, _value, _isComplete } = this;
|
|
if (!_isComplete) {
|
|
this._isComplete = true;
|
|
_hasValue && super.next(_value);
|
|
super.complete();
|
|
}
|
|
}
|
|
}
|
|
//# sourceMappingURL=AsyncSubject.js.map
|