/** * Simple, non-persistant key-value store. Session is reactive, so it can * be used in conjunction with {@link Lens.Deps}, particularly * `Lens.Deps.autorun`. * * @namespace * @name Lens.Session */ define(["common/util/dep_map", "common/util/check"], function(DepMap, check) { "use strict"; var map = {}; var deps = DepMap(); var Session = /** @lends Lens.Session */ { /** * Sets key to value. * @param {String} key * @param {Object} value */ set: function(key, value) { check(key, String); if(map[key] === value) { return; } map[key] = value; deps.changed(key); }, /** * Gets the value of key. * @param {String} key */ get: function(key) { check(key, String); deps.depend(key); return map[key]; } }; Lens._addMember(Session, "Session"); return Session; });