UNPKG

@iobroker/js-controller-common-db

Version:

The Library contains the common utils for the ioBroker controller which can be used by db classes too, as they do not rely on the db (circular dependencies).

71 lines (70 loc) 2.21 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var session_exports = {}; __export(session_exports, { createAdapterStore: () => createAdapterStore }); module.exports = __toCommonJS(session_exports); function createAdapterStore(session, defaultTtl = 3600) { const Store = session.Store; class AdapterStore extends Store { constructor(options) { super(options); this.adapter = options.adapter; options = options || {}; if (!options.cookie) { options.cookie = { maxAge: defaultTtl }; } Store.call(this, options); } get(sid, fn) { this.adapter.getSession(sid, (obj) => { if (obj) { if (fn) { return fn(null, obj); } } else { if (fn) { return fn(); } } }); } set(sid, ttl, sess, fn) { if (typeof ttl === "object") { fn = sess; sess = ttl; ttl = sess && sess.cookie && sess.cookie.originalMaxAge ? Math.round(sess.cookie.originalMaxAge / 1e3) : defaultTtl; } ttl = ttl || defaultTtl; this.adapter.setSession(sid, ttl, sess, function() { fn && fn.apply(this, arguments); }); } destroy(sid, fn) { this.adapter.destroySession(sid, fn); } } return AdapterStore; } // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { createAdapterStore }); //# sourceMappingURL=session.js.map