electron/atom/browser/api/lib/session.js
2016-01-12 16:24:06 -08:00

42 lines
945 B
JavaScript

var EventEmitter, PERSIST_PERFIX, bindings, wrapSession;
EventEmitter = require('events').EventEmitter;
bindings = process.atomBinding('session');
PERSIST_PERFIX = 'persist:';
/* Returns the Session from |partition| string. */
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);
}
};
/* Returns the default session. */
Object.defineProperty(exports, 'defaultSession', {
enumerable: true,
get: function() {
return bindings.fromPartition('', false);
}
});
wrapSession = function(session) {
/* session is an EventEmitter. */
return session.__proto__ = EventEmitter.prototype;
};
bindings._setWrapSession(wrapSession);