Skip to content

Commit c745cb2

Browse files
committed
add lib folder
1 parent dd6a62c commit c745cb2

File tree

99 files changed

+17607
-1
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

99 files changed

+17607
-1
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ node_modules
3737
.vscode
3838

3939
# Babel.js
40-
lib/
40+
#lib/
4141

4242
# cache folder
4343
.cache

lib/Adapters/AdapterLoader.js

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
"use strict";
2+
3+
Object.defineProperty(exports, "__esModule", {
4+
value: true
5+
});
6+
exports.loadAdapter = loadAdapter;
7+
function loadAdapter(adapter, defaultAdapter, options) {
8+
if (!adapter) {
9+
if (!defaultAdapter) {
10+
return options;
11+
}
12+
// Load from the default adapter when no adapter is set
13+
return loadAdapter(defaultAdapter, undefined, options);
14+
} else if (typeof adapter === "function") {
15+
try {
16+
return adapter(options);
17+
} catch (e) {
18+
if (e.name === 'TypeError') {
19+
var Adapter = adapter;
20+
return new Adapter(options);
21+
} else {
22+
throw e;
23+
}
24+
}
25+
} else if (typeof adapter === "string") {
26+
adapter = require(adapter);
27+
// If it's define as a module, get the default
28+
if (adapter.default) {
29+
adapter = adapter.default;
30+
}
31+
return loadAdapter(adapter, undefined, options);
32+
} else if (adapter.module) {
33+
return loadAdapter(adapter.module, undefined, adapter.options);
34+
} else if (adapter.class) {
35+
return loadAdapter(adapter.class, undefined, adapter.options);
36+
} else if (adapter.adapter) {
37+
return loadAdapter(adapter.adapter, undefined, adapter.options);
38+
}
39+
// return the adapter as provided
40+
return adapter;
41+
}
42+
43+
exports.default = loadAdapter;
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
"use strict";
2+
3+
Object.defineProperty(exports, "__esModule", {
4+
value: true
5+
});
6+
7+
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; }; }();
8+
9+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
10+
11+
var AnalyticsAdapter = exports.AnalyticsAdapter = function () {
12+
function AnalyticsAdapter() {
13+
_classCallCheck(this, AnalyticsAdapter);
14+
}
15+
16+
_createClass(AnalyticsAdapter, [{
17+
key: "appOpened",
18+
value: function appOpened(parameters, req) {
19+
return Promise.resolve({});
20+
}
21+
}, {
22+
key: "trackEvent",
23+
value: function trackEvent(eventName, parameters, req) {
24+
return Promise.resolve({});
25+
}
26+
}]);
27+
28+
return AnalyticsAdapter;
29+
}();
30+
31+
exports.default = AnalyticsAdapter;

lib/Adapters/Cache/CacheAdapter.js

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
"use strict";
2+
3+
Object.defineProperty(exports, "__esModule", {
4+
value: true
5+
});
6+
7+
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; }; }();
8+
9+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
10+
11+
var CacheAdapter = exports.CacheAdapter = function () {
12+
function CacheAdapter() {
13+
_classCallCheck(this, CacheAdapter);
14+
}
15+
16+
_createClass(CacheAdapter, [{
17+
key: "get",
18+
19+
/**
20+
* Get a value in the cache
21+
* @param key Cache key to get
22+
* @return Promise that will eventually resolve to the value in the cache.
23+
*/
24+
value: function get(key) {}
25+
26+
/**
27+
* Set a value in the cache
28+
* @param key Cache key to set
29+
* @param value Value to set the key
30+
* @param ttl Optional TTL
31+
*/
32+
33+
}, {
34+
key: "put",
35+
value: function put(key, value, ttl) {}
36+
37+
/**
38+
* Remove a value from the cache.
39+
* @param key Cache key to remove
40+
*/
41+
42+
}, {
43+
key: "del",
44+
value: function del(key) {}
45+
46+
/**
47+
* Empty a cache
48+
*/
49+
50+
}, {
51+
key: "clear",
52+
value: function clear() {}
53+
}]);
54+
55+
return CacheAdapter;
56+
}();

