You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.1 KiB
43 lines
1.1 KiB
import * as path from 'path'; |
|
import * as fs from 'fs'; |
|
import * as _ from 'lodash'; |
|
|
|
|
|
const DEFAULT_CONFIG = { |
|
'port': '8000' |
|
}; |
|
|
|
export const DATA_PATH = path.join(__dirname, '../data'); |
|
if(!fs.existsSync(DATA_PATH)) { |
|
console.log(`${DATA_PATH} doesn't exist, creating`); |
|
fs.mkdirSync(DATA_PATH); |
|
} |
|
export const CSV_PATH = path.join(DATA_PATH, 'csv'); |
|
if(!fs.existsSync(CSV_PATH)) { |
|
console.log(`${CSV_PATH} doesn't exist, creating`); |
|
fs.mkdirSync(CSV_PATH); |
|
} |
|
|
|
function getConfigField(field: string, defaultVal?: any) { |
|
let val = defaultVal; |
|
let configFile = path.join(__dirname, '../config.json'); |
|
|
|
if(!fs.existsSync(configFile)) { |
|
console.log(`${configFile} doesn't exist, creating`); |
|
fs.writeFileSync(configFile, JSON.stringify(DEFAULT_CONFIG), 'utf8'); |
|
} |
|
|
|
let data = fs.readFileSync(configFile, 'utf8'); |
|
let configField = JSON.parse(data)[field]; |
|
if(configField !== undefined) { |
|
val = configField; |
|
} |
|
|
|
if(val === undefined || val == '' || _.isEmpty(val)) { |
|
throw new Error(`Please configure ${field} in ${configFile}`); |
|
} |
|
|
|
return val; |
|
} |
|
|
|
export const port = getConfigField('port', '8000');
|
|
|