wip: monorepro

This commit is contained in:
nanov
2019-10-11 10:46:37 +03:00
parent 0f6dcf9eb2
commit 82b226eec2
57 changed files with 66 additions and 86 deletions

View File

@@ -0,0 +1,29 @@
'use strict';
const fs = require('fs');
module.exports = (pathToFile) => {
const path = pathToFile;
return {
write(data) {
return new Promise((resolve, reject) => {
fs.writeFile(path, data, { encoding: 'utf8' }, (error) => {
if (error) reject(error);
return resolve();
});
});
},
read() {
return new Promise((resolve, reject) => {
fs.readFile(path, { encoding: 'utf8' }, (error, data) => {
if (error) reject(error);
return resolve(data);
});
});
},
};
};

View File

@@ -0,0 +1,67 @@
'use strict';
const fs = require('fs');
const uuidv1 = require('uuid/v1');
const traceName = (uuid, label, type, ext = 'xml') => {
return `${uuid}_${label}_${type}.${ext}`;
};
module.exports = dir => ({
traceData: '',
traceLabel: '',
lastTraceID: null,
connectToLastTrace: false,
label(str) {
this.traceLabel = str;
return this;
},
data(data) {
if (!data)
throw Error('No trace given to be persisted.');
this.traceData = data;
return this;
},
ofType(type) {
this.type = type;
return this;
},
new() {
this.connectToLastTrace = false;
return this;
},
connect() {
this.connectToLastTrace = true;
return this;
},
persist() {
if (!dir)
throw Error('No directory to save the traces to provided.');
this.lastTraceID = this.connectToLastTrace ? this.lastTraceID : uuidv1();
const name = traceName(this.lastTraceID, this.traceLabel, this.type);
const path = `${dir}/${name}`;
try {
fs.writeFileSync(path, this.traceData);
console.log("Data written to file");
} catch (error) {
console.log(error);
throw error;
}
},
});