mirror of
https://github.com/atom/atom.git
synced 2026-01-23 13:58:08 -05:00
28 lines
748 B
CoffeeScript
28 lines
748 B
CoffeeScript
path = require "path"
|
|
fs = require "fs-plus"
|
|
|
|
module.exports =
|
|
class StorageFolder
|
|
constructor: (containingPath) ->
|
|
@path = path.join(containingPath, "storage")
|
|
|
|
store: (name, object) ->
|
|
fs.writeFileSync(@pathForKey(name), JSON.stringify(object), 'utf8')
|
|
|
|
load: (name) ->
|
|
statePath = @pathForKey(name)
|
|
try
|
|
stateString = fs.readFileSync(statePath, 'utf8')
|
|
catch error
|
|
unless error.code is 'ENOENT'
|
|
console.warn "Error reading state file: #{statePath}", error.stack, error
|
|
return undefined
|
|
|
|
try
|
|
JSON.parse(stateString)
|
|
catch error
|
|
console.warn "Error parsing state file: #{statePath}", error.stack, error
|
|
|
|
pathForKey: (name) -> path.join(@getPath(), name)
|
|
getPath: -> @path
|