make config easier to define

deepsource-autofix-76c6eb20
Dan Gowans 2022-09-28 08:48:47 -04:00
parent b5eb0be5b3
commit 10c374c470
12 changed files with 130 additions and 116 deletions

3
data/config.base.d.ts vendored 100644
View File

@ -0,0 +1,3 @@
import type { Config } from "../types/configTypes";
export declare const config: Config;
export default config;

View File

@ -0,0 +1,16 @@
export const config = {
application: {},
session: {},
reverseProxy: {},
users: {},
aliases: {},
settings: {
fees: {},
map: {},
lot: {},
lotOccupancy: {},
workOrders: {},
adminCleanup: {}
}
};
export default config;

View File

@ -0,0 +1,19 @@
import type { Config } from "../types/configTypes";
export const config: Config = {
application: {},
session: {},
reverseProxy: {},
users: {},
aliases: {},
settings: {
fees: {},
map: {},
lot: {},
lotOccupancy: {},
workOrders: {},
adminCleanup: {}
}
};
export default config;

View File

@ -1,3 +1,2 @@
import type { Config } from "../types/configTypes";
export declare const config: Config;
export declare const config: import("../types/configTypes.js").Config;
export default config;

View File

@ -1,19 +1,13 @@
export const config = {
application: {
import { config as baseConfig } from "./config.base.js";
export const config = Object.assign({}, baseConfig);
config.application = {
applicationName: "Cemetery Management System",
backgroundURL: "/images/cemetery-background.jpg",
logoURL: "/images/cemetery-logo.svg"
},
aliases: {
lot: "Burial Site",
lots: "Burial Sites",
map: "Cemetery",
maps: "Cemeteries"
},
settings: {
lotOccupancy: {
occupancyEndDateIsRequired: false
}
}
};
config.aliases.lot = "Burial Site";
config.aliases.lots = "Burial Sites";
config.aliases.map = "Cemetery";
config.aliases.maps = "Cemeteries";
config.settings.lotOccupancy.occupancyEndDateIsRequired = false;
export default config;

View File

@ -1,10 +1,6 @@
import { config as cemeteryConfig } from "./config.cemetery.js";
export const config = Object.assign({}, cemeteryConfig);
config.settings.lotOccupancy.occupantProvinceDefault = "ON";
config.settings.map = {
mapProvinceDefault: "ON"
};
config.settings.fees = {
taxPercentageDefault: 13
};
config.settings.map.mapProvinceDefault = "ON";
config.settings.fees.taxPercentageDefault = 13;
export default config;

View File

@ -4,12 +4,8 @@ export const config = Object.assign({}, cemeteryConfig);
config.settings.lotOccupancy.occupantProvinceDefault = "ON";
config.settings.map = {
mapProvinceDefault: "ON"
};
config.settings.map.mapProvinceDefault = "ON";
config.settings.fees = {
taxPercentageDefault: 13
};
config.settings.fees.taxPercentageDefault = 13;
export default config;

View File

@ -1,8 +1,8 @@
import { config as cemeteryConfig } from "./config.cemetery.ontario.js";
export const config = Object.assign({}, cemeteryConfig);
config.settings.lot = {
lotNamePattern: /^[A-Z]{2}(-\d*[A-Z]?){3,5}$/,
lotNameSortNameFunction: (lotName) => {
config.aliases.externalReceiptNumber = "GP Receipt Number";
config.settings.lot.lotNamePattern = /^[A-Z]{2}(-\d*[A-Z]?){3,5}$/;
config.settings.lot.lotNameSortNameFunction = (lotName) => {
const numericPadding = "00000";
const lotNameSplit = lotName.toUpperCase().split("-");
const cleanLotNamePieces = [];
@ -20,15 +20,11 @@ config.settings.lot = {
cleanLotNamePieces.push(numericPiece.slice(-1 * numericPadding.length) + letterPiece);
}
return cleanLotNamePieces.join("-");
}
};
config.settings.lotOccupancy.occupantCityDefault = "Sault Ste. Marie";
config.settings.lotOccupancy.prints = ["pdf/ssm.cemetery.burialPermit"];
config.settings.map.mapCityDefault = "Sault Ste. Marie";
config.settings.workOrders = {
workOrderNumberLength: 6,
workOrderMilestoneDateRecentBeforeDays: 7,
workOrderMilestoneDateRecentAfterDays: 30
};
config.aliases.externalReceiptNumber = "GP Receipt Number";
config.settings.workOrders.workOrderNumberLength = 6;
config.settings.workOrders.workOrderMilestoneDateRecentBeforeDays = 7;
config.settings.workOrders.workOrderMilestoneDateRecentAfterDays = 30;
export default config;

View File

@ -4,9 +4,11 @@ import {
export const config = Object.assign({}, cemeteryConfig);
config.settings.lot = {
lotNamePattern: /^[A-Z]{2}(-\d*[A-Z]?){3,5}$/,
lotNameSortNameFunction: (lotName) => {
config.aliases.externalReceiptNumber = "GP Receipt Number";
config.settings.lot.lotNamePattern = /^[A-Z]{2}(-\d*[A-Z]?){3,5}$/;
config.settings.lot.lotNameSortNameFunction = (lotName) => {
const numericPadding = "00000";
@ -32,20 +34,15 @@ config.settings.lot = {
}
return cleanLotNamePieces.join("-");
}
};
};
config.settings.lotOccupancy.occupantCityDefault = "Sault Ste. Marie";
config.settings.lotOccupancy.prints = ["pdf/ssm.cemetery.burialPermit"];
config.settings.map.mapCityDefault = "Sault Ste. Marie";
config.settings.workOrders = {
workOrderNumberLength: 6,
workOrderMilestoneDateRecentBeforeDays: 7,
workOrderMilestoneDateRecentAfterDays: 30
};
config.aliases.externalReceiptNumber = "GP Receipt Number";
config.settings.workOrders.workOrderNumberLength = 6;
config.settings.workOrders.workOrderMilestoneDateRecentBeforeDays = 7;
config.settings.workOrders.workOrderMilestoneDateRecentAfterDays = 30;
export default config;

View File

@ -1,22 +1,18 @@
import type { Config } from "../types/configTypes";
import { config as baseConfig } from "./config.base.js";
export const config: Config = {
application: {
export const config = Object.assign({}, baseConfig);
config.application = {
applicationName: "Cemetery Management System",
backgroundURL: "/images/cemetery-background.jpg",
logoURL: "/images/cemetery-logo.svg"
},
aliases: {
lot: "Burial Site",
lots: "Burial Sites",
map: "Cemetery",
maps: "Cemeteries"
},
settings: {
lotOccupancy: {
occupancyEndDateIsRequired: false
}
}
};
config.aliases.lot = "Burial Site";
config.aliases.lots = "Burial Sites";
config.aliases.map = "Cemetery";
config.aliases.maps = "Cemeteries";
config.settings.lotOccupancy.occupancyEndDateIsRequired = false;
export default config;

View File

@ -1,19 +1,19 @@
export interface Config {
application?: ConfigApplication;
session?: ConfigSession;
reverseProxy?: {
disableCompression: boolean;
disableEtag: boolean;
urlPrefix: string;
application: ConfigApplication;
session: ConfigSession;
reverseProxy: {
disableCompression?: boolean;
disableEtag?: boolean;
urlPrefix?: string;
};
activeDirectory?: ConfigActiveDirectory;
users?: {
users: {
testing?: string[];
canLogin?: string[];
canUpdate?: string[];
isAdmin?: string[];
};
aliases?: {
aliases: {
lot?: string;
lots?: string;
map?: string;
@ -24,32 +24,33 @@ export interface Config {
occupants?: string;
externalReceiptNumber?: string;
};
settings?: {
fees?: {
settings: {
fees: {
taxPercentageDefault?: number;
};
map?: {
map: {
mapCityDefault?: string;
mapProvinceDefault?: string;
};
lot?: {
lot: {
lotNamePattern?: RegExp;
lotNameSortNameFunction?: (lotName: string) => string;
};
lotOccupancy?: {
lotOccupancy: {
lotIdIsRequired?: boolean;
occupancyEndDateIsRequired?: boolean;
occupantCityDefault?: string;
occupantProvinceDefault?: string;
prints?: string[];
};
workOrders?: {
workOrders: {
workOrderNumberLength?: number;
workOrderMilestoneDateRecentBeforeDays?: number;
workOrderMilestoneDateRecentAfterDays?: number;
calendarEmailAddress?: string;
prints?: string[];
};
adminCleanup?: {
adminCleanup: {
recordDeleteAgeDays?: number;
};
};

View File

@ -1,19 +1,19 @@
export interface Config {
application?: ConfigApplication;
session?: ConfigSession;
reverseProxy?: {
disableCompression: boolean;
disableEtag: boolean;
urlPrefix: string;
application: ConfigApplication;
session: ConfigSession;
reverseProxy: {
disableCompression?: boolean;
disableEtag?: boolean;
urlPrefix?: string;
};
activeDirectory?: ConfigActiveDirectory;
users?: {
users: {
testing?: string[];
canLogin?: string[];
canUpdate?: string[];
isAdmin?: string[];
};
aliases?: {
aliases: {
lot?: string;
lots?: string;
map?: string;
@ -24,32 +24,33 @@ export interface Config {
occupants?: string;
externalReceiptNumber?: string;
};
settings?: {
fees?: {
settings: {
fees: {
taxPercentageDefault?: number;
};
map?: {
map: {
mapCityDefault?: string;
mapProvinceDefault?: string;
};
lot?: {
lot: {
lotNamePattern?: RegExp;
lotNameSortNameFunction?: (lotName: string) => string;
};
lotOccupancy?: {
lotOccupancy: {
lotIdIsRequired?: boolean;
occupancyEndDateIsRequired?: boolean;
occupantCityDefault?: string;
occupantProvinceDefault?: string;
prints?: string[];
};
workOrders?: {
workOrders: {
workOrderNumberLength?: number;
workOrderMilestoneDateRecentBeforeDays?: number;
workOrderMilestoneDateRecentAfterDays?: number;
calendarEmailAddress?: string;
prints?: string[];
};
adminCleanup?: {
adminCleanup: {
recordDeleteAgeDays?: number;
};
};