configSaver.js 841 B

12345678910111213141516171819202122232425262728293031323334353637
  1. const fs = require('fs-extra');
  2. const _ = require('lodash');
  3. const propsToSave = [
  4. 'maxUploadFileSize',
  5. 'maxTempPublicDirSize',
  6. 'maxUploadPublicDirSize',
  7. 'useExternalBookConverter',
  8. 'servers',
  9. ];
  10. async function load(config, configFilename) {
  11. if (!configFilename) {
  12. configFilename = `${config.dataDir}/config.json`;
  13. if (!await fs.pathExists(configFilename)) {
  14. save(config);
  15. return;
  16. }
  17. }
  18. const data = await fs.readFile(configFilename, 'utf8');
  19. Object.assign(config, JSON.parse(data));
  20. }
  21. async function save(config) {
  22. const configFilename = `${config.dataDir}/config.json`;
  23. const dataToSave = _.pick(config, propsToSave);
  24. await fs.writeFile(configFilename, JSON.stringify(dataToSave, null, 4));
  25. }
  26. module.exports = {
  27. load,
  28. save
  29. };