Skip to content

Commit

Permalink
FINITION
Browse files Browse the repository at this point in the history
  • Loading branch information
abdennour committed Aug 19, 2017
1 parent cabd228 commit b420891
Show file tree
Hide file tree
Showing 4 changed files with 109 additions and 10 deletions.
26 changes: 17 additions & 9 deletions README.md
@@ -1,6 +1,9 @@
[![Build Status](https://travis-ci.org/abdennour/chocolata.svg?branch=master)](https://travis-ci.org/abdennour/chocolata)
[![Coverage Status](https://coveralls.io/repos/github/abdennour/chocolata/badge.svg?branch=master)](https://coveralls.io/github/abdennour/chocolata?branch=master)

[![Chocolata JS LOGO ](https://raw.githubusercontent.com/abdennour/s3/master/images/chocolata-js.png)](https://github.com/abdennour/chocolata)


# Overview :

An Javascript Client-side API that handles adding, getting & removing cookies to/from `document.cookie`.
Expand All @@ -23,9 +26,12 @@ import {getItem, setItem, removeItem} from 'chocolata';

setItem('token', '1234');
// document.cookie ==> "token=1234"

setItem('otherToken', '5678')
// document.cookie ==> "token=1234; otherToken=5678"

//--- Handle Objects ---

setItem('userInfo', {
firstName: 'Ahmed',
lastName: 'Toumi',
Expand All @@ -47,17 +53,19 @@ Also, examples above are still valid. However , instead of `import ..` , `windo
<script src="https://cdn.rawgit.com/abdennour/chocolata/39513fa4/cdn/chocolata-latest.min.js"></script>

<script>
Chocolata.setItem('userInfo', {
firstName: 'Ahmed',
lastName: 'Toumi',
});
// "token=1234; otherToken=5678; userInfo={"firstName":"Ahmed","lastName":"Toumi"}"
Chocolata.setItem('userInfo', {
firstName: 'Ahmed',
lastName: 'Toumi',
});
// "token=1234; otherToken=5678; userInfo={"firstName":"Ahmed","lastName":"Toumi"}"
const {firstName, lastName} = Chocolata.getItem('userInfo');
const {firstName, lastName} = Chocolata.getItem('userInfo');
console.log(
`Welcome back ${firstName} ${lastName} !`
)
console.log(
`Welcome back ${firstName} ${lastName} !`
)
</script>
```

Expand Down
90 changes: 90 additions & 0 deletions cdn/chocolata-1.0.0.js
@@ -0,0 +1,90 @@
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
window.Chocolata = require('../lib/Chocolata').default;

},{"../lib/Chocolata":2}],2:[function(require,module,exports){
'use strict';

Object.defineProperty(exports, "__esModule", {
value: true
});

var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _config = require('./config');

var _config2 = _interopRequireDefault(_config);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

var Chocolata = function () {
function Chocolata() {
_classCallCheck(this, Chocolata);
}

_createClass(Chocolata, null, [{
key: 'setItem',
value: function setItem(name, value) {
var daysToExpire = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _config2.default.daysToExpire;

if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object') {
value = JSON.stringify(value);
}
var date = new Date();
date.setTime(date.getTime() + daysToExpire * 24 * 60 * 60 * 1000);
var expires = '; expires=' + date.toUTCString();
document.cookie = name + '=' + value + expires + '; path=/';
}
}, {
key: 'getStringItem',
value: function getStringItem(name) {
var nameEQ = name + '=';
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1, c.length);
}if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
}
return null;
}
}, {
key: 'getObjectItem',
value: function getObjectItem(name) {
return JSON.parse(this.getStringItem(name));
}
}, {
key: 'getItem',
value: function getItem(name) {
try {
return this.getObjectItem(name);
} catch (e) {
return this.getStringItem(name);
}
}
}, {
key: 'removeItem',
value: function removeItem(name) {
this.setItem(name, '', -1);
}
}]);

return Chocolata;
}();

exports.default = Chocolata;
},{"./config":3}],3:[function(require,module,exports){
"use strict";

Object.defineProperty(exports, "__esModule", {
value: true
});
var config = {
daysToExpire: 7
};

exports.default = config;
},{}]},{},[1]);
1 change: 1 addition & 0 deletions cdn/chocolata-1.0.0.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
@@ -1,6 +1,6 @@
{
"name": "chocolata",
"version": "0.0.1",
"version": "1.0.0",
"description": "Cookies Management in the browser (document.cookie) which supports complex data structure (objects) not only Strings ",
"main": "index.js",
"scripts": {
Expand Down

0 comments on commit b420891

Please sign in to comment.