From b1f5240fabfa47dc52abea21882df04cd7847e9b Mon Sep 17 00:00:00 2001
From: Arkerthan <arkerthan@mailbox.org>
Date: Sat, 14 May 2022 20:27:57 +0200
Subject: [PATCH] Proper typing for return value of getSlaveStatisticData()

---
 devTools/types/FC/financial.d.ts | 17 +++++++++++++++++
 src/endWeek/saGetMilked.js       |  2 +-
 src/js/economyJS.js              |  2 +-
 3 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/devTools/types/FC/financial.d.ts b/devTools/types/FC/financial.d.ts
index ab8535a32cd..d108e80567d 100644
--- a/devTools/types/FC/financial.d.ts
+++ b/devTools/types/FC/financial.d.ts
@@ -15,4 +15,21 @@ declare namespace FC {
 		/** The full amount that will be paid. */
 		full: number;
 	}
+
+	interface SlaveStatisticData {
+		/** ID of relevant slave */
+		ID: number,
+		slaveName: string,
+		customLabel: string,
+		income: number,
+		adsIncome: number,
+		rep: number,
+		food: number,
+		cost: number,
+		customers: number,
+
+		milk?:number,
+		cum?:number,
+		fluid?:number,
+	}
 }
diff --git a/src/endWeek/saGetMilked.js b/src/endWeek/saGetMilked.js
index e6105425232..2e0dac00c92 100644
--- a/src/endWeek/saGetMilked.js
+++ b/src/endWeek/saGetMilked.js
@@ -92,7 +92,7 @@
 		}
 
 		/**
-		 * @param {object} incomeStats getSlaveStatisticData return value - FIXME should be a named type
+		 * @param {FC.SlaveStatisticData} incomeStats
 		 */
 		function recordFacilityStatistics(incomeStats) {
 			incomeStats.milk = r.milk;
diff --git a/src/js/economyJS.js b/src/js/economyJS.js
index 99fbadc1e13..5cbe49ea29c 100644
--- a/src/js/economyJS.js
+++ b/src/js/economyJS.js
@@ -2171,7 +2171,7 @@ globalThis.endWeekSlaveMarket = function() {
 /**
  * @param {App.Entity.SlaveState} s
  * @param {object|undefined} facility
- * @returns {Object}
+ * @returns {FC.SlaveStatisticData}
  */
 globalThis.getSlaveStatisticData = function(s, facility) {
 	if (!facility) { // Base data, even without facility
-- 
GitLab