mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
removed option to not check strings
This commit is contained in:
parent
3f44445dd6
commit
8e6279cbca
@ -54,9 +54,6 @@ describe('toTableData', () => {
|
||||
expect(guessColumnTypeFromValue(1)).toBe(ColumnType.number);
|
||||
expect(guessColumnTypeFromValue(1.234)).toBe(ColumnType.number);
|
||||
expect(guessColumnTypeFromValue(3.125e7)).toBe(ColumnType.number);
|
||||
expect(guessColumnTypeFromValue('1')).toBe(ColumnType.string);
|
||||
expect(guessColumnTypeFromValue('1.234')).toBe(ColumnType.string);
|
||||
expect(guessColumnTypeFromValue('3.125e7')).toBe(ColumnType.string);
|
||||
expect(guessColumnTypeFromValue(true)).toBe(ColumnType.boolean);
|
||||
expect(guessColumnTypeFromValue(false)).toBe(ColumnType.boolean);
|
||||
expect(guessColumnTypeFromValue(new Date())).toBe(ColumnType.time);
|
||||
@ -64,19 +61,19 @@ describe('toTableData', () => {
|
||||
});
|
||||
|
||||
it('Guess Colum Types from strings', () => {
|
||||
expect(guessColumnTypeFromValue('1', true)).toBe(ColumnType.number);
|
||||
expect(guessColumnTypeFromValue('1.234', true)).toBe(ColumnType.number);
|
||||
expect(guessColumnTypeFromValue('3.125e7', true)).toBe(ColumnType.number);
|
||||
expect(guessColumnTypeFromValue('True', true)).toBe(ColumnType.boolean);
|
||||
expect(guessColumnTypeFromValue('FALSE', true)).toBe(ColumnType.boolean);
|
||||
expect(guessColumnTypeFromValue('true', true)).toBe(ColumnType.boolean);
|
||||
expect(guessColumnTypeFromValue('xxxx', true)).toBe(ColumnType.string);
|
||||
expect(guessColumnTypeFromValue('1')).toBe(ColumnType.number);
|
||||
expect(guessColumnTypeFromValue('1.234')).toBe(ColumnType.number);
|
||||
expect(guessColumnTypeFromValue('3.125e7')).toBe(ColumnType.number);
|
||||
expect(guessColumnTypeFromValue('True')).toBe(ColumnType.boolean);
|
||||
expect(guessColumnTypeFromValue('FALSE')).toBe(ColumnType.boolean);
|
||||
expect(guessColumnTypeFromValue('true')).toBe(ColumnType.boolean);
|
||||
expect(guessColumnTypeFromValue('xxxx')).toBe(ColumnType.string);
|
||||
});
|
||||
|
||||
it('Guess Colum Types from table', () => {
|
||||
const table = {
|
||||
columns: [{ text: 'A (number)' }, { text: 'B (strings)' }, { text: 'C (nulls)' }, { text: 'Time' }],
|
||||
rows: [[123, null, null, '2000'], [null, '123', null, 'XXX']],
|
||||
rows: [[123, null, null, '2000'], [null, 'Hello', null, 'XXX']],
|
||||
};
|
||||
const norm = guessColumnTypes(table);
|
||||
expect(norm.columns[0].type).toBe(ColumnType.number);
|
||||
|
@ -170,24 +170,20 @@ const NUMBER = /^\s*-?(\d*\.?\d+|\d+\.?\d*)(e[-+]?\d+)?\s*$/i;
|
||||
*
|
||||
* TODO: better Date/Time support! Look for standard date strings?
|
||||
*/
|
||||
export function guessColumnTypeFromValue(v: any, parseString?: boolean): ColumnType {
|
||||
export function guessColumnTypeFromValue(v: any): ColumnType {
|
||||
if (isNumber(v)) {
|
||||
return ColumnType.number;
|
||||
}
|
||||
|
||||
if (isString(v)) {
|
||||
if (parseString) {
|
||||
const c0 = v[0].toLowerCase();
|
||||
if (c0 === 't' || c0 === 'f') {
|
||||
if (v === 'true' || v === 'TRUE' || v === 'True' || v === 'false' || v === 'FALSE' || v === 'False') {
|
||||
return ColumnType.boolean;
|
||||
}
|
||||
}
|
||||
|
||||
if (NUMBER.test(v)) {
|
||||
return ColumnType.number;
|
||||
}
|
||||
if (NUMBER.test(v)) {
|
||||
return ColumnType.number;
|
||||
}
|
||||
|
||||
if (v === 'true' || v === 'TRUE' || v === 'True' || v === 'false' || v === 'FALSE' || v === 'False') {
|
||||
return ColumnType.boolean;
|
||||
}
|
||||
|
||||
return ColumnType.string;
|
||||
}
|
||||
|
||||
@ -205,7 +201,7 @@ export function guessColumnTypeFromValue(v: any, parseString?: boolean): ColumnT
|
||||
/**
|
||||
* Looks at the data to guess the column type. This ignores any existing setting
|
||||
*/
|
||||
function guessColumnTypeFromTable(table: TableData, index: number, parseString?: boolean): ColumnType | undefined {
|
||||
function guessColumnTypeFromTable(table: TableData, index: number): ColumnType | undefined {
|
||||
const column = table.columns[index];
|
||||
|
||||
// 1. Use the column name to guess
|
||||
@ -220,7 +216,7 @@ function guessColumnTypeFromTable(table: TableData, index: number, parseString?:
|
||||
for (let i = 0; i < table.rows.length; i++) {
|
||||
const v = table.rows[i][index];
|
||||
if (v !== null) {
|
||||
return guessColumnTypeFromValue(v, parseString);
|
||||
return guessColumnTypeFromValue(v);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user