Format String Transformation: Add applicability function (#87777)

* Add applicability function

* Prettier
This commit is contained in:
Kyle Cunningham 2024-05-15 14:29:30 -05:00 committed by GitHub
parent aae6b5312a
commit e4db00903b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1,7 +1,7 @@
import { map } from 'rxjs/operators';
import { DataFrame, Field, FieldType } from '../../types';
import { DataTransformerInfo, FieldMatcher } from '../../types/transformations';
import { DataTransformerInfo, FieldMatcher, TransformationApplicabilityLevels } from '../../types/transformations';
import { fieldMatchers } from '../matchers';
import { FieldMatcherID } from '../matchers/ids';
@ -69,6 +69,19 @@ export const formatStringTransformer: DataTransformerInfo<FormatStringTransforme
name: 'Format string',
description: 'Manipulate string fields formatting',
defaultOptions: { stringField: '', outputFormat: FormatStringOutput.UpperCase },
isApplicable: (data: DataFrame[]) => {
// Search for a string field
// if there is one then we can use this transformation
for (const frame of data) {
for (const field of frame.fields) {
if (field.type === 'string') {
return TransformationApplicabilityLevels.Applicable;
}
}
}
return TransformationApplicabilityLevels.NotApplicable;
},
operator: (options) => (source) =>
source.pipe(
map((data) => {