Skip to content

Commit cc85951

Browse files
committed
Update to 2.14.3
1 parent 336e75c commit cc85951

File tree

6 files changed

+49
-9
lines changed

6 files changed

+49
-9
lines changed

examples/apiprovider/api_example.js

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ console.log(server);
1111
const { APIController } = require("zetaret.node.examples.apiprovider::APIController");
1212
var apiController = new APIController();
1313

14+
const { Cookies } = require("zetaret.node.utils.web::Cookies");
15+
1416
const { Router } = require("zetaret.node.api::Router");
1517
var rinst = new Router();
1618
rinst.prefix = "api.v2/";
@@ -39,6 +41,8 @@ var route = {
3941
};
4042
server.voya(route);
4143

44+
server.cookieMethod = function (server, request, response, headers) {};
45+
4246
var p,
4347
middlewarePaths = {},
4448
paths = {
@@ -49,11 +53,39 @@ var p,
4953
"auth/login": apiController.onLogin,
5054
"auth/logout": apiController.onLogout,
5155
};
52-
for(p in paths) middlewarePaths[p] = true;
56+
for (p in paths) middlewarePaths[p] = true;
57+
58+
const LiveSessions = {};
59+
60+
function bakeCookie(request, response) {
61+
let cook = request.headers.cookie;
62+
let session = null;
63+
let cookieobj = new Cookies();
64+
cookieobj.debug = true;
65+
cookieobj.setCookiePath = true;
66+
cookieobj.setCookieExpires = true;
67+
cookieobj.parseCookieRequest(request);
68+
request.cookieObject = cookieobj;
69+
console.log("\x1b[34m #Middleware Cookie:\x1b[0m", cook, cookieobj.cookieMap);
70+
if (!cookieobj.cookieMap.session) {
71+
console.log("WRITE NEW COOKIE");
72+
cookieobj.writeCookie(cookieobj.responseHeaders, "session", server.rndstr(32), 30, true);
73+
cookieobj.transformCookieObject(cookieobj.responseHeaders, false, response);
74+
console.log("RESPONSE COOKIE", cookieobj.responseHeaders["set-cookie"]);
75+
session = cookieobj.readCookie(cookieobj.responseHeaders["set-cookie-object"], "session", "session");
76+
} else {
77+
session = cookieobj.cookieMap.session;
78+
}
79+
if (!LiveSessions[session]) LiveSessions[session] = { time: new Date(), count: 0 };
80+
LiveSessions[session].count++;
81+
console.log("Middleware Live Session Count:", session, LiveSessions[session].count);
82+
}
5383

5484
server.middleware.push(function (request, response, midobj) {
85+
bakeCookie(request, response);
86+
5587
var uri = response.__splitUrl.pages;
56-
console.log("Process Middleware first:", uri);
88+
console.log("\x1b[36m #Process Middleware first:\x1b[0m", uri);
5789

5890
var i,
5991
path = "",
@@ -138,6 +170,7 @@ var validator = {
138170
console.log("Validator:", dv.validate(data, validator), data);
139171

140172
const snippetExampleModule = require("./APISnippetExample");
173+
141174
const router1 = new snippetExampleModule.Router();
142175
router1.initCRUD("api.v3/", server, "addParamsPathListener");
143176
console.log(router1);

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "protoss-nodejs-basic",
3-
"version": "2.14.2",
3+
"version": "2.14.3",
44
"author": "Zeta Ret",
55
"license": "MIT",
66
"type": "commonjs",

protossdox.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,6 @@
99
"relative": true,
1010
"markdown": true,
1111
"ext": ["js", "ts"],
12-
"version": "2.14.2",
12+
"version": "2.14.3",
1313
"license": "MIT"
1414
}

utils/web/Cookies.js

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,17 @@ class Cookies {
1717
o.cookie = "";
1818
o.cookieMap = {};
1919
o.reserved = ["Created", "Expires", "Path", "Max-Age", "Domain", "HttpOnly", "Secure", "SameSite"];
20+
o.responseHeaders = {};
21+
o.debug = false;
2022
}
2123

2224
parseCookie(cookie) {
2325
var o = this;
24-
o.cookie = cookie;
26+
o.cookie = cookie || "";
2527
var i,
2628
kv,
2729
p = {},
28-
sp = cookie.split(";"),
30+
sp = o.cookie.split(";"),
2931
l = sp.length;
3032
for (i = 0; i < l; i++) {
3133
kv = sp[i].split("=");
@@ -69,9 +71,11 @@ class Cookies {
6971
if (o.setCookiePath) c += "; Path=" + o.cookiePath;
7072
for (k in options) c += "; " + k + (options[k] ? "=" + options[k] : "");
7173
if (useObject) {
74+
if (o.debug) console.log("#writeCookie obj", headers, o.setObjectHeaderKey, key, c, value, expires);
7275
if (!headers[o.setObjectHeaderKey]) headers[o.setObjectHeaderKey] = {};
7376
if (key) headers[o.setObjectHeaderKey][key] = c;
7477
} else {
78+
if (o.debug) console.log("#writeCookie key", headers, o.setHeaderKey, key, c, value, expires);
7579
headers[o.setHeaderKey] = c;
7680
}
7781
return o;
@@ -89,12 +93,15 @@ class Cookies {
8993
return o;
9094
}
9195

92-
transformCookieObject(headers, remove) {
96+
transformCookieObject(headers, remove, response) {
9397
var o = this;
9498
var s = [],
9599
co = headers[o.setObjectHeaderKey];
96100
if (co) {
101+
if (o.debug) console.log("transform cookie object", s, co);
102+
s = Object.values(co);
97103
headers[o.setHeaderKey] = s.join(";");
104+
if (response) response.setHeader(o.setHeaderKey, headers[o.setHeaderKey]);
98105
}
99106
if (remove) delete headers[o.setObjectHeaderKey];
100107
return o;

utils/web/Cookies.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"description": "Cookies - parse, read, write, delete",
44
"text": "Configurable Cookie class",
55
"requires": null,
6-
"version": "1.4.0",
6+
"version": "1.4.1",
77
"date": "2019 - Today",
88
"supername": "zetaret.node.utils.web::Cookies",
99
"inherits": null,

utils/web/Cookies.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
> __Author: Zeta Ret__
22
> __Cookies - parse, read, write, delete__
33
# Configurable Cookie class
4-
> *Version: 1.4.0*
4+
> *Version: 1.4.1*
55
> *Date: 2019 - Today*
66
77
__required*__

0 commit comments

Comments
 (0)