ultimate-express 1.0.1 → 1.0.2

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.
Files changed (189) hide show
  1. package/package.json +7 -3
  2. package/.github/workflows/test.yml +0 -27
  3. package/tests/index.js +0 -64
  4. package/tests/parts/.test/index.html +0 -11
  5. package/tests/parts/big.jpg +0 -0
  6. package/tests/parts/index.art +0 -12
  7. package/tests/parts/index.dot +0 -12
  8. package/tests/parts/index.ejs +0 -12
  9. package/tests/parts/index.handlebars +0 -2
  10. package/tests/parts/index.html +0 -12
  11. package/tests/parts/index.mustache +0 -12
  12. package/tests/parts/index.pug +0 -6
  13. package/tests/parts/index.swig +0 -12
  14. package/tests/parts/layouts/main.handlebars +0 -12
  15. package/tests/preload.cjs +0 -5
  16. package/tests/singular.js +0 -41
  17. package/tests/tests/app/app-engine.js +0 -8
  18. package/tests/tests/app/app-on-mount.js +0 -24
  19. package/tests/tests/app/app-path.js +0 -21
  20. package/tests/tests/app/app-route.js +0 -30
  21. package/tests/tests/app/options.js +0 -16
  22. package/tests/tests/app/setting-inheritance.js +0 -16
  23. package/tests/tests/engines/art-template.js +0 -33
  24. package/tests/tests/engines/dot.js +0 -28
  25. package/tests/tests/engines/ejs.js +0 -25
  26. package/tests/tests/engines/handlebars.js +0 -28
  27. package/tests/tests/engines/mustache.js +0 -28
  28. package/tests/tests/engines/pug.js +0 -25
  29. package/tests/tests/engines/swig.js +0 -28
  30. package/tests/tests/errors/error-handling-middleware.js +0 -22
  31. package/tests/tests/errors/next-error-optimized.js +0 -26
  32. package/tests/tests/errors/next-error.js +0 -26
  33. package/tests/tests/errors/unexpected-error-handling.js +0 -18
  34. package/tests/tests/listen/listen-random.js +0 -11
  35. package/tests/tests/listen/listen-specific.js +0 -17
  36. package/tests/tests/middlewares/body-json.js +0 -31
  37. package/tests/tests/middlewares/body-raw-deflate.js +0 -43
  38. package/tests/tests/middlewares/body-raw-gzip.js +0 -43
  39. package/tests/tests/middlewares/body-raw.js +0 -41
  40. package/tests/tests/middlewares/body-text.js +0 -27
  41. package/tests/tests/middlewares/body-urlencoded.js +0 -30
  42. package/tests/tests/middlewares/cookie-parser-signed.js +0 -31
  43. package/tests/tests/middlewares/cookie-parser.js +0 -28
  44. package/tests/tests/middlewares/cookie-session.js +0 -40
  45. package/tests/tests/middlewares/cors.js +0 -29
  46. package/tests/tests/middlewares/errorhandler.js +0 -26
  47. package/tests/tests/middlewares/express-fileupload-temp.js +0 -46
  48. package/tests/tests/middlewares/express-fileupload.js +0 -28
  49. package/tests/tests/middlewares/express-rate-limit.js +0 -33
  50. package/tests/tests/middlewares/express-session.js +0 -37
  51. package/tests/tests/middlewares/express-static-options.js +0 -72
  52. package/tests/tests/middlewares/express-static.js +0 -40
  53. package/tests/tests/middlewares/method-override.js +0 -33
  54. package/tests/tests/middlewares/multer.js +0 -43
  55. package/tests/tests/middlewares/multiple-middlewares.js +0 -37
  56. package/tests/tests/middlewares/response-time.js +0 -29
  57. package/tests/tests/middlewares/serve-index.js +0 -38
  58. package/tests/tests/middlewares/serve-static.js +0 -38
  59. package/tests/tests/middlewares/vhost.js +0 -50
  60. package/tests/tests/params/array-param.js +0 -30
  61. package/tests/tests/params/nested-params.js +0 -24
  62. package/tests/tests/params/param-errors.js +0 -56
  63. package/tests/tests/params/param-function.js +0 -49
  64. package/tests/tests/params/param-next-route.js +0 -48
  65. package/tests/tests/params/param-optimized.js +0 -38
  66. package/tests/tests/params/param-use.js +0 -39
  67. package/tests/tests/params/param.js +0 -68
  68. package/tests/tests/params/params-regex.js +0 -26
  69. package/tests/tests/params/params-use.js +0 -20
  70. package/tests/tests/params/params.js +0 -35
  71. package/tests/tests/req/req-accepts-charsets.js +0 -40
  72. package/tests/tests/req/req-accepts-encodings.js +0 -36
  73. package/tests/tests/req/req-accepts-languages.js +0 -41
  74. package/tests/tests/req/req-accepts.js +0 -41
  75. package/tests/tests/req/req-app.js +0 -17
  76. package/tests/tests/req/req-baseurl.js +0 -38
  77. package/tests/tests/req/req-connection.js +0 -19
  78. package/tests/tests/req/req-fresh.js +0 -59
  79. package/tests/tests/req/req-get.js +0 -78
  80. package/tests/tests/req/req-headers-distinct.js +0 -72
  81. package/tests/tests/req/req-headers.js +0 -72
  82. package/tests/tests/req/req-host.js +0 -45
  83. package/tests/tests/req/req-hostname.js +0 -45
  84. package/tests/tests/req/req-ip.js +0 -19
  85. package/tests/tests/req/req-is.js +0 -44
  86. package/tests/tests/req/req-original-url.js +0 -29
  87. package/tests/tests/req/req-param.js +0 -29
  88. package/tests/tests/req/req-protocol.js +0 -20
  89. package/tests/tests/req/req-query.js +0 -23
  90. package/tests/tests/req/req-range.js +0 -48
  91. package/tests/tests/req/req-raw-headers.js +0 -72
  92. package/tests/tests/req/req-subdomains.js +0 -48
  93. package/tests/tests/req/req-url-nested.js +0 -27
  94. package/tests/tests/req/req-url-optimized-router.js +0 -26
  95. package/tests/tests/req/req-url-optimized.js +0 -23
  96. package/tests/tests/req/req-url.js +0 -36
  97. package/tests/tests/req/req-xhr.js +0 -23
  98. package/tests/tests/res/head-content-length.js +0 -18
  99. package/tests/tests/res/head.js +0 -47
  100. package/tests/tests/res/injecting.js +0 -25
  101. package/tests/tests/res/piping.js +0 -23
  102. package/tests/tests/res/res-app.js +0 -17
  103. package/tests/tests/res/res-append.js +0 -24
  104. package/tests/tests/res/res-attachment.js +0 -19
  105. package/tests/tests/res/res-clear-cookie.js +0 -18
  106. package/tests/tests/res/res-cookie.js +0 -22
  107. package/tests/tests/res/res-download.js +0 -36
  108. package/tests/tests/res/res-format.js +0 -57
  109. package/tests/tests/res/res-get.js +0 -18
  110. package/tests/tests/res/res-headers-sent.js +0 -18
  111. package/tests/tests/res/res-json.js +0 -17
  112. package/tests/tests/res/res-jsonp.js +0 -25
  113. package/tests/tests/res/res-links.js +0 -21
  114. package/tests/tests/res/res-location.js +0 -34
  115. package/tests/tests/res/res-redirect.js +0 -46
  116. package/tests/tests/res/res-remove-header.js +0 -19
  117. package/tests/tests/res/res-send-file.js +0 -17
  118. package/tests/tests/res/res-send-status.js +0 -17
  119. package/tests/tests/res/res-send.js +0 -69
  120. package/tests/tests/res/res-set.js +0 -28
  121. package/tests/tests/res/res-status.js +0 -18
  122. package/tests/tests/res/res-type.js +0 -19
  123. package/tests/tests/res/res-vary.js +0 -19
  124. package/tests/tests/res/res-write.js +0 -29
  125. package/tests/tests/routers/complex-routers.js +0 -34
  126. package/tests/tests/routers/empty-router.js +0 -25
  127. package/tests/tests/routers/lot-of-routes.js +0 -38
  128. package/tests/tests/routers/mergeparams.js +0 -42
  129. package/tests/tests/routers/nested-routers.js +0 -52
  130. package/tests/tests/routers/router-options.js +0 -68
  131. package/tests/tests/routers/routers.js +0 -45
  132. package/tests/tests/routers/simple-routers.js +0 -35
  133. package/tests/tests/routing/all.js +0 -47
  134. package/tests/tests/routing/array-arguments.js +0 -35
  135. package/tests/tests/routing/array-use.js +0 -33
  136. package/tests/tests/routing/async-use.js +0 -25
  137. package/tests/tests/routing/complex-routes.js +0 -50
  138. package/tests/tests/routing/lot-of-param-routes.js +0 -26
  139. package/tests/tests/routing/lot-of-routes.js +0 -59
  140. package/tests/tests/routing/next-existent-optimized-route.js +0 -29
  141. package/tests/tests/routing/next-existent-route.js +0 -29
  142. package/tests/tests/routing/next-nonexistent-optimized-route.js +0 -19
  143. package/tests/tests/routing/next-nonexistent-route.js +0 -19
  144. package/tests/tests/routing/next-special-cases.js +0 -54
  145. package/tests/tests/routing/next-unoptimized.js +0 -39
  146. package/tests/tests/routing/no-path-use.js +0 -29
  147. package/tests/tests/routing/non-string-routes.js +0 -27
  148. package/tests/tests/routing/req-multiple-mountpaths.js +0 -34
  149. package/tests/tests/routing/simple-routes.js +0 -29
  150. package/tests/tests/routing/simple-use.js +0 -52
  151. package/tests/tests/routing/some-middlewares.js +0 -27
  152. package/tests/tests/routing/special-characters.js +0 -28
  153. package/tests/tests/routing/star.js +0 -31
  154. package/tests/tests/routing/sub-apps.js +0 -32
  155. package/tests/tests/routing/trailing-slash.js +0 -37
  156. package/tests/tests/routing/weird-route-start.js +0 -18
  157. package/tests/tests/send-file/accept-ranges.js +0 -26
  158. package/tests/tests/send-file/callback.js +0 -23
  159. package/tests/tests/send-file/default-error-routing.js +0 -21
  160. package/tests/tests/send-file/dotfiles.js +0 -24
  161. package/tests/tests/send-file/etag.js +0 -19
  162. package/tests/tests/send-file/fs-threads.js +0 -39
  163. package/tests/tests/send-file/head.js +0 -49
  164. package/tests/tests/send-file/headers.js +0 -23
  165. package/tests/tests/send-file/if-match.js +0 -31
  166. package/tests/tests/send-file/if-range.js +0 -37
  167. package/tests/tests/send-file/if-unmodified-since.js +0 -32
  168. package/tests/tests/send-file/immutable.js +0 -22
  169. package/tests/tests/send-file/large-file.js +0 -19
  170. package/tests/tests/send-file/last-modified.js +0 -21
  171. package/tests/tests/send-file/max-age.js +0 -21
  172. package/tests/tests/send-file/path-traversal.js +0 -35
  173. package/tests/tests/send-file/range.js +0 -57
  174. package/tests/tests/send-file/simple.js +0 -18
  175. package/tests/tests/settings/case-sensitive-routing.js +0 -48
  176. package/tests/tests/settings/env-errors.js +0 -38
  177. package/tests/tests/settings/etag.js +0 -36
  178. package/tests/tests/settings/json-escape.js +0 -45
  179. package/tests/tests/settings/json-replacer.js +0 -50
  180. package/tests/tests/settings/json-spaces.js +0 -44
  181. package/tests/tests/settings/query-parser.js +0 -45
  182. package/tests/tests/settings/strict-routing.js +0 -64
  183. package/tests/tests/settings/subdomain-offset.js +0 -38
  184. package/tests/tests/settings/trust-proxy-host.js +0 -58
  185. package/tests/tests/settings/trust-proxy-ip.js +0 -58
  186. package/tests/tests/settings/trust-proxy-ips.js +0 -58
  187. package/tests/tests/settings/trust-proxy-protocol.js +0 -46
  188. package/tests/tests/settings/x-powered-by.js +0 -32
  189. package/tests/uws.js +0 -14
