electron/atom/browser/api/lib/session.js

34 lines
893 B
JavaScript
Raw Normal View History

2016-01-14 21:18:52 +00:00
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.
2016-01-12 02:40:23 +00:00
exports.fromPartition = function(partition) {
if (partition == null) {
partition = '';
}
if (partition === '') {
return exports.defaultSession;
}
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-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-14 21:18:52 +00:00
var wrapSession = function(session) {
2016-01-14 18:35:29 +00:00
// session is an EventEmitter.
2016-01-12 02:40:23 +00:00
return session.__proto__ = EventEmitter.prototype;
};
bindings._setWrapSession(wrapSession);