-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathseedData.ts
More file actions
127 lines (120 loc) · 4.7 KB
/
Copy pathseedData.ts
File metadata and controls
127 lines (120 loc) · 4.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
import { writeFileSync } from "fs";
import faker from "faker";
import { Column, TableDataSet } from "./src/Table/types";
type ColumnMeta = {
width: number;
name: string;
generatorFn: () => string;
};
const dataSetCollection: TableDataSet<ColumnMeta>[] = [
{
tableName: "Small Table",
tableId: 1,
columns: [
{ width: 5, name: "Country Code", generatorFn: faker.address.countryCode },
{ width: 20, name: "Country", generatorFn: faker.address.country },
{ width: 20, name: "City", generatorFn: faker.address.city },
{ width: 5, name: "price", generatorFn: faker.commerce.price },
],
rows: [],
total: 30,
},
{
tableName: "Green table",
tableId: 1,
columns: [
{ width: 5, name: "Country Code", generatorFn: faker.address.countryCode },
{ width: 20, name: "Country", generatorFn: faker.address.country },
{ width: 20, name: "County", generatorFn: faker.address.county },
{ width: 20, name: "City", generatorFn: faker.address.city },
{ width: 20, name: "Street Name", generatorFn: faker.address.streetName },
{ width: 10, name: "latitude", generatorFn: faker.address.latitude },
{ width: 10, name: "longitude", generatorFn: faker.address.longitude },
{ width: 10, name: "color", generatorFn: faker.commerce.color },
{ width: 20, name: "productName", generatorFn: faker.commerce.productName },
{ width: 15, name: "department", generatorFn: faker.commerce.department },
{ width: 20, name: "companyName", generatorFn: faker.company.companyName },
{ width: 5, name: "price", generatorFn: faker.commerce.price },
],
rows: [],
total: 20,
},
{
tableName: "Blue table",
tableId: 2,
columns: [
{ width: 10, name: "latitude", generatorFn: faker.address.latitude },
{ width: 10, name: "longitude", generatorFn: faker.address.longitude },
{ width: 5, name: "color", generatorFn: faker.commerce.color },
{ width: 15, name: "City", generatorFn: faker.address.city },
{ width: 15, name: "County", generatorFn: faker.address.county },
{ width: 15, name: "Country", generatorFn: faker.address.country },
{ width: 5, name: "Country Code", generatorFn: faker.address.countryCode },
{ width: 15, name: "Street Name", generatorFn: faker.address.streetName },
{ width: 15, name: "productName", generatorFn: faker.commerce.productName },
{ width: 15, name: "department", generatorFn: faker.commerce.department },
{ width: 15, name: "companyName", generatorFn: faker.company.companyName },
{ width: 5, name: "price", generatorFn: faker.commerce.price },
],
rows: [],
total: 100,
},
{
tableName: "Test table",
tableId: 3,
columns: [
{ width: 8, name: "AAA 1", generatorFn: () => "AAA 1" },
{ width: 9, name: "BBB 3", generatorFn: () => "BBB 2" },
{ width: 10, name: "CCC 3", generatorFn: () => "CCC 3" },
{ width: 11, name: "DDD 4", generatorFn: () => "DDD 4" },
{ width: 12, name: "EEE 5", generatorFn: () => "EEE 5" },
{ width: 13, name: "FFF 6", generatorFn: () => "FFF 6" },
{ width: 14, name: "GGG 7", generatorFn: () => "GGG 7" },
{ width: 15, name: "HHH 8", generatorFn: () => "HHH 8" },
{ width: 16, name: "III 9", generatorFn: () => "III 9" },
{ width: 17, name: "JJJ 10", generatorFn: () => "JJJ 10" },
],
rows: [],
total: 10,
},
{
tableName: "Test table 2",
tableId: 4,
columns: [
{ width: 21, name: "AAA 1", generatorFn: () => "AAA 1" },
{ width: 19, name: "BBB 3", generatorFn: () => "BBB 2" },
{ width: 17, name: "CCC 3", generatorFn: () => "CCC 3" },
{ width: 15, name: "DDD 4", generatorFn: () => "DDD 4" },
{ width: 13, name: "EEE 5", generatorFn: () => "EEE 5" },
{ width: 11, name: "FFF 6", generatorFn: () => "FFF 6" },
{ width: 9, name: "GGG 7", generatorFn: () => "GGG 7" },
{ width: 7, name: "HHH 8", generatorFn: () => "HHH 8" },
{ width: 5, name: "III 9", generatorFn: () => "III 9" },
{ width: 3, name: "SSS 10", generatorFn: () => "SSS 10" },
],
rows: [],
total: 10,
},
];
function transformMetaIntoData(
dataSetCollection: TableDataSet<ColumnMeta>[]
): TableDataSet<Column>[] {
return dataSetCollection.map(({ total, columns, tableName, tableId }) => ({
tableId,
tableName,
columns: columns.map((column, i) => ({
columnId: i,
name: column.name,
width: column.width,
})),
rows: [...Array(total)].map((v, i) => ({
rowId: i,
values: columns.map((column) => column.generatorFn()),
})),
total,
}));
}
writeFileSync(
"./src/Table/mock.json",
JSON.stringify(transformMetaIntoData(dataSetCollection), null, 4)
);