lib/Adapters/Cache/InMemoryCache.js

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
"use strict";
2+
3+
Object.defineProperty(exports, "__esModule", {
4+
value: true
5+
});
6+
7+
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; }; }();
8+
9+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
10+
11+
var DEFAULT_CACHE_TTL = 5 * 1000;
12+
13+
var InMemoryCache = exports.InMemoryCache = function () {
14+
function InMemoryCache(_ref) {
15+
var _ref$ttl = _ref.ttl;
16+
var ttl = _ref$ttl === undefined ? DEFAULT_CACHE_TTL : _ref$ttl;
17+
18+
_classCallCheck(this, InMemoryCache);
19+
20+
this.ttl = ttl;
21+
this.cache = Object.create(null);
22+
}
23+
24+
_createClass(InMemoryCache, [{
25+
key: "get",
26+
value: function get(key) {
27+
var record = this.cache[key];
28+
if (record == null) {
29+
return null;
30+
}
31+
32+
// Has Record and isnt expired
33+
if (isNaN(record.expire) || record.expire >= Date.now()) {
34+
return record.value;
35+
}
36+
37+
// Record has expired
38+
delete this.cache[key];
39+
return null;
40+
}
41+
}, {
42+
key: "put",
43+
value: function put(key, value) {
44+
var _this = this;
45+
46+
var ttl = arguments.length <= 2 || arguments[2] === undefined ? this.ttl : arguments[2];
47+
48+
if (ttl < 0 || isNaN(ttl)) {
49+
ttl = NaN;
50+
}
51+
52+
var record = {
53+
value: value,
54+
expire: ttl + Date.now()
55+
};
56+
57+
if (!isNaN(record.expire)) {
58+
record.timeout = setTimeout(function () {
59+
_this.del(key);
60+
}, ttl);
61+
}
62+
63+
this.cache[key] = record;
64+
}
65+
}, {
66+
key: "del",
67+
value: function del(key) {
68+
var record = this.cache[key];
69+
if (record == null) {
70+
return;
71+
}
72+
73+
if (record.timeout) {
74+
clearTimeout(record.timeout);
75+
}
76+
delete this.cache[key];
77+
}
78+
}, {
79+
key: "clear",
80+
value: function clear() {
81+
this.cache = Object.create(null);
82+
}
83+
}]);
84+
85+
return InMemoryCache;
86+
}();
87+
88+
exports.default = InMemoryCache;
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
'use strict';
2+
3+
Object.defineProperty(exports, "__esModule", {
4+
value: true
5+
});
6+
exports.InMemoryCacheAdapter = undefined;
7+
8+
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; }; }();
9+
10+
var _InMemoryCache = require('./InMemoryCache');
11+
12+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
13+
14+
var InMemoryCacheAdapter = exports.InMemoryCacheAdapter = function () {
15+
function InMemoryCacheAdapter(ctx) {
16+
_classCallCheck(this, InMemoryCacheAdapter);
17+
18+
this.cache = new _InMemoryCache.InMemoryCache(ctx);
19+
}
20+
21+
_createClass(InMemoryCacheAdapter, [{
22+
key: 'get',
23+
value: function get(key) {
24+
var _this = this;
25+
26+
return new Promise(function (resolve, reject) {
27+
var record = _this.cache.get(key);
28+
if (record == null) {
29+
return resolve(null);
30+
}
31+
32+
return resolve(JSON.parse(record));
33+
});
34+
}
35+
}, {
36+
key: 'put',
37+
value: function put(key, value, ttl) {
38+
this.cache.put(key, JSON.stringify(value), ttl);
39+
return Promise.resolve();
40+
}
41+
}, {
42+
key: 'del',
43+
value: function del(key) {
44+
this.cache.del(key);
45+
return Promise.resolve();
46+
}
47+
}, {
48+
key: 'clear',
49+
value: function clear() {
50+
this.cache.clear();
51+
return Promise.resolve();
52+
}
53+
}]);
54+
55+
return InMemoryCacheAdapter;
56+
}();
57+
58+
exports.default = InMemoryCacheAdapter;

lib/Adapters/Email/MailAdapter.js

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
"use strict";
2+
3+
Object.defineProperty(exports, "__esModule", {
4+
value: true
5+
});
6+
7+
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; }; }();
8+
9+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
10+
11+
/*
12+
Mail Adapter prototype
13+
A MailAdapter should implement at least sendMail()
14+
*/
15+
var MailAdapter = exports.MailAdapter = function () {
16+
function MailAdapter() {
17+
_classCallCheck(this, MailAdapter);
18+
}
19+
20+
_createClass(MailAdapter, [{
21+
key: "sendMail",
22+
23+
/*
24+
* A method for sending mail
25+
* @param options would have the parameters
26+
* - to: the recipient
27+
* - text: the raw text of the message
28+
* - subject: the subject of the email
29+
*/
30+
value: function sendMail(options) {}
31+
32+
/* You can implement those methods if you want
33+
* to provide HTML templates etc...
34+
*/
35+
// sendVerificationEmail({ link, appName, user }) {}
36+
// sendPasswordResetEmail({ link, appName, user }) {}
37+
38+
}]);
39+
40+
return MailAdapter;
41+
}();
42+
43+
exports.default = MailAdapter;

lib/Adapters/Files/FilesAdapter.js

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
"use strict";
2+
3+
Object.defineProperty(exports, "__esModule", {
4+
value: true
5+
});
6+
7+
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; }; }();
8+
9+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
10+
11+
// Files Adapter
12+
//
13+
// Allows you to change the file storage mechanism.
14+
//
15+
// Adapter classes must implement the following functions:
16+
// * createFile(config, filename, data)
17+
// * getFileData(config, filename)
18+
// * getFileLocation(config, request, filename)
19+
//
20+
// Default is GridStoreAdapter, which requires mongo
21+
// and for the API server to be using the DatabaseController with Mongo
22+
// database adapter.
23+
24+
var FilesAdapter = exports.FilesAdapter = function () {
25+
function FilesAdapter() {
26+
_classCallCheck(this, FilesAdapter);
27+
}
28+
29+
_createClass(FilesAdapter, [{
30+
key: "createFile",
31+
32+
/* this method is responsible to store the file in order to be retrived later by it's file name
33+
*
34+
* @param filename the filename to save
35+
* @param data the buffer of data from the file
36+
* @param contentType the supposed contentType
37+
* @discussion the contentType can be undefined if the controller was not able to determine it
38+
*
39+
* @return a promise that should fail if the storage didn't succeed
40+
*
41+
*/
42+
value: function createFile(filename, data, contentType) {}
43+
}, {
44+
key: "deleteFile",
45+
value: function deleteFile(filename) {}
46+
}, {
47+
key: "getFileData",
48+
value: function getFileData(filename) {}
49+
}, {
50+
key: "getFileLocation",
51+
value: function getFileLocation(config, filename) {}
52+
}]);
53+
54+
return FilesAdapter;
55+
}();
56+
57+
exports.default = FilesAdapter;

0 commit comments

Comments
 (0)