@bytebrand/export-cars 0.0.2 → 0.0.3
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/config/ConfigBuilder.d.ts +0 -1
- package/dist/config/ConfigBuilder.js +0 -21
- package/dist/config/ConfigBuilder.js.map +1 -1
- package/dist/index.js +17 -35
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/readme.md +7 -3
- package/src/config/ConfigBuilder.ts +0 -22
- package/src/index.ts +22 -40
- package/src/interfaces/index.ts +0 -0
- package/src/modules/acrhiver/TarArchiver.ts +0 -32
- package/src/modules/acrhiver/index.ts +0 -6
- package/src/modules/car-exporter/index.ts +0 -11
- package/src/modules/car-loader/index.ts +0 -10
|
@@ -20,12 +20,6 @@ class ConfigBuilder {
|
|
|
20
20
|
remoteDirectory: 'import_dev',
|
|
21
21
|
baseFileName: 'cars',
|
|
22
22
|
},
|
|
23
|
-
ftpConfig: {
|
|
24
|
-
DEFAULT_FTP_HOST: '185.15.211.90',
|
|
25
|
-
DEFAULT_FTP_PORT: '21',
|
|
26
|
-
DEFAULT_FTP_USER: 'jelastic-ftp',
|
|
27
|
-
DEFAULT_FTP_PASS: '7D413EB6L6',
|
|
28
|
-
},
|
|
29
23
|
};
|
|
30
24
|
const stageConfig = {
|
|
31
25
|
chunk_limit: job.params.limit,
|
|
@@ -42,12 +36,6 @@ class ConfigBuilder {
|
|
|
42
36
|
remoteDirectory: 'import_stage',
|
|
43
37
|
baseFileName: 'cars',
|
|
44
38
|
},
|
|
45
|
-
ftpConfig: {
|
|
46
|
-
DEFAULT_FTP_HOST: '185.15.211.90',
|
|
47
|
-
DEFAULT_FTP_PORT: '21',
|
|
48
|
-
DEFAULT_FTP_USER: 'jelastic-ftp',
|
|
49
|
-
DEFAULT_FTP_PASS: '7D413EB6L6',
|
|
50
|
-
},
|
|
51
39
|
};
|
|
52
40
|
const productionConfig = {
|
|
53
41
|
chunk_limit: job.params.limit,
|
|
@@ -64,22 +52,13 @@ class ConfigBuilder {
|
|
|
64
52
|
remoteDirectory: 'import',
|
|
65
53
|
baseFileName: 'cars',
|
|
66
54
|
},
|
|
67
|
-
ftpConfig: {
|
|
68
|
-
DEFAULT_FTP_HOST: '185.15.211.90',
|
|
69
|
-
DEFAULT_FTP_PORT: '21',
|
|
70
|
-
DEFAULT_FTP_USER: 'jelastic-ftp',
|
|
71
|
-
DEFAULT_FTP_PASS: '7D413EB6L6',
|
|
72
|
-
},
|
|
73
55
|
};
|
|
74
56
|
switch (job.params.environment) {
|
|
75
57
|
case 'develop':
|
|
76
|
-
ConfigBuilder.defaultConfig = developConfig;
|
|
77
58
|
return developConfig;
|
|
78
59
|
case 'stage':
|
|
79
|
-
ConfigBuilder.defaultConfig = stageConfig;
|
|
80
60
|
return stageConfig;
|
|
81
61
|
case 'production':
|
|
82
|
-
ConfigBuilder.defaultConfig = productionConfig;
|
|
83
62
|
return productionConfig;
|
|
84
63
|
default:
|
|
85
64
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigBuilder.js","sourceRoot":"","sources":["../../src/config/ConfigBuilder.ts"],"names":[],"mappings":";;AAEA,MAAa,aAAa;
|
|
1
|
+
{"version":3,"file":"ConfigBuilder.js","sourceRoot":"","sources":["../../src/config/ConfigBuilder.ts"],"names":[],"mappings":";;AAEA,MAAa,aAAa;IACxB,MAAM,CAAC,QAAQ,CAAC,GAAyB;QACvC,MAAM,WAAW,GAAG,eAAe,CAAC;QACpC,MAAM,SAAS,GAAG,iBAAiB,CAAC;QACpC,MAAM,cAAc,GAAG,SAAS,CAAC;QAEjC,MAAM,aAAa,GAAoB;YACrC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK;YAC7B,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW;YACnC,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,wBAAwB,EAAE;gBACxB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM;gBACzB,MAAM,EAAE,eAAe,WAAW,yBAAyB;aAC5D;YACD,MAAM,EAAE;gBACN,cAAc,EAAE,oBAAoB;gBACpC,uBAAuB,EAAE,mBAAmB;gBAC5C,eAAe,EAAE,YAAY;gBAC7B,YAAY,EAAE,MAAM;aACrB;SACF,CAAC;QACF,MAAM,WAAW,GAAoB;YACnC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK;YAC7B,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW;YACnC,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,wBAAwB,EAAE;gBACxB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM;gBACzB,MAAM,EAAE,eAAe,SAAS,yBAAyB;aAC1D;YACD,MAAM,EAAE;gBACN,cAAc,EAAE,sBAAsB;gBACtC,uBAAuB,EAAE,qBAAqB;gBAC9C,eAAe,EAAE,cAAc;gBAC/B,YAAY,EAAE,MAAM;aACrB;SACF,CAAC;QACF,MAAM,gBAAgB,GAAoB;YACxC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK;YAC7B,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW;YACnC,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,wBAAwB,EAAE;gBACxB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM;gBACzB,MAAM,EAAE,eAAe,cAAc,yBAAyB;aAC/D;YACD,MAAM,EAAE;gBACN,cAAc,EAAE,qBAAqB;gBACrC,uBAAuB,EAAE,oBAAoB;gBAC7C,eAAe,EAAE,QAAQ;gBACzB,YAAY,EAAE,MAAM;aACrB;SACF,CAAC;QAEF,QAAQ,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE;YAC9B,KAAK,SAAS;gBACZ,OAAO,aAAa,CAAC;YACvB,KAAK,OAAO;gBACV,OAAO,WAAW,CAAC;YACrB,KAAK,YAAY;gBACf,OAAO,gBAAgB,CAAC;YAC1B;gBACE,OAAO,IAAI,CAAC;SACf;IACH,CAAC;CACF;AAlED,sCAkEC"}
|
package/dist/index.js
CHANGED
|
@@ -11,53 +11,35 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
11
11
|
require("reflect-metadata");
|
|
12
12
|
const chunkable_1 = require("@bytebrand/chunkable");
|
|
13
13
|
const config_1 = require("./config");
|
|
14
|
-
const index_1 = require("./modules/car-loader/index");
|
|
15
|
-
const acrhiver_1 = require("./modules/acrhiver");
|
|
16
|
-
const car_exporter_1 = require("./modules/car-exporter");
|
|
17
|
-
const ftp_1 = require("@bytebrand/chunkable/dist/ftp");
|
|
18
14
|
const rl = require('readline').createInterface({ input: process.stdin });
|
|
19
15
|
rl.on('line', (line) => __awaiter(this, void 0, void 0, function* () {
|
|
20
16
|
try {
|
|
21
17
|
const job = {
|
|
22
|
-
id: '
|
|
18
|
+
id: '1',
|
|
23
19
|
params: {
|
|
24
|
-
apikey: '
|
|
25
|
-
environment: '
|
|
26
|
-
|
|
27
|
-
// environment: 'develop',
|
|
28
|
-
limit: 1000,
|
|
20
|
+
apikey: 'AIzaSyC-jmLAkt2pVO0t-beLIuZJwR4jiGpzYyU',
|
|
21
|
+
environment: 'develop',
|
|
22
|
+
limit: 500,
|
|
29
23
|
},
|
|
30
24
|
};
|
|
31
25
|
// const job: ChunkableInterfaces.CronicleJobInterface = JSON.parse(line);
|
|
32
26
|
process.stdout.write(`Running job: ${job.id}: ${JSON.stringify(job)}\n`);
|
|
33
27
|
const config = config_1.ConfigBuilder.mkConfig(job);
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
loader.start();
|
|
48
|
-
exporter.onChunk((chunk) => {
|
|
49
|
-
archiver.clear();
|
|
50
|
-
process.stdout.write(`${JSON.stringify({ progress: 1 })}\n`);
|
|
51
|
-
process.stdout.write(`${JSON.stringify({ complete: 1, code: 0 })}\n`);
|
|
52
|
-
process.exit();
|
|
53
|
-
// rl.close();
|
|
54
|
-
return Promise.resolve(true);
|
|
55
|
-
});
|
|
56
|
-
}));
|
|
57
|
-
// rl.close();
|
|
28
|
+
const loader = new chunkable_1.Loaders.CarBasicDataCarsLoader({
|
|
29
|
+
pathesConfig: config.pathes,
|
|
30
|
+
limit: config.chunk_limit,
|
|
31
|
+
cbdUrl: config.projectRelatedParameters.cbdUrl,
|
|
32
|
+
apikey: config.projectRelatedParameters.apikey,
|
|
33
|
+
});
|
|
34
|
+
loader.onChunk((chunk) => {
|
|
35
|
+
console.log(chunk);
|
|
36
|
+
return Promise.resolve();
|
|
37
|
+
});
|
|
38
|
+
yield loader.start();
|
|
39
|
+
process.stdout.write(`${JSON.stringify({ complete: 1, code: 0 })}\n`);
|
|
40
|
+
rl.close();
|
|
58
41
|
}
|
|
59
42
|
catch (e) {
|
|
60
|
-
// rl.close();
|
|
61
43
|
process.stderr.write(`${JSON.stringify({ complete: 1, code: 1, description: e.message })}\n`);
|
|
62
44
|
}
|
|
63
45
|
}));
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,4BAA0B;AAC1B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,4BAA0B;AAC1B,oDAK8B;AAC9B,qCAAyC;AAEzC,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;AAEzE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAO,IAAY,EAAE,EAAE;IACnC,IAAI;QACF,MAAM,GAAG,GAA6C;YACpD,EAAE,EAAE,GAAG;YACP,MAAM,EAAE;gBACN,MAAM,EAAE,yCAAyC;gBACjD,WAAW,EAAE,SAAS;gBACtB,KAAK,EAAE,GAAG;aACX;SACF,CAAC;QACF,0EAA0E;QAE1E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEzE,MAAM,MAAM,GAAwC,sBAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAEhF,MAAM,MAAM,GAAsB,IAAI,mBAAO,CAAC,sBAAsB,CAAC;YACnE,YAAY,EAAE,MAAM,CAAC,MAAM;YAC3B,KAAK,EAAE,MAAM,CAAC,WAAW;YACzB,MAAM,EAAE,MAAM,CAAC,wBAAwB,CAAC,MAAM;YAC9C,MAAM,EAAE,MAAM,CAAC,wBAAwB,CAAC,MAAM;SAC/C,CAAC,CAAC;QACH,MAAM,CAAC,OAAO,CAAC,CAAC,KAAyC,EAAE,EAAE;YAC3D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACnB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;QACH,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACtE,EAAE,CAAC,KAAK,EAAE,CAAC;KACZ;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;KAC/F;AACH,CAAC,CAAA,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bytebrand/export-cars",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.3",
|
|
4
4
|
"description": "Run python ML script for find good and bad prices on car list",
|
|
5
5
|
"author": "Bytebrand <info@bytebrand.net>",
|
|
6
6
|
"license": "UNLICENSED",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"dependencies": {
|
|
16
16
|
"@bytebrand/car-basic-data-scope": "~2.0.11",
|
|
17
17
|
"@bytebrand/car-schema": "~0.14.12",
|
|
18
|
-
"@bytebrand/chunkable": "^2.1.
|
|
18
|
+
"@bytebrand/chunkable": "^2.1.3",
|
|
19
19
|
"@bytebrand/event-emitter": "^1.0.8",
|
|
20
20
|
"@bytebrand/ftp-queue-subscriber": "^1.0.16",
|
|
21
21
|
"basic-ftp": "^3.1.1",
|
|
@@ -38,5 +38,5 @@
|
|
|
38
38
|
"tslint-eslint-rules": "^5.1.0",
|
|
39
39
|
"typescript": "^3.2.4"
|
|
40
40
|
},
|
|
41
|
-
"gitHead": "
|
|
41
|
+
"gitHead": "d20a1acebdf3cec60b085eb7d4341286fcd3b427"
|
|
42
42
|
}
|
package/readme.md
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
start script
|
|
1
|
+
###start script
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
``./node_modules/.bin/ts-node src/index.ts``
|
|
4
4
|
|
|
5
5
|
after it type next line
|
|
6
6
|
|
|
7
|
-
``{"id": 1, "params": {
|
|
7
|
+
``{"id": 1, "params": {}}``
|
|
8
|
+
|
|
9
|
+
###start script on Cronicle
|
|
10
|
+
|
|
11
|
+
``node node_modules/@bytebrand/cars-export/dist/index.js``
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { ConfigInterface, CronicleJobInterface } from '@bytebrand/chunkable';
|
|
2
2
|
|
|
3
3
|
export class ConfigBuilder {
|
|
4
|
-
static defaultConfig: ConfigInterface;
|
|
5
4
|
static mkConfig(job: CronicleJobInterface): ConfigInterface {
|
|
6
5
|
const developRoot = 'autode-dev.de';
|
|
7
6
|
const stageRoot = 'autode-stage.de';
|
|
@@ -22,12 +21,6 @@ export class ConfigBuilder {
|
|
|
22
21
|
remoteDirectory: 'import_dev',
|
|
23
22
|
baseFileName: 'cars',
|
|
24
23
|
},
|
|
25
|
-
ftpConfig: {
|
|
26
|
-
DEFAULT_FTP_HOST: '185.15.211.90',
|
|
27
|
-
DEFAULT_FTP_PORT: '21',
|
|
28
|
-
DEFAULT_FTP_USER: 'jelastic-ftp',
|
|
29
|
-
DEFAULT_FTP_PASS: '7D413EB6L6',
|
|
30
|
-
},
|
|
31
24
|
};
|
|
32
25
|
const stageConfig: ConfigInterface = {
|
|
33
26
|
chunk_limit: job.params.limit,
|
|
@@ -44,12 +37,6 @@ export class ConfigBuilder {
|
|
|
44
37
|
remoteDirectory: 'import_stage',
|
|
45
38
|
baseFileName: 'cars',
|
|
46
39
|
},
|
|
47
|
-
ftpConfig: {
|
|
48
|
-
DEFAULT_FTP_HOST: '185.15.211.90',
|
|
49
|
-
DEFAULT_FTP_PORT: '21',
|
|
50
|
-
DEFAULT_FTP_USER: 'jelastic-ftp',
|
|
51
|
-
DEFAULT_FTP_PASS: '7D413EB6L6',
|
|
52
|
-
},
|
|
53
40
|
};
|
|
54
41
|
const productionConfig: ConfigInterface = {
|
|
55
42
|
chunk_limit: job.params.limit,
|
|
@@ -66,23 +53,14 @@ export class ConfigBuilder {
|
|
|
66
53
|
remoteDirectory: 'import',
|
|
67
54
|
baseFileName: 'cars',
|
|
68
55
|
},
|
|
69
|
-
ftpConfig: {
|
|
70
|
-
DEFAULT_FTP_HOST: '185.15.211.90',
|
|
71
|
-
DEFAULT_FTP_PORT: '21',
|
|
72
|
-
DEFAULT_FTP_USER: 'jelastic-ftp',
|
|
73
|
-
DEFAULT_FTP_PASS: '7D413EB6L6',
|
|
74
|
-
},
|
|
75
56
|
};
|
|
76
57
|
|
|
77
58
|
switch (job.params.environment) {
|
|
78
59
|
case 'develop':
|
|
79
|
-
ConfigBuilder.defaultConfig = developConfig;
|
|
80
60
|
return developConfig;
|
|
81
61
|
case 'stage':
|
|
82
|
-
ConfigBuilder.defaultConfig = stageConfig;
|
|
83
62
|
return stageConfig;
|
|
84
63
|
case 'production':
|
|
85
|
-
ConfigBuilder.defaultConfig = productionConfig;
|
|
86
64
|
return productionConfig;
|
|
87
65
|
default:
|
|
88
66
|
return null;
|
package/src/index.ts
CHANGED
|
@@ -1,23 +1,22 @@
|
|
|
1
1
|
import 'reflect-metadata';
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
Interfaces as ChunkableInterfaces,
|
|
4
|
+
AbstractChunkable,
|
|
5
|
+
Loaders,
|
|
6
|
+
ConfigInterface,
|
|
7
|
+
} from '@bytebrand/chunkable';
|
|
3
8
|
import { ConfigBuilder } from './config';
|
|
4
|
-
import { getLoader } from './modules/car-loader/index';
|
|
5
|
-
import { getArhiver } from './modules/acrhiver';
|
|
6
|
-
import { getExporter } from './modules/car-exporter';
|
|
7
|
-
import { getEventEmitter } from '@bytebrand/chunkable/dist/ftp';
|
|
8
9
|
|
|
9
10
|
const rl = require('readline').createInterface({ input: process.stdin });
|
|
10
11
|
|
|
11
12
|
rl.on('line', async (line: string) => {
|
|
12
13
|
try {
|
|
13
14
|
const job: ChunkableInterfaces.CronicleJobInterface = {
|
|
14
|
-
id: '
|
|
15
|
+
id: '1',
|
|
15
16
|
params: {
|
|
16
|
-
apikey: '
|
|
17
|
-
environment: '
|
|
18
|
-
|
|
19
|
-
// environment: 'develop',
|
|
20
|
-
limit: 1000,
|
|
17
|
+
apikey: 'AIzaSyC-jmLAkt2pVO0t-beLIuZJwR4jiGpzYyU',
|
|
18
|
+
environment: 'develop',
|
|
19
|
+
limit: 500,
|
|
21
20
|
},
|
|
22
21
|
};
|
|
23
22
|
// const job: ChunkableInterfaces.CronicleJobInterface = JSON.parse(line);
|
|
@@ -26,37 +25,20 @@ rl.on('line', async (line: string) => {
|
|
|
26
25
|
|
|
27
26
|
const config: ChunkableInterfaces.ConfigInterface = ConfigBuilder.mkConfig(job);
|
|
28
27
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
return archiver.start(chunks);
|
|
39
|
-
});
|
|
40
|
-
archiver.onFinish((chunks: ChunkableInterfaces.ChunkInterface[]) => {
|
|
41
|
-
loader.clear();
|
|
42
|
-
process.stdout.write(`${JSON.stringify({ progress: 0.66 })}\n`);
|
|
43
|
-
return exporter.start(chunks);
|
|
44
|
-
});
|
|
45
|
-
loader.start();
|
|
46
|
-
|
|
47
|
-
exporter.onChunk((chunk) => {
|
|
48
|
-
archiver.clear();
|
|
49
|
-
process.stdout.write(`${JSON.stringify({ progress: 1 })}\n`);
|
|
50
|
-
|
|
51
|
-
process.stdout.write(`${JSON.stringify({ complete: 1, code: 0 })}\n`);
|
|
52
|
-
process.exit();
|
|
53
|
-
// rl.close();
|
|
54
|
-
return Promise.resolve(true);
|
|
55
|
-
});
|
|
28
|
+
const loader: AbstractChunkable = new Loaders.CarBasicDataCarsLoader({
|
|
29
|
+
pathesConfig: config.pathes,
|
|
30
|
+
limit: config.chunk_limit,
|
|
31
|
+
cbdUrl: config.projectRelatedParameters.cbdUrl,
|
|
32
|
+
apikey: config.projectRelatedParameters.apikey,
|
|
33
|
+
});
|
|
34
|
+
loader.onChunk((chunk: ChunkableInterfaces.ChunkInterface) => {
|
|
35
|
+
console.log(chunk);
|
|
36
|
+
return Promise.resolve();
|
|
56
37
|
});
|
|
57
|
-
|
|
38
|
+
await loader.start();
|
|
39
|
+
process.stdout.write(`${JSON.stringify({ complete: 1, code: 0 })}\n`);
|
|
40
|
+
rl.close();
|
|
58
41
|
} catch (e) {
|
|
59
|
-
// rl.close();
|
|
60
42
|
process.stderr.write(`${JSON.stringify({ complete: 1, code: 1, description: e.message })}\n`);
|
|
61
43
|
}
|
|
62
44
|
});
|
package/src/interfaces/index.ts
DELETED
|
File without changes
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { AbstractChunkable, Interfaces } from '@bytebrand/chunkable';
|
|
2
|
-
import * as tar from 'tar';
|
|
3
|
-
import moment from 'moment';
|
|
4
|
-
import fs from 'fs';
|
|
5
|
-
|
|
6
|
-
export class TarArchiver extends AbstractChunkable {
|
|
7
|
-
doChunk(chunk?: Interfaces.ChunkInterface): Promise<boolean> {
|
|
8
|
-
throw new Error('This converter works with full data use doStart');
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
async clear() {
|
|
12
|
-
for (const chunk of this.chunks) {
|
|
13
|
-
fs.unlinkSync(this.getChunkPath(chunk));
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
doStart(chunks?: Interfaces.ChunkInterface[]) {
|
|
18
|
-
const archiveChunk = this.createChunk(moment().format('DD_MM_YY'), 'tgz');
|
|
19
|
-
archiveChunk.currentLocation = this.pathesConfig.localDirectory;
|
|
20
|
-
const options: tar.FileOptions & tar.CreateOptions = {
|
|
21
|
-
gzip: true,
|
|
22
|
-
file: this.getChunkPath(archiveChunk),
|
|
23
|
-
cwd: this.pathesConfig.localDirectory,
|
|
24
|
-
};
|
|
25
|
-
const files = chunks.map((chunk) => this.getChunkFileName(chunk));
|
|
26
|
-
|
|
27
|
-
return (tar.create(options, files) as any).then(() => {
|
|
28
|
-
this.chunks.push(archiveChunk);
|
|
29
|
-
return this.onFinishCallback([ archiveChunk ]);
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { TarArchiver } from './TarArchiver';
|
|
2
|
-
import { AbstractChunkable, ConfigInterface, ChunkableFactoryInterface } from '@bytebrand/chunkable';
|
|
3
|
-
|
|
4
|
-
export const getArhiver: ChunkableFactoryInterface = (config: ConfigInterface) => {
|
|
5
|
-
return (new TarArchiver({ pathesConfig: config.pathes, limit: config.chunk_limit }) as AbstractChunkable);
|
|
6
|
-
};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { Exporters, ConfigInterface, ChunkableFactoryInterface, FTP } from '@bytebrand/chunkable';
|
|
2
|
-
import { EventEmitter } from '@bytebrand/event-emitter';
|
|
3
|
-
|
|
4
|
-
export const getExporter: ChunkableFactoryInterface = (
|
|
5
|
-
config: ConfigInterface & { eventEmitter: EventEmitter<any> },
|
|
6
|
-
) => {
|
|
7
|
-
return new Exporters.FtpCarsJsonExporter(config.eventEmitter, {
|
|
8
|
-
pathesConfig: config.pathes,
|
|
9
|
-
limit: config.chunk_limit,
|
|
10
|
-
});
|
|
11
|
-
};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { Loaders, ConfigInterface, ChunkableFactoryInterface, FTP } from '@bytebrand/chunkable';
|
|
2
|
-
|
|
3
|
-
export const getLoader: ChunkableFactoryInterface = (config: ConfigInterface) => {
|
|
4
|
-
return new Loaders.CarBasicDataCarsLoader({
|
|
5
|
-
pathesConfig: config.pathes,
|
|
6
|
-
limit: config.chunk_limit,
|
|
7
|
-
cbdUrl: config.projectRelatedParameters.cbdUrl,
|
|
8
|
-
apikey: config.projectRelatedParameters.apikey,
|
|
9
|
-
});
|
|
10
|
-
};
|