electron/lib/browser/api/session.js

34 lines
888 B
JavaScript
Raw Normal View History

const EventEmitter = require('events').EventEmitter
const bindings = process.atomBinding('session')
const PERSIST_PREFIX = 'persist:'
2016-01-12 02:40:23 +00:00
2016-01-14 18:35:29 +00:00
// Returns the Session from |partition| string.
exports.fromPartition = function (partition) {
2016-01-12 02:40:23 +00:00
if (partition == null) {
partition = ''
2016-01-12 02:40:23 +00:00
}
if (partition === '') {
return exports.defaultSession
2016-01-12 02:40:23 +00:00
}
if (partition.startsWith(PERSIST_PREFIX)) {
return bindings.fromPartition(partition.substr(PERSIST_PREFIX.length), false)
2016-01-12 02:40:23 +00:00
} else {
return bindings.fromPartition(partition, true)
2016-01-12 02:40:23 +00:00
}
}
2016-01-12 02:40:23 +00:00
2016-01-14 18:35:29 +00:00
// Returns the default session.
2016-01-12 02:40:23 +00:00
Object.defineProperty(exports, 'defaultSession', {
enumerable: true,
get: function () {
return bindings.fromPartition('', false)
2016-01-12 02:40:23 +00:00
}
})
2016-01-12 02:40:23 +00:00
var wrapSession = function (session) {
2016-01-14 18:35:29 +00:00
// session is an EventEmitter.
Object.setPrototypeOf(session, EventEmitter.prototype)
}
2016-01-12 02:40:23 +00:00
bindings._setWrapSession(wrapSession)