| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- /**
- * @author oldj
- * @blog http://oldj.net
- */
- 'use strict'
- const fs = require('fs')
- const paths = require('./paths')
- const io = require('./io')
- let is_loaded
- let data = {}
- let _t
- function load () {
- if (io.isFile(paths.preference_path)) {
- let cnt = fs.readFileSync(paths.preference_path, 'utf-8')
- try {
- data = JSON.parse(cnt)
- } catch (e) {
- console.log(e)
- }
- }
- return data
- }
- function get (key, default_value = null) {
- if (!is_loaded) load()
- return key in data ? data[key] : default_value
- }
- function set (key, value, callback) {
- clearTimeout(_t)
- if (!is_loaded) load()
- data[key] = value
- _t = setTimeout(() => {
- fs.writeFile(paths.preference_path, JSON.stringify(data), 'utf-8', (err) => {
- if (err) {
- console.log(err)
- }
- typeof callback === 'function' && callback(err)
- })
- }, 100)
- }
- module.exports = {
- load: load,
- get: get,
- set: set
- }
|