1 |
|
2 |
|
3 | var CloudCookie, Promise, _, debug, fs, path;
|
4 |
|
5 | Promise = require('bluebird');
|
6 |
|
7 | fs = Promise.promisifyAll(require('fs'));
|
8 |
|
9 | path = require('path');
|
10 |
|
11 | debug = require('debug')('cookies');
|
12 |
|
13 | _ = require('lodash');
|
14 |
|
15 | CloudCookie = (function() {
|
16 | var DEFAULT_OPTIONS;
|
17 |
|
18 | DEFAULT_OPTIONS = {
|
19 | directory: 'data',
|
20 | cookie_filename: 'cloudflare.cookie'
|
21 | };
|
22 |
|
23 | function CloudCookie(options) {
|
24 | this.options = _.merge(DEFAULT_OPTIONS, options);
|
25 | this.options.directory = path.join(__dirname, '..', this.options.directory);
|
26 | this.options.cookie_path = path.join(this.options.directory, this.options.cookie_filename);
|
27 | }
|
28 |
|
29 | CloudCookie.prototype.saveCookie = function(cookie_string) {
|
30 | if (!fs.existsSync(this.options.directory)) {
|
31 | fs.mkdirSync(this.options.directory);
|
32 | }
|
33 | return fs.writeFileSync(this.options.cookie_path, cookie_string);
|
34 | };
|
35 |
|
36 | CloudCookie.prototype.loadCookie = function() {
|
37 | if (fs.existsSync(this.options.cookie_path)) {
|
38 | return fs.readFileSync(this.options.cookie_path).toString().trim();
|
39 | } else {
|
40 | return '';
|
41 | }
|
42 | };
|
43 |
|
44 | return CloudCookie;
|
45 |
|
46 | })();
|
47 |
|
48 | module.exports = CloudCookie;
|