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: import("../types/configTypes.js").Config;
export declare const config: Config;
export default config; export default config;

View File

@ -1,19 +1,13 @@
export const config = { import { config as baseConfig } from "./config.base.js";
application: { export const config = Object.assign({}, baseConfig);
config.application = {
applicationName: "Cemetery Management System", applicationName: "Cemetery Management System",
backgroundURL: "/images/cemetery-background.jpg", backgroundURL: "/images/cemetery-background.jpg",
logoURL: "/images/cemetery-logo.svg" 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; export default config;

View File

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

View File

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

View File

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

View File

@ -4,9 +4,11 @@ import {
export const config = Object.assign({}, cemeteryConfig); export const config = Object.assign({}, cemeteryConfig);
config.settings.lot = { config.aliases.externalReceiptNumber = "GP Receipt Number";
lotNamePattern: /^[A-Z]{2}(-\d*[A-Z]?){3,5}$/,
lotNameSortNameFunction: (lotName) => { config.settings.lot.lotNamePattern = /^[A-Z]{2}(-\d*[A-Z]?){3,5}$/;
config.settings.lot.lotNameSortNameFunction = (lotName) => {
const numericPadding = "00000"; const numericPadding = "00000";
@ -32,7 +34,6 @@ config.settings.lot = {
} }
return cleanLotNamePieces.join("-"); return cleanLotNamePieces.join("-");
}
}; };
config.settings.lotOccupancy.occupantCityDefault = "Sault Ste. Marie"; config.settings.lotOccupancy.occupantCityDefault = "Sault Ste. Marie";
@ -40,12 +41,8 @@ config.settings.lotOccupancy.prints = ["pdf/ssm.cemetery.burialPermit"];
config.settings.map.mapCityDefault = "Sault Ste. Marie"; config.settings.map.mapCityDefault = "Sault Ste. Marie";
config.settings.workOrders = { config.settings.workOrders.workOrderNumberLength = 6;
workOrderNumberLength: 6, config.settings.workOrders.workOrderMilestoneDateRecentBeforeDays = 7;
workOrderMilestoneDateRecentBeforeDays: 7, config.settings.workOrders.workOrderMilestoneDateRecentAfterDays = 30;
workOrderMilestoneDateRecentAfterDays: 30
};
config.aliases.externalReceiptNumber = "GP Receipt Number";
export default config; 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 = { export const config = Object.assign({}, baseConfig);
application: {
config.application = {
applicationName: "Cemetery Management System", applicationName: "Cemetery Management System",
backgroundURL: "/images/cemetery-background.jpg", backgroundURL: "/images/cemetery-background.jpg",
logoURL: "/images/cemetery-logo.svg" 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; export default config;

View File

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

View File

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