From 287fb9b9d67e6643eb9d0062f17d415e1d76b033 Mon Sep 17 00:00:00 2001
From: Shazib Hussain <me@shazib.com>
Date: Tue, 20 Jun 2023 20:57:19 +0100
Subject: [PATCH] Tidy up exports in loot-core (#1147)

Following on from #1146 this PR removes all unused exports from
`loot-core/`
---
 .../loot-core/src/client/data-hooks/accounts.tsx   |  2 +-
 .../loot-core/src/client/data-hooks/payees.tsx     |  2 +-
 packages/loot-core/src/client/query-helpers.ts     |  6 +++---
 packages/loot-core/src/client/query-hooks.tsx      |  6 +-----
 packages/loot-core/src/client/reducers/budgets.ts  |  2 +-
 packages/loot-core/src/server/accounts/rules.ts    |  4 ++--
 .../src/server/accounts/transaction-rules.ts       |  3 +--
 packages/loot-core/src/server/aql/compiler.ts      |  2 +-
 .../loot-core/src/server/aql/schema/executors.ts   |  2 +-
 packages/loot-core/src/server/backups.ts           |  4 ++--
 packages/loot-core/src/server/schedules/app.ts     | 14 +++++++-------
 .../src/server/schedules/find-schedules.ts         |  2 +-
 packages/loot-core/src/server/update.ts            |  2 +-
 packages/loot-core/src/shared/transactions.ts      |  6 +++---
 upcoming-release-notes/1147.md                     |  6 ++++++
 15 files changed, 32 insertions(+), 31 deletions(-)
 create mode 100644 upcoming-release-notes/1147.md

diff --git a/packages/loot-core/src/client/data-hooks/accounts.tsx b/packages/loot-core/src/client/data-hooks/accounts.tsx
index c19b2c4e6..147e545c6 100644
--- a/packages/loot-core/src/client/data-hooks/accounts.tsx
+++ b/packages/loot-core/src/client/data-hooks/accounts.tsx
@@ -4,7 +4,7 @@ import q from '../query-helpers';
 import { useLiveQuery } from '../query-hooks';
 import { getAccountsById } from '../reducers/queries';
 
-export function useAccounts() {
+function useAccounts() {
   return useLiveQuery(() => q('accounts').select('*'), []);
 }
 
diff --git a/packages/loot-core/src/client/data-hooks/payees.tsx b/packages/loot-core/src/client/data-hooks/payees.tsx
index c06ba9a2e..2adba3bb7 100644
--- a/packages/loot-core/src/client/data-hooks/payees.tsx
+++ b/packages/loot-core/src/client/data-hooks/payees.tsx
@@ -4,7 +4,7 @@ import q from '../query-helpers';
 import { useLiveQuery } from '../query-hooks';
 import { getPayeesById } from '../reducers/queries';
 
-export function usePayees() {
+function usePayees() {
   return useLiveQuery(() => q('payees').select('*'), []);
 }
 
diff --git a/packages/loot-core/src/client/query-helpers.ts b/packages/loot-core/src/client/query-helpers.ts
index 4416d3851..4ff9e457f 100644
--- a/packages/loot-core/src/client/query-helpers.ts
+++ b/packages/loot-core/src/client/query-helpers.ts
@@ -7,13 +7,13 @@ export async function runQuery(query) {
   return send('query', query.serialize());
 }
 
-export function liveQuery(query, onData?, opts?) {
+export function liveQuery(query, onData?, opts?): LiveQuery {
   let q = new LiveQuery(query, onData, opts);
   q.run();
   return q;
 }
 
-export function pagedQuery(query, onData?, opts?) {
+export function pagedQuery(query, onData?, opts?): PagedQuery {
   let q = new PagedQuery(query, onData, opts);
   q.run();
   return q;
@@ -176,7 +176,7 @@ export class LiveQuery {
 }
 
 // Paging
-export class PagedQuery extends LiveQuery {
+class PagedQuery extends LiveQuery {
   done;
   onPageData;
   pageCount;
diff --git a/packages/loot-core/src/client/query-hooks.tsx b/packages/loot-core/src/client/query-hooks.tsx
index 5828a6715..d516f0116 100644
--- a/packages/loot-core/src/client/query-hooks.tsx
+++ b/packages/loot-core/src/client/query-hooks.tsx
@@ -9,7 +9,7 @@ import React, {
 
 import { type Query } from '../shared/query';
 
-import { liveQuery, LiveQuery, PagedQuery } from './query-helpers';
+import { liveQuery, LiveQuery } from './query-helpers';
 
 function makeContext(queryState, opts, QueryClass) {
   let query = new QueryClass(queryState, null, opts);
@@ -69,10 +69,6 @@ export function liveQueryContext(query, opts) {
   return makeContext(query, opts, LiveQuery);
 }
 
-export function pagedQueryContext(query, opts) {
-  return makeContext(query, opts, PagedQuery);
-}
-
 export function useLiveQuery(makeQuery: () => Query, deps: DependencyList) {
   let [data, setData] = useState(null);
   let query = useMemo(makeQuery, deps);
diff --git a/packages/loot-core/src/client/reducers/budgets.ts b/packages/loot-core/src/client/reducers/budgets.ts
index 45a7ee28f..ddd75630c 100644
--- a/packages/loot-core/src/client/reducers/budgets.ts
+++ b/packages/loot-core/src/client/reducers/budgets.ts
@@ -20,7 +20,7 @@ function sortFiles(arr) {
 // 4. detached - Downloaded but broken group id (reset sync state)
 // 5. broken - user shouldn't have access to this file
 // 6. unknown - user is offline so can't determine the status
-export function reconcileFiles(localFiles, remoteFiles) {
+function reconcileFiles(localFiles, remoteFiles) {
   let reconciled = new Set();
 
   let files = localFiles.map(localFile => {
diff --git a/packages/loot-core/src/server/accounts/rules.ts b/packages/loot-core/src/server/accounts/rules.ts
index 37d547a0d..d79ef88f8 100644
--- a/packages/loot-core/src/server/accounts/rules.ts
+++ b/packages/loot-core/src/server/accounts/rules.ts
@@ -21,7 +21,7 @@ function assert(test, type, msg) {
   }
 }
 
-export function parseRecurDate(desc) {
+function parseRecurDate(desc) {
   try {
     let rules = recurConfigToRSchedule(desc);
 
@@ -63,7 +63,7 @@ export function parseDateString(str) {
   return null;
 }
 
-export function parseBetweenAmount(between) {
+function parseBetweenAmount(between) {
   let { num1, num2 } = between;
   if (typeof num1 !== 'number' || typeof num2 !== 'number') {
     return null;
diff --git a/packages/loot-core/src/server/accounts/transaction-rules.ts b/packages/loot-core/src/server/accounts/transaction-rules.ts
index 46c7c5593..fe8138800 100644
--- a/packages/loot-core/src/server/accounts/transaction-rules.ts
+++ b/packages/loot-core/src/server/accounts/transaction-rules.ts
@@ -16,8 +16,7 @@ import * as db from '../db';
 import { getMappings } from '../db/mappings';
 import { RuleError } from '../errors';
 import { requiredFields, toDateRepr } from '../models';
-import { batchMessages } from '../sync';
-import { addSyncListener } from '../sync/index';
+import { batchMessages, addSyncListener } from '../sync';
 
 import {
   Condition,
diff --git a/packages/loot-core/src/server/aql/compiler.ts b/packages/loot-core/src/server/aql/compiler.ts
index ddd858b05..899cd383d 100644
--- a/packages/loot-core/src/server/aql/compiler.ts
+++ b/packages/loot-core/src/server/aql/compiler.ts
@@ -19,7 +19,7 @@ function dateToInt(date) {
   return parseInt(date.replace(/-/g, ''));
 }
 
-export function addTombstone(schema, tableName, tableId, whereStr) {
+function addTombstone(schema, tableName, tableId, whereStr) {
   let hasTombstone = schema[tableName].tombstone != null;
   return hasTombstone ? `${whereStr} AND ${tableId}.tombstone = 0` : whereStr;
 }
diff --git a/packages/loot-core/src/server/aql/schema/executors.ts b/packages/loot-core/src/server/aql/schema/executors.ts
index 56493a0bd..f6fa0d17d 100644
--- a/packages/loot-core/src/server/aql/schema/executors.ts
+++ b/packages/loot-core/src/server/aql/schema/executors.ts
@@ -6,7 +6,7 @@ import { convertOutputType } from '../schema-helpers';
 
 // Transactions executor
 
-export function toGroup(parents, children, mapper = x => x) {
+function toGroup(parents, children, mapper = x => x) {
   return parents.reduce((list, parent) => {
     let childs = children.get(parent.id) || [];
     list.push({
diff --git a/packages/loot-core/src/server/backups.ts b/packages/loot-core/src/server/backups.ts
index 0766ee670..2919b66df 100644
--- a/packages/loot-core/src/server/backups.ts
+++ b/packages/loot-core/src/server/backups.ts
@@ -14,7 +14,7 @@ import * as prefs from './prefs';
 const LATEST_BACKUP_FILENAME = 'db.latest.sqlite';
 let serviceInterval = null;
 
-export async function getBackups(id) {
+async function getBackups(id) {
   const budgetDir = fs.getBudgetDir(id);
   const backupDir = fs.join(budgetDir, 'backups');
 
@@ -46,7 +46,7 @@ export async function getBackups(id) {
   return backups;
 }
 
-export async function getLatestBackup(id) {
+async function getLatestBackup(id) {
   const budgetDir = fs.getBudgetDir(id);
   if (await fs.exists(fs.join(budgetDir, LATEST_BACKUP_FILENAME))) {
     return {
diff --git a/packages/loot-core/src/server/schedules/app.ts b/packages/loot-core/src/server/schedules/app.ts
index 962a9be5f..c2f3cfe07 100644
--- a/packages/loot-core/src/server/schedules/app.ts
+++ b/packages/loot-core/src/server/schedules/app.ts
@@ -100,7 +100,7 @@ export async function getRuleForSchedule(id) {
   return getRules().find(rule => rule.id === ruleId);
 }
 
-export async function fixRuleForSchedule(id) {
+async function fixRuleForSchedule(id) {
   let { data: ruleId } = await aqlQuery(
     q('schedules').filter({ id }).calculate('rule'),
   );
@@ -186,7 +186,7 @@ export async function setNextDate({
 
 // Methods
 
-export async function checkIfScheduleExists(name, scheduleId) {
+async function checkIfScheduleExists(name, scheduleId) {
   let idForName = await db.first('SELECT id from schedules WHERE name = ?', [
     name,
   ]);
@@ -349,7 +349,7 @@ export async function deleteSchedule({ id }) {
   });
 }
 
-export async function skipNextDate({ id }) {
+async function skipNextDate({ id }) {
   return setNextDate({
     id,
     start: nextDate => {
@@ -360,13 +360,13 @@ export async function skipNextDate({ id }) {
 
 // `schedule` here might not be a saved schedule, so it might not have
 // an id
-export function getPossibleTransactions({ schedule }) {}
+function getPossibleTransactions({ schedule }) {}
 
-export function discoverSchedules() {
+function discoverSchedules() {
   return findSchedules();
 }
 
-export async function getUpcomingDates({ config, count }) {
+async function getUpcomingDates({ config, count }) {
   let rules = recurConfigToRSchedule(config);
 
   try {
@@ -460,7 +460,7 @@ async function postTransactionForSchedule({ id }) {
 
 // TODO: make this sequential
 
-export async function advanceSchedulesService(syncSuccess) {
+async function advanceSchedulesService(syncSuccess) {
   // Move all paid schedules
   let { data: schedules } = await aqlQuery(
     q('schedules')
diff --git a/packages/loot-core/src/server/schedules/find-schedules.ts b/packages/loot-core/src/server/schedules/find-schedules.ts
index d812cf245..31e6ece6e 100644
--- a/packages/loot-core/src/server/schedules/find-schedules.ts
+++ b/packages/loot-core/src/server/schedules/find-schedules.ts
@@ -48,7 +48,7 @@ function getRank(day1, day2) {
   return 1 / (dayDiff + 1);
 }
 
-export function matchSchedules(allOccurs, config, partialMatchRank = 0.5) {
+function matchSchedules(allOccurs, config, partialMatchRank = 0.5) {
   allOccurs = [...allOccurs].reverse();
   let baseOccur = allOccurs[0];
   let occurs = allOccurs.slice(1);
diff --git a/packages/loot-core/src/server/update.ts b/packages/loot-core/src/server/update.ts
index 6be345e9e..221b4869f 100644
--- a/packages/loot-core/src/server/update.ts
+++ b/packages/loot-core/src/server/update.ts
@@ -10,7 +10,7 @@ async function runMigrations() {
   await migrations.migrate(db.getDatabase());
 }
 
-export async function updateViews() {
+async function updateViews() {
   let hashKey = 'view-hash';
   let row = await db.first('SELECT value FROM __meta__ WHERE key = ?', [
     hashKey,
diff --git a/packages/loot-core/src/shared/transactions.ts b/packages/loot-core/src/shared/transactions.ts
index 2653b4826..a1b2e425c 100644
--- a/packages/loot-core/src/shared/transactions.ts
+++ b/packages/loot-core/src/shared/transactions.ts
@@ -56,7 +56,7 @@ export function recalculateSplit(trans) {
   };
 }
 
-export function findParentIndex(transactions, idx) {
+function findParentIndex(transactions, idx) {
   // This relies on transactions being sorted in a way where parents
   // are always before children, which is enforced in the db layer.
   // Walk backwards and find the last parent;
@@ -95,7 +95,7 @@ export function ungroupTransactions(transactions) {
   return x;
 }
 
-export function groupTransaction(split) {
+function groupTransaction(split) {
   return { ...split[0], subtransactions: split.slice(1) };
 }
 
@@ -110,7 +110,7 @@ export function applyTransactionDiff(groupedTrans, diff) {
   return groupTransaction(applyChanges(diff, ungroupTransaction(groupedTrans)));
 }
 
-export function replaceTransactions(transactions, id, func) {
+function replaceTransactions(transactions, id, func) {
   let idx = transactions.findIndex(t => t.id === id);
   let trans = transactions[idx];
   let transactionsCopy = [...transactions];
diff --git a/upcoming-release-notes/1147.md b/upcoming-release-notes/1147.md
new file mode 100644
index 000000000..dc4650273
--- /dev/null
+++ b/upcoming-release-notes/1147.md
@@ -0,0 +1,6 @@
+---
+category: Maintenance
+authors: [Shazib]
+---
+
+Remove redundant usage of 'export' keyword
-- 
GitLab