diff options
Diffstat (limited to 'src/enums')
| -rw-r--r-- | src/enums/MembershipType.ts | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/enums/MembershipType.ts b/src/enums/MembershipType.ts new file mode 100644 index 0000000..e153755 --- /dev/null +++ b/src/enums/MembershipType.ts @@ -0,0 +1,42 @@ +enum MembershipType { + IndividualUk, + IndividualNonUk, + InstitutionUk, +} + +export type MembershipTypeSnakeCase = 'individual-uk' | 'individual-non-uk' | 'institution-uk'; + +const allMembershipTypesSnakeCaseHash: { [key in MembershipTypeSnakeCase]: null } = { + 'individual-uk': null, + 'individual-non-uk': null, + 'institution-uk': null, +}; +export const allMembershipTypesSnakeCase = Object.keys( + allMembershipTypesSnakeCaseHash +) as MembershipTypeSnakeCase[]; + +export function membershipTypeToSnakeCase(membershipType: MembershipType): MembershipTypeSnakeCase { + switch (membershipType) { + case MembershipType.IndividualUk: + return 'individual-uk'; + case MembershipType.IndividualNonUk: + return 'individual-non-uk'; + case MembershipType.InstitutionUk: + return 'institution-uk'; + } +} + +export function snakeCaseToMembershipType(membershipType: MembershipTypeSnakeCase): MembershipType { + switch (membershipType) { + case 'individual-uk': + return MembershipType.IndividualUk; + case 'individual-non-uk': + return MembershipType.IndividualNonUk; + case 'institution-uk': + return MembershipType.InstitutionUk; + } +} + +export const allMembershipTypes = allMembershipTypesSnakeCase.map(snakeCaseToMembershipType); + +export default MembershipType; |
