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

34 lines
893 B
JavaScript
Raw Normal View History

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