@bytebrand/export-cars 1.21.14 → 1.21.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/export.command.js +1 -1
- package/dist/export.command.js.map +1 -1
- package/dist/exporters/santander.exporter.js +2 -9
- package/dist/exporters/santander.exporter.js.map +1 -1
- package/dist/formats/santander-csv.builder.js +1 -1
- package/dist/formats/santander-csv.builder.js.map +1 -1
- package/dist/transformers/santander.transformer.d.ts +1 -3
- package/dist/transformers/santander.transformer.js +9 -14
- package/dist/transformers/santander.transformer.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/export.command.ts +1 -1
- package/src/exporters/santander.exporter.ts +2 -13
- package/src/formats/santander-csv.builder.ts +1 -1
- package/src/transformers/santander.transformer.ts +9 -15
package/package.json
CHANGED
package/src/export.command.ts
CHANGED
|
@@ -24,7 +24,7 @@ export class ExportRunner extends CommandRunner {
|
|
|
24
24
|
await new Promise<void>((resolve, reject) => {
|
|
25
25
|
rl.on('line', async (data: string) => {
|
|
26
26
|
const input = JSON.parse(data) as Input;
|
|
27
|
-
LoggerService.log(`Running job: ${input.id} - ${JSON.stringify(input)}
|
|
27
|
+
LoggerService.log(`Running job: ${input.id} - ${JSON.stringify(input)} \n`);
|
|
28
28
|
|
|
29
29
|
this.configService.config = new exportSchema[input.params.exportType].config(input.params);
|
|
30
30
|
const exporter = await this.moduleRef.create<Exporter>(exportSchema[input.params.exportType].exporter);
|
|
@@ -31,8 +31,6 @@ export class SantanderExporter implements Exporter {
|
|
|
31
31
|
|
|
32
32
|
const santanderTransformer = await this.moduleRef.create(SantanderTransformer);
|
|
33
33
|
|
|
34
|
-
const transformedCars = []
|
|
35
|
-
|
|
36
34
|
await this.loaderService.process(async (chunk: FsChunkInterface) => {
|
|
37
35
|
chunk.data = chunk.data.filter(e => this.carService.filterCar(e, this.rulesService.rules));
|
|
38
36
|
|
|
@@ -40,23 +38,14 @@ export class SantanderExporter implements Exporter {
|
|
|
40
38
|
for (const data of chunk.data) {
|
|
41
39
|
const { car, images } = data;
|
|
42
40
|
const transformedData = await santanderTransformer.transform(car, images);
|
|
41
|
+
const transformedNormalizedData = await santanderTransformer.normalizeCarData(transformedData);
|
|
42
|
+
await santanderCSVBuilder.addItem(transformedNormalizedData);
|
|
43
43
|
|
|
44
|
-
if (chunk.data.indexOf(data) < 2) {
|
|
45
|
-
console.log(transformedData);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
transformedCars.push(transformedData);
|
|
49
44
|
this.carService.counter.countCar(images);
|
|
50
45
|
}
|
|
51
46
|
}
|
|
52
47
|
});
|
|
53
48
|
|
|
54
|
-
const transformedNormalizedData = await santanderTransformer.normalizeCarData(transformedCars);
|
|
55
|
-
|
|
56
|
-
for (const data of transformedNormalizedData) {
|
|
57
|
-
await santanderCSVBuilder.addItem(data);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
49
|
console.log(this.carService.counter.getCountedCars());
|
|
61
50
|
await santanderCSVBuilder.buildEnd();
|
|
62
51
|
}
|
|
@@ -7,7 +7,7 @@ export class SantanderCSVBuilder extends XMLBuilderBase {
|
|
|
7
7
|
async addItem(car: unknown): Promise<void> {
|
|
8
8
|
let values = Object.values(car).map(value => {
|
|
9
9
|
if (typeof value === 'string' && value.includes(',')) {
|
|
10
|
-
return `"${value}"`;
|
|
10
|
+
return `"${value.replace(/"/g, '""')}"`;
|
|
11
11
|
}
|
|
12
12
|
return value;
|
|
13
13
|
});
|
|
@@ -30,24 +30,18 @@ export class SantanderTransformer extends MobileTransformer {
|
|
|
30
30
|
async normalizeCarData(transformedCarData: unknown) {
|
|
31
31
|
const data = transformedCarData as Array<{ [key: string]: any }>;
|
|
32
32
|
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
33
|
+
const maxKey = Math.max(...Object.keys(data).map(key => parseInt(key, 10)));
|
|
34
|
+
|
|
35
|
+
const outputArray = [];
|
|
36
|
+
for (let i = 0; i <= maxKey; i++) {
|
|
37
|
+
if (data.hasOwnProperty(i.toString())) {
|
|
38
|
+
outputArray.push(data[i.toString()]);
|
|
39
|
+
} else {
|
|
40
|
+
outputArray.push('');
|
|
37
41
|
}
|
|
38
42
|
}
|
|
39
43
|
|
|
40
|
-
|
|
41
|
-
const normalizedCar: { [key: string]: any } = { ...car };
|
|
42
|
-
for (const key of allKeys) {
|
|
43
|
-
if (!(key in normalizedCar)) {
|
|
44
|
-
normalizedCar[key] = "";
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
return normalizedCar;
|
|
48
|
-
}));
|
|
49
|
-
|
|
50
|
-
return normalizedData;
|
|
44
|
+
return outputArray;
|
|
51
45
|
}
|
|
52
46
|
|
|
53
47
|
}
|