/node_modules/express/node_modules/connect/lib/middleware/session/cookie.js
https://bitbucket.org/gagginaspinnata/todo-app-with-angularjs · JavaScript · 128 lines · 46 code · 21 blank · 61 comment · 3 complexity · 4d6116c2fe8680736321e480f4cb5872 MD5 · raw file
- /*!
- * Connect - session - Cookie
- * Copyright(c) 2010 Sencha Inc.
- * Copyright(c) 2011 TJ Holowaychuk
- * MIT Licensed
- */
- /**
- * Module dependencies.
- */
- var utils = require('../../utils')
- , cookie = require('cookie');
- /**
- * Initialize a new `Cookie` with the given `options`.
- *
- * @param {IncomingMessage} req
- * @param {Object} options
- * @api private
- */
- var Cookie = module.exports = function Cookie(options) {
- this.path = '/';
- this.maxAge = null;
- this.httpOnly = true;
- if (options) utils.merge(this, options);
- this.originalMaxAge = undefined == this.originalMaxAge
- ? this.maxAge
- : this.originalMaxAge;
- };
- /*!
- * Prototype.
- */
- Cookie.prototype = {
- /**
- * Set expires `date`.
- *
- * @param {Date} date
- * @api public
- */
-
- set expires(date) {
- this._expires = date;
- this.originalMaxAge = this.maxAge;
- },
- /**
- * Get expires `date`.
- *
- * @return {Date}
- * @api public
- */
- get expires() {
- return this._expires;
- },
-
- /**
- * Set expires via max-age in `ms`.
- *
- * @param {Number} ms
- * @api public
- */
-
- set maxAge(ms) {
- this.expires = 'number' == typeof ms
- ? new Date(Date.now() + ms)
- : ms;
- },
- /**
- * Get expires max-age in `ms`.
- *
- * @return {Number}
- * @api public
- */
- get maxAge() {
- return this.expires instanceof Date
- ? this.expires.valueOf() - Date.now()
- : this.expires;
- },
- /**
- * Return cookie data object.
- *
- * @return {Object}
- * @api private
- */
- get data() {
- return {
- originalMaxAge: this.originalMaxAge
- , expires: this._expires
- , secure: this.secure
- , httpOnly: this.httpOnly
- , domain: this.domain
- , path: this.path
- }
- },
- /**
- * Return a serialized cookie string.
- *
- * @return {String}
- * @api public
- */
- serialize: function(name, val){
- return cookie.serialize(name, val, this.data);
- },
- /**
- * Return JSON representation of this cookie.
- *
- * @return {Object}
- * @api private
- */
-
- toJSON: function(){
- return this.data;
- }
- };