UNPKG

i2c-ftdi-d2xx

Version:

i2c protocol implementation with ftdi-d2xx on standard boards that features no level translators on SDA and SCL

77 lines (68 loc) 1.86 kB
const fs = require('fs'); const fsp = require('fs').promises; const path = require('path'); const readFile = (filePath) => { return new Promise((resolve, reject) => { fs.readFile(filePath, 'utf8', (err, data) => { if (err) { reject(err); } else { resolve(data); } }); }); } const writeFile = (data, filePath) => { return new Promise((resolve, reject) => { fs.writeFile(filePath, data, 'utf8', (err) => { if (err) { reject(err); } else { resolve(); } }); }); } const saveTextFile = async (fileString, filePath) => { const res = {result: 'fail'}; try { await writeFile(fileString, filePath); res.result = 'pass'; } catch (error) { res.error = error; } return res; } const loadTextFile = async (filepath) => { const res = {result: 'fail'}; try { const data = await readFile(filepath); res.result = 'pass'; res.data = data; } catch (error) { res.error = error; } return res; } const createFileIfItDoesNotExist = async (filepath) => { const dirpath = path.dirname(filepath); await fsp.mkdir(dirpath, { recursive: true }); let result; try { await fsp.access(filepath); result = `File ${filepath} exists`; } catch (error) { if (error.code === 'ENOENT') { await fsp.writeFile(filepath, '', 'utf8'); result = `File ${filepath} was not existing and has been created`; } else { throw new FileError(error) } } return result; } module.exports.readFile = readFile; module.exports.writeFile = writeFile; module.exports.saveTextFile = saveTextFile; module.exports.loadTextFile = loadTextFile; module.exports.createFileIfItDoesNotExist = createFileIfItDoesNotExist;