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.
56 lines
1.2 KiB
56 lines
1.2 KiB
import * as fs from 'fs'; |
|
|
|
|
|
async function getJsonData(filename: string): Promise<Object> { |
|
var data = await new Promise<string>((resolve, reject) => { |
|
fs.readFile(filename, 'utf8', (err, data) => { |
|
if(err) { |
|
console.error(err); |
|
reject('Can`t read file'); |
|
} else { |
|
resolve(data); |
|
} |
|
}); |
|
}); |
|
|
|
try { |
|
return JSON.parse(data); |
|
} catch(e) { |
|
console.error(e); |
|
throw new Error('Wrong file format'); |
|
} |
|
} |
|
|
|
function writeJsonData(filename: string, data: Object) { |
|
return new Promise((resolve, reject) => { |
|
fs.writeFile(filename, JSON.stringify(data), 'utf8', (err) => { |
|
if(err) { |
|
console.error(err); |
|
reject('Cat`t write file'); |
|
} else { |
|
resolve(); |
|
} |
|
}); |
|
}) |
|
} |
|
|
|
function getJsonDataSync(filename: string) { |
|
let data = fs.readFileSync(filename, 'utf8'); |
|
try { |
|
return JSON.parse(data); |
|
} catch(e) { |
|
console.error(e); |
|
throw new Error('Wrong file format'); |
|
} |
|
} |
|
|
|
function writeJsonDataSync(filename: string, data: Object) { |
|
fs.writeFileSync(filename, JSON.stringify(data)); |
|
} |
|
|
|
export { |
|
getJsonData, |
|
writeJsonData, |
|
getJsonDataSync, |
|
writeJsonDataSync |
|
}
|
|
|