mirror of
https://github.com/grafana/grafana.git
synced 2026-08-12 06:05:02 -05:00
DataFrame: deprecate/remove field.parse(any) (#44299)
This commit is contained in:
@@ -155,6 +155,27 @@ export class MutableDataFrame<T = any> extends FunctionalVector<T> implements Da
|
||||
}
|
||||
}
|
||||
|
||||
private parsers: Map<Field, (v: string) => any> | undefined = undefined;
|
||||
|
||||
/**
|
||||
* @deprecated unclear if this is actually used
|
||||
*/
|
||||
setParser(field: Field, parser: (v: string) => any) {
|
||||
if (!this.parsers) {
|
||||
this.parsers = new Map<Field, (v: string) => any>();
|
||||
}
|
||||
this.parsers.set(field, parser);
|
||||
return parser;
|
||||
}
|
||||
|
||||
private parseValue(field: Field, v: any): any {
|
||||
let p = this.parsers?.get(field);
|
||||
if (!p) {
|
||||
p = this.setParser(field, makeFieldParser(v, field));
|
||||
}
|
||||
return p(v);
|
||||
}
|
||||
|
||||
/**
|
||||
* This will add each value to the corresponding column
|
||||
*/
|
||||
@@ -181,10 +202,7 @@ export class MutableDataFrame<T = any> extends FunctionalVector<T> implements Da
|
||||
const f = this.fields[i];
|
||||
let v = row[i];
|
||||
if (f.type !== FieldType.string && isString(v)) {
|
||||
if (!f.parse) {
|
||||
f.parse = makeFieldParser(v, f);
|
||||
}
|
||||
v = f.parse(v);
|
||||
v = this.parseValue(f, v);
|
||||
}
|
||||
f.values.add(v);
|
||||
}
|
||||
@@ -200,10 +218,7 @@ export class MutableDataFrame<T = any> extends FunctionalVector<T> implements Da
|
||||
let val = obj[field.name];
|
||||
|
||||
if (field.type !== FieldType.string && isString(val)) {
|
||||
if (!field.parse) {
|
||||
field.parse = makeFieldParser(val, field);
|
||||
}
|
||||
val = field.parse(val);
|
||||
val = this.parseValue(field, val);
|
||||
}
|
||||
|
||||
if (val === undefined) {
|
||||
|
||||
@@ -122,11 +122,6 @@ export interface Field<T = any, V = Vector<T>> {
|
||||
*/
|
||||
state?: FieldState | null;
|
||||
|
||||
/**
|
||||
* Convert text to the field value
|
||||
*/
|
||||
parse?: (value: any) => T;
|
||||
|
||||
/**
|
||||
* Convert a value for display
|
||||
*/
|
||||
|
||||
@@ -186,7 +186,6 @@ describe('Table utils', () => {
|
||||
title: '1.0',
|
||||
text: '1.0',
|
||||
}),
|
||||
parse: (value: any) => '1.0',
|
||||
};
|
||||
const rows: any[] = [];
|
||||
|
||||
|
||||
@@ -53,7 +53,6 @@ async function doSetGeometry(frames: DataFrame[], options: SpatialTransformOptio
|
||||
{
|
||||
...info.field,
|
||||
name,
|
||||
parse: undefined,
|
||||
type: FieldType.geo,
|
||||
values: new ArrayVector([toLineString(info.field)]),
|
||||
},
|
||||
|
||||
@@ -711,21 +711,23 @@ const createEmptyDataFrame = (
|
||||
}
|
||||
|
||||
if (logMessageField) {
|
||||
series.addField({
|
||||
const f = series.addField({
|
||||
name: logMessageField,
|
||||
type: FieldType.string,
|
||||
}).parse = (v: any) => {
|
||||
});
|
||||
series.setParser(f, (v: any) => {
|
||||
return v || '';
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
if (logLevelField) {
|
||||
series.addField({
|
||||
const f = series.addField({
|
||||
name: 'level',
|
||||
type: FieldType.string,
|
||||
}).parse = (v: any) => {
|
||||
});
|
||||
series.setParser(f, (v: any) => {
|
||||
return v || '';
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
const fieldNames = series.fields.map((field) => field.name);
|
||||
@@ -740,15 +742,16 @@ const createEmptyDataFrame = (
|
||||
continue;
|
||||
}
|
||||
|
||||
series.addField({
|
||||
const f = series.addField({
|
||||
config: {
|
||||
filterable: true,
|
||||
},
|
||||
name,
|
||||
type,
|
||||
}).parse = (v: any) => {
|
||||
});
|
||||
series.setParser(f, (v: any) => {
|
||||
return v || '';
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
return series;
|
||||
|
||||
Reference in New Issue
Block a user