summaryrefslogtreecommitdiff
path: root/file.js
blob: 16f2c941bc87fa9329ae4e3b5c3e6f16ecf85827 (plain)
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
#!/usr/bin/node

const R = require('ramda'),
  Future = require('fluture')
  fsPath = require('fs-path');

function loadFPayloads(config) {
  return R.curry((file) =>
    Future.node((cb) => fsPath.readFile(file, 'utf8', cb))
          .chain(Future.encase(JSON.parse))
  );
}

function saveFPayloads(config) {
  return R.curry((file, data) =>
    Future.node((cb) => fsPath.writeFile(file, JSON.stringify(data), cb))
  );
}

function saveFPayloadsTimestamped(config) {
  return R.curry((timestamp, data) =>
    saveFPayloads(config)(config.pattern(timestamp), data)
  );
}

module.exports = {
  loadFPayloads,
  saveFPayloads,
  saveFPayloadsTimestamped,
};