@vandenberghinc/volt 1.2.8 → 1.2.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +10 -1
- package/.libris/config.json +0 -82
- package/backend/old/file_watcher.ts +0 -359
- package/backend/old/request.deprc.js +0 -626
- package/backend/old/response.deprc.js +0 -354
- package/frontend/examples/theme/theme.ts +0 -58
- package/frontend/tools/bundle_d_ts.js +0 -71
- package/frontend/tools/convert_to_jsdoc_input.txt +0 -9452
- package/frontend/tools/convert_to_jsdoc_output.txt +0 -7626
- package/frontend/tools/convert_to_jsdoc_tmp.js +0 -345
- package/frontend/tools/scan_mixed_imports.js +0 -69
|
@@ -1,626 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Author: Daan van den Bergh
|
|
3
|
-
* Copyright: © 2022 - 2024 Daan van den Bergh.
|
|
4
|
-
*
|
|
5
|
-
* DEPRECATED
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
// ---------------------------------------------------------
|
|
9
|
-
// Imports.
|
|
10
|
-
|
|
11
|
-
const zlib = require('zlib');
|
|
12
|
-
|
|
13
|
-
// ---------------------------------------------------------
|
|
14
|
-
// Request object.
|
|
15
|
-
/* @docs
|
|
16
|
-
* @nav: Backend
|
|
17
|
-
* @chapter: Stream
|
|
18
|
-
* @title: Request
|
|
19
|
-
* @description: The request object.
|
|
20
|
-
* @deprecated: true
|
|
21
|
-
*/
|
|
22
|
-
class Request {
|
|
23
|
-
|
|
24
|
-
// Constructor.
|
|
25
|
-
constructor(req) {
|
|
26
|
-
|
|
27
|
-
// Arguments.
|
|
28
|
-
this.req = req;
|
|
29
|
-
|
|
30
|
-
// Body.
|
|
31
|
-
this.body = "";
|
|
32
|
-
|
|
33
|
-
// Decompress data.
|
|
34
|
-
const content_encoding = req.headers['content-encoding'];
|
|
35
|
-
if (content_encoding === "gzip" || content_encoding === "deflate") {
|
|
36
|
-
let stream;
|
|
37
|
-
if (content_encoding === "gzip") {
|
|
38
|
-
stream = zlib.createGunzip();
|
|
39
|
-
} else if (content_encoding === "deflate") {
|
|
40
|
-
stream = zlib.createInflate();
|
|
41
|
-
}
|
|
42
|
-
req.pipe(stream)
|
|
43
|
-
stream.on("data", (data) => {
|
|
44
|
-
this.body += data.toString();
|
|
45
|
-
})
|
|
46
|
-
this.promise = new Promise((resolve) => {
|
|
47
|
-
stream.on("end", () => {
|
|
48
|
-
resolve();
|
|
49
|
-
})
|
|
50
|
-
})
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
// Create a promise to await the incoming data.
|
|
54
|
-
else {
|
|
55
|
-
this.req.on("data", (data) => {
|
|
56
|
-
this.body += data.toString();
|
|
57
|
-
})
|
|
58
|
-
this.promise = new Promise((resolve) => {
|
|
59
|
-
this.req.on("end", () => {
|
|
60
|
-
resolve();
|
|
61
|
-
})
|
|
62
|
-
})
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
// Copy all lowercase functions.
|
|
66
|
-
this.on = this.req.on.bind(this.req);
|
|
67
|
-
// this.cork = this.req.cork.bind(this.req);
|
|
68
|
-
this.destroy = this.req.destroy.bind(this.req);
|
|
69
|
-
// this.uncork = this.req.uncork.bind(this.req);
|
|
70
|
-
// this.write = this.req.write.bind(this.req);
|
|
71
|
-
|
|
72
|
-
// Create lowercase functions.
|
|
73
|
-
// this.flush_headers = this.req.flushHeaders.bind(this.req);
|
|
74
|
-
// this.get_header = this.req.getHeader.bind(this.req);
|
|
75
|
-
// this.get_header_names = this.req.getHeaderNames.bind(this.req);
|
|
76
|
-
// this.get_headers = this.req.getHeaders.bind(this.req);
|
|
77
|
-
// this.get_raw_header_names = this.req.getRawHeaderNames.bind(this.req);
|
|
78
|
-
// this.has_header = this.req.hasHeader.bind(this.req);
|
|
79
|
-
// this.max_headers_count = this.req.maxHeadersCount.bind(this.req);
|
|
80
|
-
// this.remove_header = this.req.removeHeader.bind(this.req);
|
|
81
|
-
// this.set_header = this.req.setHeader.bind(this.req);
|
|
82
|
-
// this.set_no_delay = this.req.setNoDelay.bind(this.req);
|
|
83
|
-
// this.set_socket_keep_alive = this.req.setSocketKeepAlive.bind(this.req);
|
|
84
|
-
this.set_timeout = this.req.setTimeout;
|
|
85
|
-
|
|
86
|
-
// Attributes.
|
|
87
|
-
this._params = undefined;
|
|
88
|
-
this._is_query_params = false;
|
|
89
|
-
this._endpoint = undefined;
|
|
90
|
-
this._query_string = undefined;
|
|
91
|
-
this._cookies = undefined;
|
|
92
|
-
this._uid = null;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
// ---------------------------------------------------------
|
|
96
|
-
// Utils.
|
|
97
|
-
|
|
98
|
-
// Parse endpoint.
|
|
99
|
-
_parse_endoint() {
|
|
100
|
-
if (this._endpoint !== undefined) {return}
|
|
101
|
-
this._endpoint = this.req.url;
|
|
102
|
-
let index;
|
|
103
|
-
if ((index = this._endpoint.indexOf("?")) !== -1) {
|
|
104
|
-
this._query_string = this._endpoint.substr(index + 1);
|
|
105
|
-
this._endpoint = this._endpoint.substr(0, index);
|
|
106
|
-
}
|
|
107
|
-
this._endpoint = this._endpoint.replaceAll("//", "/");
|
|
108
|
-
if (this._endpoint.length > 1 && this._endpoint.charAt(this._endpoint.length - 1) === "/") {
|
|
109
|
-
this._endpoint = this._endpoint.substr(0, this._endpoint.length - 1);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
// Parse the parameters.
|
|
114
|
-
_parse_params() {
|
|
115
|
-
|
|
116
|
-
// Parse query string.
|
|
117
|
-
this._parse_endoint();
|
|
118
|
-
|
|
119
|
-
// Already parsed.
|
|
120
|
-
if (this._params !== undefined) {return}
|
|
121
|
-
|
|
122
|
-
// Initialize.
|
|
123
|
-
this._params = {};
|
|
124
|
-
|
|
125
|
-
// By query string.
|
|
126
|
-
if (this._query_string !== undefined) {
|
|
127
|
-
|
|
128
|
-
// As encoded json.
|
|
129
|
-
if (this._query_string.charAt(0) === "{") {
|
|
130
|
-
try {
|
|
131
|
-
this._params = JSON.parse(decodeURIComponent(this._query_string));
|
|
132
|
-
} catch(err) {
|
|
133
|
-
throw Error(`Invalid json request query: ${err}.`)
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
// As query string.
|
|
138
|
-
else {
|
|
139
|
-
this._is_query_params = true;
|
|
140
|
-
let is_key = true, key = "", value = "";
|
|
141
|
-
for (let i = 0; i < this._query_string.length; i++) {
|
|
142
|
-
const c = this._query_string.charAt(i);
|
|
143
|
-
if (is_key && c === "=") {
|
|
144
|
-
is_key = false;
|
|
145
|
-
continue;
|
|
146
|
-
} else if (is_key === false && c === "&") {
|
|
147
|
-
this._params[decodeURIComponent(key)] = decodeURIComponent(value);
|
|
148
|
-
key = "";
|
|
149
|
-
value = "";
|
|
150
|
-
is_key = true;
|
|
151
|
-
continue;
|
|
152
|
-
}
|
|
153
|
-
if (is_key) {
|
|
154
|
-
key += c;
|
|
155
|
-
} else {
|
|
156
|
-
value += c;
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
if (key.length > 0) {
|
|
160
|
-
this._params[decodeURIComponent(key)] = decodeURIComponent(value);
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
// By body.
|
|
166
|
-
else if (this.body.first_not_of([" ", "\t", "\n", "\r"]) === "{") {
|
|
167
|
-
try {
|
|
168
|
-
this._params = JSON.parse(this.body);
|
|
169
|
-
} catch(err) {
|
|
170
|
-
throw Error(`Invalid json request body: ${err}.`)
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
// Handler.
|
|
175
|
-
return this._params;
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
// Parse cookies.
|
|
179
|
-
_parse_cookies(name, request) {
|
|
180
|
-
|
|
181
|
-
// Reset cookies.
|
|
182
|
-
this._cookies = {};
|
|
183
|
-
|
|
184
|
-
// Vars.
|
|
185
|
-
const cookie_str = this.req.headers.cookie;
|
|
186
|
-
if (cookie_str === undefined) { return null; }
|
|
187
|
-
let key = "";
|
|
188
|
-
let value = "";
|
|
189
|
-
let cookie = {};
|
|
190
|
-
let cookie_length = 0;
|
|
191
|
-
let cookie_key = null;
|
|
192
|
-
let is_value = false;
|
|
193
|
-
let is_str = null;
|
|
194
|
-
|
|
195
|
-
// Append to cookie.
|
|
196
|
-
const append_to_cookie = () => {
|
|
197
|
-
if (key.length > 0) {
|
|
198
|
-
if (cookie_length === 0) {
|
|
199
|
-
cookie.value = value;
|
|
200
|
-
} else {
|
|
201
|
-
cookie[key] = value;
|
|
202
|
-
}
|
|
203
|
-
++cookie_length;
|
|
204
|
-
}
|
|
205
|
-
key = "";
|
|
206
|
-
value = "";
|
|
207
|
-
is_value = false;
|
|
208
|
-
is_str = null;
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
// Append cookie.
|
|
212
|
-
const append_cookie = () => {
|
|
213
|
-
if (cookie_key != null) {
|
|
214
|
-
this._cookies[cookie_key] = cookie;
|
|
215
|
-
cookie_key = null;
|
|
216
|
-
cookie = {};
|
|
217
|
-
cookie_length = 0;
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
// Iterate.
|
|
222
|
-
for (let x = 0; x < cookie_str.length; x++) {
|
|
223
|
-
const c = cookie_str.charAt(x);
|
|
224
|
-
|
|
225
|
-
// Add char to value.
|
|
226
|
-
if (is_value) {
|
|
227
|
-
|
|
228
|
-
// End of cookie string.
|
|
229
|
-
if (is_str === c) {
|
|
230
|
-
value = value.substr(1, value.length - 1);
|
|
231
|
-
append_to_cookie();
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
// Cookie seperator.
|
|
235
|
-
else if (is_str == null && c === " ") {
|
|
236
|
-
append_to_cookie();
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
// End of cookie.
|
|
240
|
-
else if (is_str == null && c === ";") {
|
|
241
|
-
append_to_cookie();
|
|
242
|
-
append_cookie();
|
|
243
|
-
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
// Append to value.
|
|
247
|
-
else {
|
|
248
|
-
value += c;
|
|
249
|
-
if (value.length === 1 && (c === "\"" || c === "'")) {
|
|
250
|
-
is_str = c;
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
// Skip whitespace in keys.
|
|
256
|
-
else if (c == " " || c == "\t") {
|
|
257
|
-
continue;
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
// End of cookie key.
|
|
261
|
-
else if (c == "=") {
|
|
262
|
-
if (cookie_key == null) {
|
|
263
|
-
cookie_key = key;
|
|
264
|
-
}
|
|
265
|
-
is_value = true;
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
// Add char to key.
|
|
269
|
-
else {
|
|
270
|
-
key += c;
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
append_to_cookie();
|
|
274
|
-
append_cookie();
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
// ---------------------------------------------------------
|
|
278
|
-
// Functions.
|
|
279
|
-
|
|
280
|
-
// Get the requests ip.
|
|
281
|
-
/* @docs:
|
|
282
|
-
* @title: IP
|
|
283
|
-
* @description: Get the request's ip.
|
|
284
|
-
* @property: true
|
|
285
|
-
* @usage:
|
|
286
|
-
* ...
|
|
287
|
-
* const ip = request.ip;
|
|
288
|
-
*/
|
|
289
|
-
get ip() {
|
|
290
|
-
return this.req.socket.remoteAddress;
|
|
291
|
-
}
|
|
292
|
-
|
|
293
|
-
// Get the requests port.
|
|
294
|
-
/* @docs:
|
|
295
|
-
* @title: Port
|
|
296
|
-
* @description: Get the request's port.
|
|
297
|
-
* @property: true
|
|
298
|
-
* @usage:
|
|
299
|
-
* ...
|
|
300
|
-
* const port = request.port;
|
|
301
|
-
*/
|
|
302
|
-
get port() {
|
|
303
|
-
return this.req.socket.remotePort;
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
// Get the authenticated uid.
|
|
307
|
-
/* @docs:
|
|
308
|
-
* @title: UID
|
|
309
|
-
* @description: Get the authenticated uid, is `null` when the request was not authenticated.
|
|
310
|
-
* @property: true
|
|
311
|
-
* @type: number
|
|
312
|
-
* @usage:
|
|
313
|
-
* ...
|
|
314
|
-
* const uid = request.uid;
|
|
315
|
-
*/
|
|
316
|
-
get uid() {
|
|
317
|
-
return this._uid;
|
|
318
|
-
}
|
|
319
|
-
set uid(value) {
|
|
320
|
-
this._uid = value;
|
|
321
|
-
}
|
|
322
|
-
|
|
323
|
-
// Get the endpoint.
|
|
324
|
-
/* @docs:
|
|
325
|
-
* @title: Endpoint
|
|
326
|
-
* @description: Get the request's endpoint. This will not include the query string.
|
|
327
|
-
* @property: true
|
|
328
|
-
* @type: string
|
|
329
|
-
* @usage:
|
|
330
|
-
* ...
|
|
331
|
-
* const endpoint = request.endpoint;
|
|
332
|
-
*/
|
|
333
|
-
get endpoint() {
|
|
334
|
-
if (this._endpoint !== undefined) {
|
|
335
|
-
return this._endpoint;
|
|
336
|
-
}
|
|
337
|
-
this._parse_endoint();
|
|
338
|
-
return this._endpoint;
|
|
339
|
-
}
|
|
340
|
-
|
|
341
|
-
// Get the params.
|
|
342
|
-
/* @docs:
|
|
343
|
-
* @title: Parameters
|
|
344
|
-
* @description: Get the request's query or body params.
|
|
345
|
-
* property: true
|
|
346
|
-
* @type: object
|
|
347
|
-
* @usage:
|
|
348
|
-
* ...
|
|
349
|
-
* const params = request.params;
|
|
350
|
-
*/
|
|
351
|
-
get params() {
|
|
352
|
-
if (this._params !== undefined) {
|
|
353
|
-
return this._params;
|
|
354
|
-
}
|
|
355
|
-
this._parse_params();
|
|
356
|
-
return this._params;
|
|
357
|
-
}
|
|
358
|
-
|
|
359
|
-
// Get a param by name and optionally by type.
|
|
360
|
-
/* @docs:
|
|
361
|
-
* @title: Parameter
|
|
362
|
-
* @description: Get a single query or body parameter with an optional type cast.
|
|
363
|
-
* @warning: Throws an error when the parameter does not exist or when the type is different from the specified type(s), unless parameter `def` is defined.
|
|
364
|
-
* @param:
|
|
365
|
-
* @name: name
|
|
366
|
-
* @desc: The name of the parameter.
|
|
367
|
-
* @type: string
|
|
368
|
-
* @param:
|
|
369
|
-
* @name: type
|
|
370
|
-
* @desc: The type cast of the parameters, valid types are `[null, "boolean", "number", "string", "array", "object"]`.
|
|
371
|
-
* @type: string
|
|
372
|
-
* @param:
|
|
373
|
-
* @name: def
|
|
374
|
-
* @desc:
|
|
375
|
-
* The default value to return when the parameter does not exist.
|
|
376
|
-
*
|
|
377
|
-
* If the parameter is not defined and `def` is `undefined` then this function will throw an error.
|
|
378
|
-
* When `def` is `undefined` errors will be thrown, when `def` is `null` and the parameter is undefined then `null` will be returned as the default value.
|
|
379
|
-
*
|
|
380
|
-
* Errors will always be thrown when the incorrect type has been sent by the user.
|
|
381
|
-
* @type: any
|
|
382
|
-
* @usage:
|
|
383
|
-
* ...
|
|
384
|
-
* const param = request.param("myparameter", "number", 10);
|
|
385
|
-
*/
|
|
386
|
-
param(name, type = null, def = undefined) {
|
|
387
|
-
|
|
388
|
-
// Parse params.
|
|
389
|
-
this._parse_params();
|
|
390
|
-
|
|
391
|
-
// Get value.
|
|
392
|
-
let value = this._params[name];
|
|
393
|
-
|
|
394
|
-
// Check type.
|
|
395
|
-
if (type != null) {
|
|
396
|
-
|
|
397
|
-
// Vars.
|
|
398
|
-
let is_type_array = Array.isArray(type);
|
|
399
|
-
|
|
400
|
-
// Wrapper funcs.
|
|
401
|
-
const type_str = () => {
|
|
402
|
-
let str = "";
|
|
403
|
-
if (type != null) {
|
|
404
|
-
str += " type "
|
|
405
|
-
if (is_type_array) {
|
|
406
|
-
let i = 0, one_but_last_i = type.length - 2;
|
|
407
|
-
type.iterate((item) => {
|
|
408
|
-
str += `"${item}"`;
|
|
409
|
-
if (i < one_but_last_i) {
|
|
410
|
-
str += ", ";
|
|
411
|
-
} else if (i === one_but_last_i) {
|
|
412
|
-
str += " or ";
|
|
413
|
-
}
|
|
414
|
-
})
|
|
415
|
-
} else {
|
|
416
|
-
str += `"${type}"`;
|
|
417
|
-
}
|
|
418
|
-
}
|
|
419
|
-
return str;
|
|
420
|
-
}
|
|
421
|
-
const type_eq_or_includes = (match) => {
|
|
422
|
-
if (is_type_array) {
|
|
423
|
-
return type.includes(match);
|
|
424
|
-
}
|
|
425
|
-
return match === type;
|
|
426
|
-
}
|
|
427
|
-
|
|
428
|
-
// Check undefined.
|
|
429
|
-
if (value == null || value === "") {
|
|
430
|
-
if (def !== undefined) {
|
|
431
|
-
return def;
|
|
432
|
-
}
|
|
433
|
-
throw Error(`Define parameter "${name}"${type_str()}.`)
|
|
434
|
-
}
|
|
435
|
-
|
|
436
|
-
// Cast the value to another type when a query string was used.
|
|
437
|
-
if (this._is_query_params && type_eq_or_includes("string") === false) {
|
|
438
|
-
if (is_type_array === false) {
|
|
439
|
-
type = [type];
|
|
440
|
-
}
|
|
441
|
-
const success = type.iterate((type) => {
|
|
442
|
-
|
|
443
|
-
// Convert to string.
|
|
444
|
-
if (type === "string") {
|
|
445
|
-
return true;
|
|
446
|
-
}
|
|
447
|
-
|
|
448
|
-
// Convert to null.
|
|
449
|
-
if (type === "null" && value === "null") {
|
|
450
|
-
value = null;
|
|
451
|
-
return true;
|
|
452
|
-
}
|
|
453
|
-
|
|
454
|
-
// Convert to boolean.
|
|
455
|
-
const is_bool = type === "boolean";
|
|
456
|
-
if (is_boolean && value === "true") {
|
|
457
|
-
value = true;
|
|
458
|
-
return true;
|
|
459
|
-
}
|
|
460
|
-
if (is_boolean && value === "false") {
|
|
461
|
-
value = false;
|
|
462
|
-
return true;
|
|
463
|
-
}
|
|
464
|
-
|
|
465
|
-
// Convert to array.
|
|
466
|
-
if (value === "array") {
|
|
467
|
-
value = value.split(",");
|
|
468
|
-
return true;
|
|
469
|
-
}
|
|
470
|
-
|
|
471
|
-
// Convert to object.
|
|
472
|
-
if (value === "object") {
|
|
473
|
-
const split = value.split(",");
|
|
474
|
-
value = {};
|
|
475
|
-
split.iterate((item) => {
|
|
476
|
-
const pair = item.split(":")
|
|
477
|
-
value[pair[0]] = pair[1];
|
|
478
|
-
})
|
|
479
|
-
return true;
|
|
480
|
-
}
|
|
481
|
-
|
|
482
|
-
// Convert to numeric.
|
|
483
|
-
if (type === "number" && value.is_numeric_string()) {
|
|
484
|
-
value = parseFloat(value);
|
|
485
|
-
return true;
|
|
486
|
-
}
|
|
487
|
-
})
|
|
488
|
-
if (success !== true) {
|
|
489
|
-
throw Error(`Parameter "${name} should be of"${type_str()}.`)
|
|
490
|
-
}
|
|
491
|
-
|
|
492
|
-
}
|
|
493
|
-
|
|
494
|
-
// Check the type when no query params are defined since JSON.parse already parsed the types.
|
|
495
|
-
else if (this._is_query_params === false) {
|
|
496
|
-
const value_type = typeof value;
|
|
497
|
-
if (is_type_array === false) {
|
|
498
|
-
type = [type];
|
|
499
|
-
}
|
|
500
|
-
const success = type.iterate((type) => {
|
|
501
|
-
const l_is_array = type === "array";
|
|
502
|
-
const l_is_null = type === "null";
|
|
503
|
-
|
|
504
|
-
// Same type.
|
|
505
|
-
if (l_is_array === false && l_is_null === false && type === value_type) {
|
|
506
|
-
return true;
|
|
507
|
-
}
|
|
508
|
-
|
|
509
|
-
// Check to null.
|
|
510
|
-
if (l_is_null && value == null) {
|
|
511
|
-
return true;
|
|
512
|
-
}
|
|
513
|
-
|
|
514
|
-
// Convert to array.
|
|
515
|
-
if (l_is_array && Array.isArray(value)) {
|
|
516
|
-
return true;
|
|
517
|
-
}
|
|
518
|
-
})
|
|
519
|
-
if (success !== true) {
|
|
520
|
-
throw Error(`Parameter "${name} should be of"${type_str()}.`)
|
|
521
|
-
}
|
|
522
|
-
}
|
|
523
|
-
}
|
|
524
|
-
|
|
525
|
-
// Check undefined.
|
|
526
|
-
else if (value == null || value === "") {
|
|
527
|
-
if (def !== undefined) {
|
|
528
|
-
return def;
|
|
529
|
-
}
|
|
530
|
-
throw Error(`Define parameter "${name}".`)
|
|
531
|
-
}
|
|
532
|
-
|
|
533
|
-
// Return value.
|
|
534
|
-
return value;
|
|
535
|
-
}
|
|
536
|
-
|
|
537
|
-
// Get the cookies.
|
|
538
|
-
/* @docs:
|
|
539
|
-
* @title: Cookies
|
|
540
|
-
* @description: Get the request's cookies
|
|
541
|
-
* property: true
|
|
542
|
-
* @type: object
|
|
543
|
-
* @usage:
|
|
544
|
-
* ...
|
|
545
|
-
* const cookies = request.cookies;
|
|
546
|
-
*/
|
|
547
|
-
get cookies() {
|
|
548
|
-
if (this._cookies !== undefined) {
|
|
549
|
-
return this._cookies;
|
|
550
|
-
}
|
|
551
|
-
this._parse_cookies();
|
|
552
|
-
return this._cookies;
|
|
553
|
-
}
|
|
554
|
-
|
|
555
|
-
// ---------------------------------------------------------
|
|
556
|
-
// Inherit get and set functions.
|
|
557
|
-
|
|
558
|
-
get headers() {
|
|
559
|
-
return this.req.headers;
|
|
560
|
-
}
|
|
561
|
-
get destroyed() {
|
|
562
|
-
return this.req.destroyed;
|
|
563
|
-
}
|
|
564
|
-
set destroyed(val) {
|
|
565
|
-
this.req.destroyed = val;
|
|
566
|
-
}
|
|
567
|
-
get path() {
|
|
568
|
-
return this.req.path;
|
|
569
|
-
}
|
|
570
|
-
set path(val) {
|
|
571
|
-
this.req.path = val;
|
|
572
|
-
}
|
|
573
|
-
get method() {
|
|
574
|
-
return this.req.method;
|
|
575
|
-
}
|
|
576
|
-
set method(val) {
|
|
577
|
-
this.req.method = val;
|
|
578
|
-
}
|
|
579
|
-
get url() {
|
|
580
|
-
return this.req.url;
|
|
581
|
-
}
|
|
582
|
-
set url(val) {
|
|
583
|
-
this.req.url = val;
|
|
584
|
-
}
|
|
585
|
-
get host() {
|
|
586
|
-
return this.req.host;
|
|
587
|
-
}
|
|
588
|
-
set host(val) {
|
|
589
|
-
this.req.host = val;
|
|
590
|
-
}
|
|
591
|
-
get protocol() {
|
|
592
|
-
return this.req.protocol;
|
|
593
|
-
}
|
|
594
|
-
set protocol(val) {
|
|
595
|
-
this.req.protocol = val;
|
|
596
|
-
}
|
|
597
|
-
get reused_socket() {
|
|
598
|
-
return this.req.reusedSocket;
|
|
599
|
-
}
|
|
600
|
-
set reused_socket(val) {
|
|
601
|
-
this.req.reusedSocket = val;
|
|
602
|
-
}
|
|
603
|
-
get socket() {
|
|
604
|
-
return this.req.socket;
|
|
605
|
-
}
|
|
606
|
-
set socket(val) {
|
|
607
|
-
this.req.socket = val;
|
|
608
|
-
}
|
|
609
|
-
get writable_ended() {
|
|
610
|
-
return this.req.writableEnded;
|
|
611
|
-
}
|
|
612
|
-
set writable_ended(val) {
|
|
613
|
-
this.req.writableEnded = val;
|
|
614
|
-
}
|
|
615
|
-
get writable_finished() {
|
|
616
|
-
return this.req.writableFinished;
|
|
617
|
-
}
|
|
618
|
-
set writable_finished(val) {
|
|
619
|
-
this.req.writableFinished = val;
|
|
620
|
-
}
|
|
621
|
-
}
|
|
622
|
-
|
|
623
|
-
// ---------------------------------------------------------
|
|
624
|
-
// Exports.
|
|
625
|
-
|
|
626
|
-
module.exports = Request;
|