@@ -1,68 +0,0 @@
1
- // must support app.param and router.param
2
-
3
- const express = require("express");
4
-
5
- const app = express();
6
- const router = express.Router();
7
-
8
- app.get("/user/:id", (req, res, next) => {
9
- console.log('before');
10
- next();
11
- });
12
-
13
- app.param('id', (req, res, next, value, key) => {
14
- if(value === '555') {
15
- return res.send('bypassed');
16
- }
17
- next();
18
- });
19
-
20
- app.param('id', function (req, res, next, value, key) {
21
- console.log('CALLED ONLY ONCE', value, key);
22
- next();
23
- });
24
-
25
- app.param('id', function (req, res, next, id) {
26
- console.log('test 2');
27
- next();
28
- });
29
-
30
- app.param('id', async function (req, res, next, id) {
31
- await new Promise(resolve => setTimeout(resolve, 100));
32
- console.log('test 3');
33
- next();
34
- });
35
-
36
- app.get('/user/:id', function (req, res, next) {
37
- console.log('although this matches');
38
- next();
39
- });
40
-
41
- app.get('/user/:id', function (req, res) {
42
- console.log('and this matches too');
43
- res.send('test');
44
- });
45
-
46
- router.param('id', function (req, res, next, id) {
47
- console.log('Router param call');
48
- next();
49
- });
50
-
51
- router.get('/:id', (req, res) => {
52
- res.send('routertest');
53
- });
54
-
55
- app.use('/test', router);
56
-
57
- app.listen(13333, async () => {
58
- console.log('Server is running on port 13333');
59
-
60
- const response = await fetch('http://localhost:13333/user/123');
61
- console.log(response.status);
62
- const response2 = await fetch('http://localhost:13333/test/123');
63
- console.log(response2.status);
64
- const response3 = await fetch('http://localhost:13333/user/555').then(res => res.text());
65
- console.log(response3);
66
-
67
- process.exit(0);
68
- });
@@ -1,26 +0,0 @@
1
- // must support param regex
2
-
3
- const express = require("express");
4
-
5
- const app = express();
6
-
7
- app.get('/test/:id(t\\d+t)', (req, res) => {
8
- res.send(`id: ${req.params.id}`);
9
- });
10
-
11
- app.use((req, res) => {
12
- res.status(404).send(`404`);
13
- });
14
-
15
- app.listen(13333, async () => {
16
- console.log('Server is running on port 13333');
17
-
18
- let outputs = await Promise.all([
19
- fetch('http://localhost:13333/test/').then(res => res.text()),
20
- fetch('http://localhost:13333/test/t123t').then(res => res.text()),
21
- fetch('http://localhost:13333/test/f').then(res => res.text()),
22
- ]);
23
-
24
- console.log(outputs.join(' '));
25
- process.exit(0);
26
- });
@@ -1,20 +0,0 @@
1
- // must support params in use
2
-
3
- const express = require("express");
4
-
5
- const app = express();
6
-
7
- app.use('/:id', (req, res) => {
8
- res.send(`id: ${req.params.id}`);
9
- });
10
-
11
- app.listen(13333, async () => {
12
- console.log('Server is running on port 13333');
13
-
14
- let outputs = await Promise.all([
15
- fetch('http://localhost:13333/123').then(res => res.text()),
16
- ]);
17
-
18
- console.log(outputs.join(' '));
19
- process.exit(0);
20
- });
@@ -1,35 +0,0 @@
1
- // must support params
2
-
3
- const express = require("express");
4
-
5
- const app = express();
6
-
7
- app.get('/:id', (req, res) => {
8
- res.send(`id: ${req.params.id}`);
9
- });
10
-
11
- app.get('/:id/test', (req, res) => {
12
- res.send(`testid: ${req.params.id}`);
13
- });
14
-
15
- app.get('/:id/test/:testid', (req, res) => {
16
- res.send(`id: ${req.params.id} testid: ${req.params.testid}`);
17
- });
18
-
19
- app.get('/:id/test/:testid/testy', (req, res) => {
20
- res.send(`id: ${req.params.id} testid: ${req.params.testid}`);
21
- });
22
-
23
- app.listen(13333, async () => {
24
- console.log('Server is running on port 13333');
25
-
26
- let outputs = await Promise.all([
27
- fetch('http://localhost:13333/123').then(res => res.text()),
28
- fetch('http://localhost:13333/456/test').then(res => res.text()),
29
- fetch('http://localhost:13333/789/test/123').then(res => res.text()),
30
- fetch('http://localhost:13333/456/test/789/testy').then(res => res.text()),
31
- ]);
32
-
33
- console.log(outputs.join(' '));
34
- process.exit(0);
35
- });
@@ -1,40 +0,0 @@
1
- // must support req.acceptsCharsets()
2
-
3
- const express = require("express");
4
-
5
- const app = express();
6
-
7
- app.get('/test', (req, res) => {
8
- console.log(req.acceptsCharsets('utf-8'));
9
- console.log(req.acceptsCharsets('utf-8', 'utf-16'));
10
- console.log(req.acceptsCharsets('utf-8', 'utf-16', 'utf-32'));
11
- console.log(req.acceptsCharsets('utf-8', 'utf-16', 'utf-32', 'utf-16'));
12
- res.send('test');
13
- });
14
-
15
- app.listen(13333, async () => {
16
- console.log('Server is running on port 13333');
17
-
18
- await fetch('http://localhost:13333/test').then(res => res.text());
19
- await fetch('http://localhost:13333/test', {
20
- headers: {
21
- 'Accept-Charset': 'utf-8'
22
- }
23
- }).then(res => res.text());
24
- await fetch('http://localhost:13333/test', {
25
- headers: {
26
- 'Accept-Charset': 'utf-8, utf-16'
27
- }
28
- }).then(res => res.text());
29
- await fetch('http://localhost:13333/test', {
30
- headers: {
31
- 'Accept-Charset': 'utf-32'
32
- }
33
- }).then(res => res.text());
34
- await fetch('http://localhost:13333/test', {
35
- headers: {
36
- 'Accept-Charset': 'utf-16, utf-32, utf-16'
37
- }
38
- }).then(res => res.text());
39
- process.exit(0);
40
- });
@@ -1,36 +0,0 @@
1
- // must support req.acceptsEncodings()
2
-
3
- const express = require("express");
4
-
5
- const app = express();
6
-
7
- app.get('/test', (req, res) => {
8
- console.log(req.acceptsEncodings('gzip'));
9
- console.log(req.acceptsEncodings('gzip', 'deflate'));
10
- console.log(req.acceptsEncodings('gzip', 'deflate', 'br'));
11
- console.log(req.acceptsEncodings('gzip', 'deflate', 'br', 'deflate'));
12
- console.log(req.acceptsEncodings('deflate', 'br', 'deflate', 'gzip'));
13
- res.send('test');
14
- });
15
-
16
- app.listen(13333, async () => {
17
- console.log('Server is running on port 13333');
18
-
19
- await fetch('http://localhost:13333/test').then(res => res.text());
20
- await fetch('http://localhost:13333/test', {
21
- headers: {
22
- 'Accept-Encoding': 'gzip'
23
- }
24
- }).then(res => res.text());
25
- await fetch('http://localhost:13333/test', {
26
- headers: {
27
- 'Accept-Encoding': 'gzip, deflate'
28
- }
29
- }).then(res => res.text());
30
- await fetch('http://localhost:13333/test', {
31
- headers: {
32
- 'Accept-Encoding': 'deflate, br'
33
- }
34
- }).then(res => res.text());
35
- process.exit(0);
36
- });
@@ -1,41 +0,0 @@
1
- // must support req.acceptsLanguages()
2
-
3
- const express = require("express");
4
-
5
- const app = express();
6
-
7
- app.get('/test', (req, res) => {
8
- console.log(req.acceptsLanguages('en'));
9
- console.log(req.acceptsLanguages('en', 'fr'));
10
- console.log(req.acceptsLanguages('en', 'fr', 'de'));
11
- console.log(req.acceptsLanguages('en', 'fr', 'de', 'fr'));
12
- console.log(req.acceptsLanguages('fr', 'de', 'fr', 'en'));
13
- res.send('test');
14
- });
15
-
16
- app.listen(13333, async () => {
17
- console.log('Server is running on port 13333');
18
-
19
- await fetch('http://localhost:13333/test').then(res => res.text());
20
- await fetch('http://localhost:13333/test', {
21
- headers: {
22
- 'Accept-Language': 'en'
23
- }
24
- }).then(res => res.text());
25
- await fetch('http://localhost:13333/test', {
26
- headers: {
27
- 'Accept-Language': 'en, fr'
28
- }
29
- }).then(res => res.text());
30
- await fetch('http://localhost:13333/test', {
31
- headers: {
32
- 'Accept-Language': 'fr, de'
33
- }
34
- }).then(res => res.text());
35
- await fetch('http://localhost:13333/test', {
36
- headers: {
37
- 'Accept-Language': 'en, fr, de, fr'
38
- }
39
- }).then(res => res.text());
40
- process.exit(0);
41
- });
@@ -1,41 +0,0 @@
1
- // must support req.accepts()
2
-
3
- const express = require("express");
4
-
5
- const app = express();
6
-
7
- app.get('/test', (req, res) => {
8
- console.log(req.accepts('html'));
9
- console.log(req.accepts('json'));
10
- console.log(req.accepts('text'));
11
- console.log(req.accepts('*/*'));
12
- console.log(req.accepts('application/json'));
13
- console.log(req.accepts('text/html'));
14
- console.log(req.accepts(['json', 'text']));
15
- console.log(req.accepts(['json', 'html']));
16
- console.log(req.accepts(['html', 'json']));
17
- res.send('test');
18
- });
19
-
20
- app.listen(13333, async () => {
21
- console.log('Server is running on port 13333');
22
-
23
- await fetch('http://localhost:13333/test').then(res => res.text());
24
- await fetch('http://localhost:13333/test', {
25
- headers: {
26
- 'Accept': 'text/html'
27
- }
28
- }).then(res => res.text());
29
- await fetch('http://localhost:13333/test', {
30
- headers: {
31
- 'Accept': 'application/json'
32
- }
33
- }).then(res => res.text());
34
- await fetch('http://localhost:13333/test', {
35
- headers: {
36
- 'Accept': 'text/plain'
37
- }
38
- }).then(res => res.text());
39
-
40
- process.exit(0);
41
- });
@@ -1,17 +0,0 @@
1
- // must support req.app
2
-
3
- const express = require("express");
4
-
5
- const app = express();
6
-
7
- app.get('/test', (req, res) => {
8
- console.log(!!req.app);
9
- res.send('test');
10
- });
11
-
12
- app.listen(13333, async () => {
13
- console.log('Server is running on port 13333');
14
-
15
- const response = await fetch('http://localhost:13333/test').then(res => res.text());
16
- process.exit(0);
17
- });
@@ -1,38 +0,0 @@
1
- // must support req.baseUrl
2
-
3
- const express = require("express");
4
-
5
- const app = express();
6
- const greet = express.Router()
7
-
8
- greet.get('/jp', function (req, res) {
9
- res.send(req.baseUrl)
10
- });
11
-
12
- app.use(['/gre+t', '/hel{2}o'], greet);
13
-
14
- app.use('/greet', (req, res, next) => {
15
- res.send(req.baseUrl);
16
- });
17
-
18
- app.use((req, res, next) => {
19
- res.send('404');
20
- });
21
-
22
- app.listen(13333, async () => {
23
- console.log('Server is running on port 13333');
24
-
25
- let res = await fetch('http://localhost:13333/greet/jp');
26
- console.log(await res.text());
27
-
28
- res = await fetch('http://localhost:13333/hello/jp');
29
- console.log(await res.text());
30
-
31
- res = await fetch('http://localhost:13333/greet/fsg');
32
- console.log(await res.text());
33
-
34
- // res = await fetch('http://localhost:13333/greet/test');
35
- // console.log(await res.text());
36
-
37
- process.exit(0);
38
- })
@@ -1,19 +0,0 @@
1
- // must support req.connection and req.socket
2
-
3
- const express = require("express");
4
-
5
- const app = express();
6
-
7
- app.get('/test', (req, res) => {
8
- console.log(req.connection.remoteAddress.replace("0000:0000:0000:0000:0000:0000:0000:000", "::"));
9
- console.log(req.connection.localPort);
10
- res.send('test');
11
- });
12
-
13
- app.listen(13333, async () => {
14
- console.log('Server is running on port 13333');
15
-
16
- await fetch('http://localhost:13333/test').then(res => res.text());
17
-
18
- process.exit(0);
19
- });
@@ -1,59 +0,0 @@
1
- // must support req.fresh and req.stale
2
-
3
- const express = require("express");
4
-
5
- const app = express();
6
-
7
- app.get('/test', (req, res) => {
8
- res.set('ETag', '"123"');
9
- res.send([req.fresh, req.stale]);
10
- });
11
-
12
- const date = new Date();
13
-
14
- app.get('/test2', (req, res) => {
15
- res.set('Etag', '"1234"');
16
- res.set('last-modified', date.toISOString());
17
- res.send([req.fresh, req.stale]);
18
- });
19
-
20
- app.listen(13333, async () => {
21
- console.log('Server is running on port 13333');
22
-
23
- const responses = await Promise.all([
24
- fetch('http://localhost:13333/test', {
25
- headers: {
26
- 'cache-control': 'max-age=604800',
27
- },
28
- }),
29
- fetch('http://localhost:13333/test', {
30
- headers: {
31
- 'cache-control': 'max-age=604800',
32
- 'if-none-match': '"123"',
33
- },
34
- }),
35
- fetch('http://localhost:13333/test', {
36
- headers: {
37
- 'cache-control': 'max-age=604800',
38
- 'if-none-match': '"1234"',
39
- },
40
- }),
41
- fetch('http://localhost:13333/test2', {
42
- headers: {
43
- 'cache-control': 'max-age=604800',
44
- },
45
- }),
46
- fetch('http://localhost:13333/test2', {
47
- headers: {
48
- 'cache-control': 'max-age=604800',
49
- 'if-modified-since': new Date(date.getTime() - 1000).toISOString(),
50
- },
51
- }),
52
- ]);
53
-
54
- const texts = await Promise.all(responses.map(res => res.text()));
55
-
56
- console.log(texts, responses.map(res => res.status));
57
-
58
- process.exit(0);
59
- });
@@ -1,78 +0,0 @@
1
- // must support req.get()
2
-
3
- const net = require("net");
4
- const express = require("express");
5
-
6
- // this is needed to actually test multiple headers with the same name
7
- // because fetch just combines them into one
8
- async function sendRequest(method, url, arrayHeaders) {
9
- // arrayHeaders is an array of [key, value] pairs
10
- return new Promise((resolve, reject) => {
11
- const client = new net.Socket();
12
- const [host, port] = url.split('://')[1].split('/')[0].split(':');
13
- const path = '/' + url.split('/').slice(3).join('/');
14
-
15
- client.connect(parseInt(port), host, () => {
16
- let request = `${method} ${path} HTTP/1.1\r\n`;
17
- request += `Host: ${host}:${port}\r\n`;
18
-
19
- for (const [key, value] of arrayHeaders) {
20
- request += `${key}: ${value}\r\n`;
21
- }
22
-
23
- request += '\r\n';
24
-
25
- client.write(request);
26
-
27
- setTimeout(() => {
28
- client.destroy();
29
- resolve();
30
- }, 100);
31
- });
32
- });
33
- }
34
-
35
- const app = express();
36
- app.get("/test", (req, res) => {
37
- console.log(req.get('X-Test'));
38
- console.log(req.get('Referer'));
39
- console.log(req.get('referrer'));
40
- console.log(req.get('Content-Type'));
41
- console.log(req.get('Set-Cookie'));
42
- res.send("test");
43
- });
44
-
45
- app.listen(13333, async () => {
46
- console.log('Server is running on port 13333');
47
-
48
- let res;
49
- res = await fetch('http://localhost:13333/test');
50
- console.log(await res.text());
51
-
52
- res = await fetch('http://localhost:13333/test', {
53
- headers: {
54
- 'X-Test': 'test',
55
- 'Referer': 'http://example.com',
56
- }
57
- });
58
- console.log(await res.text());
59
-
60
- res = await fetch('http://localhost:13333/test', {
61
- headers: {
62
- 'Set-Cookie': 'test=test; HttpOnly; Secure; SameSite=Strict',
63
- 'Referrer': 'http://example.com'
64
- }
65
- });
66
- console.log(await res.text());
67
-
68
- const headers = [];
69
- headers.push(['X-Test', 'test']);
70
- headers.push(['X-Test', 'test2']);
71
- headers.push(['Cookie', 'test=test']);
72
- headers.push(['Cookie', 'test2=test2']);
73
- headers.push(['content-type', 'text/plain']);
74
- headers.push(['content-type', 'application/json']);
75
- res = await sendRequest('GET', 'http://localhost:13333/test', headers);
76
-
77
- process.exit(0);
78
- })
@@ -1,72 +0,0 @@
1
- // must support req.headersDistinct
2
-
3
- const net = require("net");
4
- const express = require("express");
5
-
6
- // this is needed to actually test multiple headers with the same name
7
- // because fetch just combines them into one
8
- async function sendRequest(method, url, arrayHeaders) {
9
- // arrayHeaders is an array of [key, value] pairs
10
- return new Promise((resolve, reject) => {
11
- const client = new net.Socket();
12
- const [host, port] = url.split('://')[1].split('/')[0].split(':');
13
- const path = '/' + url.split('/').slice(3).join('/');
14
-
15
- client.connect(parseInt(port), host, () => {
16
- let request = `${method} ${path} HTTP/1.1\r\n`;
17
- request += `Host: ${host}:${port}\r\n`;
18
-
19
- for (const [key, value] of arrayHeaders) {
20
- request += `${key}: ${value}\r\n`;
21
- }
22
-
23
- request += '\r\n';
24
-
25
- client.write(request);
26
-
27
- setTimeout(() => {
28
- client.destroy();
29
- resolve();
30
- }, 100);
31
- });
32
- });
33
- }
34
-
35
- const app = express();
36
- app.get("/test", (req, res) => {
37
- console.log(req.headersDistinct);
38
- res.send("test");
39
- });
40
-
41
- app.listen(13333, async () => {
42
- console.log('Server is running on port 13333');
43
-
44
- let res;
45
- res = await fetch('http://localhost:13333/test');
46
- console.log(await res.text());
47
-
48
- res = await fetch('http://localhost:13333/test', {
49
- headers: {
50
- 'X-Test': 'test'
51
- }
52
- });
53
- console.log(await res.text());
54
-
55
- res = await fetch('http://localhost:13333/test', {
56
- headers: {
57
- 'Set-Cookie': 'test=test; HttpOnly; Secure; SameSite=Strict'
58
- }
59
- });
60
- console.log(await res.text());
61
-
62
- const headers = [];
63
- headers.push(['X-Test', 'test']);
64
- headers.push(['X-Test', 'test2']);
65
- headers.push(['Cookie', 'test=test']);
66
- headers.push(['Cookie', 'test2=test2']);
67
- headers.push(['content-type', 'text/plain']);
68
- headers.push(['content-type', 'application/json']);
69
- res = await sendRequest('GET', 'http://localhost:13333/test', headers);
70
-
71
- process.exit(0);
72
- })
@@ -1,72 +0,0 @@
1
- // must support req.headers
2
-
3
- const net = require("net");
4
- const express = require("express");
5
-
6
- // this is needed to actually test multiple headers with the same name
7
- // because fetch just combines them into one
8
- async function sendRequest(method, url, arrayHeaders) {
9
- // arrayHeaders is an array of [key, value] pairs
10
- return new Promise((resolve, reject) => {
11
- const client = new net.Socket();
12
- const [host, port] = url.split('://')[1].split('/')[0].split(':');
13
- const path = '/' + url.split('/').slice(3).join('/');
14
-
15
- client.connect(parseInt(port), host, () => {
16
- let request = `${method} ${path} HTTP/1.1\r\n`;
17
- request += `Host: ${host}:${port}\r\n`;
18
-
19
- for (const [key, value] of arrayHeaders) {
20
- request += `${key}: ${value}\r\n`;
21
- }
22
-
23
- request += '\r\n';
24
-
25
- client.write(request);
26
-
27
- setTimeout(() => {
28
- client.destroy();
29
- resolve();
30
- }, 100);
31
- });
32
- });
33
- }
34
-
35
- const app = express();
36
- app.get("/test", (req, res) => {
37
- console.log(req.headers);
38
- res.send("test");
39
- });
40
-
41
- app.listen(13333, async () => {
42
- console.log('Server is running on port 13333');
43
-
44
- let res;
45
- res = await fetch('http://localhost:13333/test');
46
- console.log(await res.text());
47
-
48
- res = await fetch('http://localhost:13333/test', {
49
- headers: {
50
- 'X-Test': 'test'
51
- }
52
- });
53
- console.log(await res.text());
54
-
55
- res = await fetch('http://localhost:13333/test', {
56
- headers: {
57
- 'Set-Cookie': 'test=test; HttpOnly; Secure; SameSite=Strict'
58
- }
59
- });
60
- console.log(await res.text());
61
-
62
- const headers = [];
63
- headers.push(['X-Test', 'test']);
64
- headers.push(['X-Test', 'test2']);
65
- headers.push(['Cookie', 'test=test']);
66
- headers.push(['Cookie', 'test2=test2']);
67
- headers.push(['content-type', 'text/plain']);
68
- headers.push(['content-type', 'application/json']);
69
- res = await sendRequest('GET', 'http://localhost:13333/test', headers);
70
-
71
- process.exit(0);
72
- })