Skip to content

Commit 12e9641

Browse files
BBSQQneoddish
authored andcommitted
fix(datawizard-analyzer): maximum call stack size
1 parent 654f9e7 commit 12e9641

File tree

1 file changed

+11
-4
lines changed
  • packages/datawizard/analyzer/src

1 file changed

+11
-4
lines changed

packages/datawizard/analyzer/src/index.ts

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,8 @@ const THRESHOLD = 100;
233233
* @public
234234
*/
235235
export function type(array: any[]): FieldInfo {
236+
// debugger;
237+
236238
const list = array.map((item) => (isNull(item) ? null : item));
237239
const valueMap = Stat.valueMap(list);
238240
let recommendation: TypeSpecifics;
@@ -280,15 +282,20 @@ export function type(array: any[]): FieldInfo {
280282

281283
if (types.length > 1) {
282284
const meta: FieldMeta = {};
285+
let restNotNullArray = nonNullArray;
283286
types.forEach((item: string) => {
284287
if (item === 'date') {
285-
meta.date = type(nonNullArray.filter(isDate)) as DateFieldInfo;
288+
meta.date = type(restNotNullArray.filter(isDate)) as DateFieldInfo;
289+
restNotNullArray = restNotNullArray.filter((item) => !isDate(item));
286290
} else if (item === 'integer') {
287-
meta.integer = type(nonNullArray.filter(isInteger)) as NumberFieldInfo;
291+
meta.integer = type(restNotNullArray.filter(isInteger)) as NumberFieldInfo;
292+
restNotNullArray = restNotNullArray.filter((item) => !isInteger(item));
288293
} else if (item === 'float') {
289-
meta.float = type(nonNullArray.filter(isFloat)) as NumberFieldInfo;
294+
meta.float = type(restNotNullArray.filter(isFloat)) as NumberFieldInfo;
295+
restNotNullArray = restNotNullArray.filter((item) => !isFloat(item));
290296
} else if (item === 'string') {
291-
meta.string = type(nonNullArray.filter((item) => WhatType(item) === 'string')) as StringFieldInfo;
297+
meta.string = type(restNotNullArray.filter((item) => WhatType(item) === 'string')) as StringFieldInfo;
298+
restNotNullArray = restNotNullArray.filter((item) => WhatType(item) !== 'string');
292299
}
293300
});
294301
fieldInfo.meta = meta;

0 commit comments

Comments
 (0)