- Unify reading subtitle/slogan throughout the application. - Refactor related unit tests for easier future changes. - Add typed constants for Vue app environment variables.
29 lines
1016 B
TypeScript
29 lines
1016 B
TypeScript
import { IProjectInformation } from '@/domain/IProjectInformation';
|
|
import { ProjectInformation } from '@/domain/ProjectInformation';
|
|
import { Version } from '@/domain/Version';
|
|
|
|
export function parseProjectInformation(
|
|
environment: NodeJS.ProcessEnv | VueAppEnvironment,
|
|
): IProjectInformation {
|
|
const version = new Version(environment[VueAppEnvironmentKeys.VUE_APP_VERSION]);
|
|
return new ProjectInformation(
|
|
environment[VueAppEnvironmentKeys.VUE_APP_NAME],
|
|
version,
|
|
environment[VueAppEnvironmentKeys.VUE_APP_SLOGAN],
|
|
environment[VueAppEnvironmentKeys.VUE_APP_REPOSITORY_URL],
|
|
environment[VueAppEnvironmentKeys.VUE_APP_HOMEPAGE_URL],
|
|
);
|
|
}
|
|
|
|
export const VueAppEnvironmentKeys = {
|
|
VUE_APP_VERSION: 'VUE_APP_VERSION',
|
|
VUE_APP_NAME: 'VUE_APP_NAME',
|
|
VUE_APP_SLOGAN: 'VUE_APP_SLOGAN',
|
|
VUE_APP_REPOSITORY_URL: 'VUE_APP_REPOSITORY_URL',
|
|
VUE_APP_HOMEPAGE_URL: 'VUE_APP_HOMEPAGE_URL',
|
|
} as const;
|
|
|
|
export type VueAppEnvironment = {
|
|
[K in keyof typeof VueAppEnvironmentKeys]: string;
|
|
};
|