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>
33 lines
836 B
JavaScript
33 lines
836 B
JavaScript
'use strict'
|
|
var util = require('util')
|
|
var TrackerBase = require('./tracker-base.js')
|
|
|
|
var Tracker = module.exports = function (name, todo) {
|
|
TrackerBase.call(this, name)
|
|
this.workDone = 0
|
|
this.workTodo = todo || 0
|
|
}
|
|
util.inherits(Tracker, TrackerBase)
|
|
|
|
Tracker.prototype.completed = function () {
|
|
return this.workTodo === 0 ? 0 : this.workDone / this.workTodo
|
|
}
|
|
|
|
Tracker.prototype.addWork = function (work) {
|
|
this.workTodo += work
|
|
this.emit('change', this.name, this.completed(), this)
|
|
}
|
|
|
|
Tracker.prototype.completeWork = function (work) {
|
|
this.workDone += work
|
|
if (this.workDone > this.workTodo) {
|
|
this.workDone = this.workTodo
|
|
}
|
|
this.emit('change', this.name, this.completed(), this)
|
|
}
|
|
|
|
Tracker.prototype.finish = function () {
|
|
this.workTodo = this.workDone = 1
|
|
this.emit('change', this.name, 1, this)
|
|
}
|