MCPcopy Create free account
hub / github.com/Openpanel-dev/openpanel / transformJson

Method transformJson

packages/db/src/clickhouse/query-builder.ts:514–541  ·  view source on GitHub ↗
(json: E)

Source from the content-addressed store, hash-verified

512 }
513
514 transformJson<E extends ResponseJSON<any>>(json: E): E {
515 const keys = Object.keys(json.data[0] || {});
516 const response = {
517 ...json,
518 data: json.data.map((item) => {
519 return keys.reduce((acc, key) => {
520 const meta = json.meta?.find((m) => m.name === key);
521 const transformer = this._transform?.[key];
522
523 if (transformer) {
524 return {
525 ...acc,
526 [key]: transformer(item),
527 };
528 }
529
530 return {
531 ...acc,
532 [key]:
533 item[key] && meta?.type.includes('Int')
534 ? Number.parseFloat(item[key] as string)
535 : item[key],
536 };
537 }, {} as T);
538 }),
539 };
540 return response;
541 }
542
543 transform(transformations: Record<string, (item: T) => any>): this {
544 this._transform = transformations;

Callers 1

executeMethod · 0.95

Calls 1

mapMethod · 0.45

Tested by

no test coverage detected