Refactoring: Split shared types into seperate modules and document alot.

This commit is contained in:
baldo 2022-09-06 19:09:25 +02:00
commit 843cd37243
31 changed files with 2498 additions and 842 deletions

View file

@ -14,12 +14,13 @@ import {
MailData,
MailId,
MailSortField,
MailSortFieldEnum,
MailType,
parseJSON,
UnixTimestampSeconds,
} from "../types";
import ErrorTypes from "../utils/errorTypes";
import { send } from "../mail";
import { parseJSON } from "../shared/utils/json";
type EmaiQueueRow = {
id: MailId;
@ -81,6 +82,8 @@ async function findPendingMailsBefore(
recipient: row.recipient,
data,
failures: row.failures,
created_at: row.created_at,
modified_at: row.modified_at,
};
});
}
@ -156,14 +159,14 @@ export async function getPendingMails(
const total = row?.total || 0;
const filter = Resources.filterClause(
const filter = Resources.filterClause<MailSortField>(
restParams,
MailSortField.ID,
MailSortFieldEnum.ID,
isMailSortField,
["id", "failures", "sender", "recipient", "email"]
);
const mails = await db.all(
const mails = await db.all<Mail>(
"SELECT * FROM email_queue WHERE " + filter.query,
filter.params
);

View file

@ -18,7 +18,6 @@ import { forConstraint } from "../shared/validation/validator";
import {
Domain,
DurationSeconds,
filterUndefinedFromJSON,
Hostname,
isBoolean,
isDomain,
@ -33,15 +32,14 @@ import {
JSONValue,
MAC,
MailType,
mapIdFromMAC,
MonitoringSortField,
MonitoringSortFieldEnum,
MonitoringState,
MonitoringToken,
NodeMonitoringStateResponse,
NodeStateData,
NodeStateId,
OnlineState,
parseJSON,
Site,
StoredNode,
toCreateOrUpdateNode,
@ -56,6 +54,8 @@ import {
subtract,
weeks,
} from "../utils/time";
import { filterUndefinedFromJSON, parseJSON } from "../shared/utils/json";
import { mapIdFromMAC } from "../shared/utils/node";
type NodeStateRow = {
id: NodeStateId;
@ -743,9 +743,9 @@ export async function getAll(
const total = row?.total || 0;
const filter = Resources.filterClause(
const filter = Resources.filterClause<MonitoringSortField>(
restParams,
MonitoringSortField.ID,
MonitoringSortFieldEnum.ID,
isMonitoringSortField,
filterFields
);

View file

@ -19,7 +19,6 @@ import {
CreateOrUpdateNode,
EmailAddress,
FastdKey,
filterUndefinedFromJSON,
Hostname,
isFastdKey,
isHostname,
@ -36,13 +35,14 @@ import {
NodeStatistics,
StoredNode,
Token,
toUnixTimestampSeconds,
TypeGuard,
unhandledEnumField,
UnixTimestampMilliseconds,
UnixTimestampSeconds,
} from "../types";
import util from "util";
import { filterUndefinedFromJSON } from "../shared/utils/json";
import { unhandledEnumField } from "../shared/utils/enums";
import { toUnixTimestampSeconds } from "../shared/utils/time";
const pglob = util.promisify(glob);