-
Notifications
You must be signed in to change notification settings - Fork 0
/
file-util.js
49 lines (43 loc) · 986 Bytes
/
file-util.js
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
"use strict";
const path = require('path');
const fs = require('fs');
/**
* Returns the file extension (lower case).
* @param {*} filePath
*/
const getFileExtension = (filePath) => {
return path.extname(filePath).toLowerCase();
}
/**
* Checks the file.
* @param {*} filePath
*/
const checkFile = (filePath) => {
const extension = getFileExtension(filePath);
if (extension !== '.json' && extension !== '.csv') {
throw new Error('Invalid file extension. Try JSON ou CSV files.');
}
};
/**
* Returns true if it is a CSV file.
* @param {*} filePath
*/
const isCsv = (filePath) => {
return getFileExtension(filePath) === '.csv';
};
/**
* Read the file from the path.
* @param {*} dataPath
*/
const readFile = (dataPath) => {
checkFile(dataPath);
const content = fs.readFileSync(dataPath, 'utf8');
if (isCsv(dataPath)) {
return content;
}
return JSON.parse(content);
};
module.exports = {
readFile,
isCsv
}