1
1
const xlsx = require ( 'node-xlsx' ) ;
2
2
const fs = require ( 'fs' ) ;
3
- const path = require ( 'path' ) ;
4
3
const getValuesFromFile = require ( './utils/getValuesFromFile' ) ;
5
4
const getValuesFromArray = require ( './utils/getValuesFromArray' ) ;
6
- const config = fs . existsSync ( path . resolve ( __dirname , './../../xlsx-json-parser.config.js' ) ) ? require ( '../../xlsx-json-parser.config.js' ) : require ( './xlsx-json-parser.config.js' ) ;
7
- let listNumber = config . listNumber ;
8
- let withFilenames = config . withFilenames ;
9
- let xlsxDir = config . xlsxDir ;
10
- let jsonDir = config . jsonDir ;
11
-
12
- /**
13
- * Get arguments from command line
14
- * >node index listNumber xlsxDir jsonDir --wfn
15
- */
16
- process . argv . forEach ( function ( val ) {
17
- listNumber = val . includes ( '--ln=' ) ? parseInt ( val . split ( '=' ) [ 1 ] ) : config . listNumber ;
18
- withFilenames = val . includes ( '--wfn' ) ? val : config . withFilenames ;
19
- xlsxDir = val . includes ( '--xlsx=' ) ? val . split ( '=' ) [ 1 ] : config . xlsxDir ;
20
- jsonDir = val . includes ( '--json=' ) ? val . split ( '=' ) [ 1 ] : config . jsonDir ;
21
- } ) ;
5
+ const config = require ( './utils/getConfig' ) ;
22
6
23
7
/**
24
8
* Close app when folder with xlsx not found
25
9
*/
26
- if ( ! fs . existsSync ( xlsxDir ) ) {
27
- console . log ( `Folder ${ xlsxDir } with xlsx files doesn't exist. Checking your config file or directory.` ) ;
10
+ if ( ! fs . existsSync ( config . xlsxDir ) ) {
11
+ console . log ( `Folder ${ config . xlsxDir } with Excel files doesn't exist. Checking your config file or directory.` ) ;
28
12
process . exit ( ) ;
29
13
}
30
14
31
15
/**
32
16
* Creating json directory if doesn't exist
33
17
*/
34
18
try {
35
- fs . mkdirSync ( jsonDir ) ;
19
+ fs . mkdirSync ( config . jsonDir ) ;
36
20
} catch ( err ) {
37
- console . log ( `Directory ${ jsonDir } already exist. And it's okay.` ) ;
21
+ // No need to do something
38
22
}
39
23
40
- fs . readdir ( xlsxDir , ( err , files ) => {
24
+ fs . readdir ( config . xlsxDir , ( err , files ) => {
41
25
files . forEach ( file => {
42
26
if ( file . toString ( ) . includes ( '.xls' ) ) {
43
27
const filename = file . replace ( / ( ( .x l s x ) | ( .x l s ) ) / g, '' ) ;
44
- const excelArray = xlsx . parse ( `./ ${ xlsxDir } / ${ file } ` ) ;
28
+ const excelArray = xlsx . parse ( `${ config . xlsxDir + file } ` ) ;
45
29
46
30
const list = ( listNumber ) => {
47
31
return typeof excelArray [ listNumber - 1 ] !== 'undefined' ? excelArray [ listNumber - 1 ] : console . log ( 'List empty' ) ;
48
32
} ;
49
33
50
- const currentList = list ( listNumber ) ;
34
+ const currentList = list ( config . listNumber ) ;
51
35
52
36
if ( typeof currentList !== 'undefined' && currentList . data . length > 0 ) {
53
37
const langs = currentList . data [ 0 ] ;
54
38
const langsCount = langs . length ;
55
39
const tt = getValuesFromArray ( currentList . data , langsCount ) ;
56
40
57
41
for ( let i = 0 ; i < langs . length ; i ++ ) {
58
- const file = `${ jsonDir } / ${ langs [ i ] } ${ withFilenames ? `_${ filename } ` : '' } .json` ;
42
+ const file = `${ config . jsonDir + langs [ i ] } ${ config . withFilenames ? `_${ filename } ` : '' } .json` ;
59
43
let valuesArr = tt [ `${ langs [ i ] } ` ] ;
60
44
let valuesToWrite , status ;
61
45
@@ -66,13 +50,13 @@ fs.readdir(xlsxDir, (err, files) => {
66
50
try {
67
51
fs . writeFileSync ( file , valuesToWrite ) ;
68
52
69
- console . log ( `${ langs [ i ] } ${ withFilenames ? `_${ filename } ` : '' } .json was ${ status } in ${ jsonDir } ` ) ;
53
+ console . log ( `${ langs [ i ] } ${ config . withFilenames ? `_${ filename } ` : '' } .json was ${ status } in ${ config . jsonDir } ` ) ;
70
54
} catch ( err ) {
71
55
return console . log ( 'Error: ' + err ) ;
72
56
}
73
57
}
74
58
} else {
75
- return console . log ( 'File ' + file + ' has no list ' + listNumber + '.\nTry another file or list.' ) ;
59
+ return console . log ( 'File ' + file + ' has no list ' + config . listNumber + '.\nTry another file or list.' ) ;
76
60
}
77
61
}
78
62
} ) ;
0 commit comments