@@ -7,6 +7,7 @@ import { pipe } from 'fp-ts/function';
77import * as A from 'fp-ts/Array' ;
88import { XMLParser } from 'fast-xml-parser' ;
99import * as E from 'fp-ts/Either' ;
10+ import { getPickListValues } from './parse-picklist-values' ;
1011
1112export type CustomFieldMetadata = {
1213 type_name : 'customfield' ;
@@ -65,28 +66,12 @@ function toCustomFieldMetadata(parserResult: { CustomField: unknown }): CustomFi
6566 description : null ,
6667 } ;
6768
68- const pickListValues =
69- hasType ( customField ) && customField . type . toLowerCase ( ) === 'picklist' ? toPickListValues ( customField ) : undefined ;
70- return { ...defaultValues , ...customField , type_name : 'customfield' , pickListValues } as CustomFieldMetadata ;
71- }
72-
73- function toPickListValues ( customField : object ) : string [ ] {
74- if ( 'valueSet' in customField ) {
75- const valueSet = customField . valueSet as object ;
76- if ( 'valueSetDefinition' in valueSet ) {
77- const valueSetDefinition = valueSet . valueSetDefinition as object ;
78- if ( 'value' in valueSetDefinition ) {
79- const pickListValues = valueSetDefinition . value as object [ ] ;
80- return pickListValues . filter ( ( each ) => 'fullName' in each ) . map ( ( each ) => each . fullName as string ) ;
81- }
82- }
83- }
84-
85- return [ ] ;
86- }
87-
88- function hasType ( customField : object ) : customField is { type : string } {
89- return ! ! ( customField as CustomFieldMetadata ) . type ;
69+ return {
70+ ...defaultValues ,
71+ ...customField ,
72+ type_name : 'customfield' ,
73+ pickListValues : getPickListValues ( customField ) ,
74+ } as CustomFieldMetadata ;
9075}
9176
9277function addName ( metadata : CustomFieldMetadata , name : string ) : CustomFieldMetadata {
0 commit comments