config.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. 'use strict';
  2. const Store = require('electron-store');
  3. const userSettingsSchema = {
  4. lang: {
  5. type: 'string'
  6. },
  7. width: {
  8. type: 'number',
  9. minimum: 800
  10. },
  11. height: {
  12. type: 'number',
  13. minimum: 400
  14. },
  15. maximized: {
  16. type: 'boolean'
  17. },
  18. minimizedToTray: {
  19. type: 'boolean'
  20. },
  21. pos_x: {
  22. type: 'number'
  23. },
  24. pos_y: {
  25. type: 'number'
  26. },
  27. notificationSound: {
  28. type: 'boolean'
  29. },
  30. execCommandOnStartup: {
  31. type: 'string'
  32. },
  33. execCommandArgumentsOnStartup: {
  34. type: 'string'
  35. },
  36. execDetachedCommandOnStartup: {
  37. type: 'boolean'
  38. },
  39. lastCheckUpdatesTime: {
  40. type: 'number'
  41. }
  42. };
  43. const userSettingsStore = new Store({userSettingsSchema});
  44. let config = {
  45. lang: userSettingsStore.get('lang'),
  46. width: userSettingsStore.get('width') || 950,
  47. height: userSettingsStore.get('height') || 600,
  48. x: userSettingsStore.get('x'),
  49. y: userSettingsStore.get('y'),
  50. maximized: !!userSettingsStore.get('maximized'),
  51. defaultPosition: userSettingsStore.get('defaultPosition') || 'last-position',
  52. minimizedToTray: userSettingsStore.get('minimizedToTray', true),
  53. notificationSound: userSettingsStore.get('notificationSound', true),
  54. execCommandOnStartup: userSettingsStore.get('execCommandOnStartup'),
  55. execCommandArgumentsOnStartup: userSettingsStore.get('execCommandArgumentsOnStartup'),
  56. execDetachedCommandOnStartup: userSettingsStore.get('execDetachedCommandOnStartup', false),
  57. lastCheckUpdatesTime: userSettingsStore.get('lastCheckUpdatesTime') || 0,
  58. save: function (item) {
  59. if (item && this[item] !== undefined) {
  60. userSettingsStore.set(item, this[item]);
  61. }
  62. }
  63. };
  64. module.exports = config;