@kaito-http/core 2.3.7 → 2.3.8

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.
@@ -5,9 +5,11 @@ import { KaitoRequest } from './req';
5
5
  import { KaitoResponse } from './res';
6
6
  import { KaitoError } from './error';
7
7
  import { GetContext } from './util';
8
+ export declare type Before = (req: http.IncomingMessage, res: http.ServerResponse) => Promise<void>;
8
9
  export interface ServerConfig<Context> {
9
10
  router: Router<Context, RoutesInit<Context>>;
10
11
  getContext: GetContext<Context>;
12
+ before?: Before[];
11
13
  onError(arg: {
12
14
  error: Error;
13
15
  req: KaitoRequest;
@@ -11,32 +11,82 @@ var getRawBody = require('raw-body');
11
11
  function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
12
12
 
13
13
  function _interopNamespace(e) {
14
- if (e && e.__esModule) return e;
15
- var n = Object.create(null);
16
- if (e) {
17
- Object.keys(e).forEach(function (k) {
18
- if (k !== 'default') {
19
- var d = Object.getOwnPropertyDescriptor(e, k);
20
- Object.defineProperty(n, k, d.get ? d : {
21
- enumerable: true,
22
- get: function () { return e[k]; }
23
- });
24
- }
25
- });
26
- }
27
- n["default"] = e;
28
- return Object.freeze(n);
14
+ if (e && e.__esModule) return e;
15
+ var n = Object.create(null);
16
+ if (e) {
17
+ Object.keys(e).forEach(function (k) {
18
+ if (k !== 'default') {
19
+ var d = Object.getOwnPropertyDescriptor(e, k);
20
+ Object.defineProperty(n, k, d.get ? d : {
21
+ enumerable: true,
22
+ get: function () { return e[k]; }
23
+ });
24
+ }
25
+ });
26
+ }
27
+ n["default"] = e;
28
+ return Object.freeze(n);
29
29
  }
30
30
 
31
31
  var http__namespace = /*#__PURE__*/_interopNamespace(http);
32
32
  var fmw__default = /*#__PURE__*/_interopDefault(fmw);
33
33
  var getRawBody__default = /*#__PURE__*/_interopDefault(getRawBody);
34
34
 
35
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
36
+ try {
37
+ var info = gen[key](arg);
38
+ var value = info.value;
39
+ } catch (error) {
40
+ reject(error);
41
+ return;
42
+ }
43
+
44
+ if (info.done) {
45
+ resolve(value);
46
+ } else {
47
+ Promise.resolve(value).then(_next, _throw);
48
+ }
49
+ }
50
+
51
+ function _asyncToGenerator(fn) {
52
+ return function () {
53
+ var self = this,
54
+ args = arguments;
55
+ return new Promise(function (resolve, reject) {
56
+ var gen = fn.apply(self, args);
57
+
58
+ function _next(value) {
59
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
60
+ }
61
+
62
+ function _throw(err) {
63
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
64
+ }
65
+
66
+ _next(undefined);
67
+ });
68
+ };
69
+ }
70
+
35
71
  function createFMWServer(config) {
36
72
  var fmw = config.router.toFindMyWay(config);
37
- var server = http__namespace.createServer((req, res) => {
38
- fmw.lookup(req, res);
39
- });
73
+ var server = http__namespace.createServer( /*#__PURE__*/function () {
74
+ var _ref = _asyncToGenerator(function* (req, res) {
75
+ for (var fn of (_config$before = config.before) !== null && _config$before !== void 0 ? _config$before : []) {
76
+ var _config$before;
77
+
78
+ // Disabled because we need these to run in order!
79
+ // eslint-disable-next-line no-await-in-loop
80
+ yield fn(req, res);
81
+ }
82
+
83
+ fmw.lookup(req, res);
84
+ });
85
+
86
+ return function (_x, _x2) {
87
+ return _ref.apply(this, arguments);
88
+ };
89
+ }());
40
90
  return {
41
91
  server,
42
92
  fmw
@@ -99,42 +149,6 @@ function _objectSpread2(target) {
99
149
  return target;
100
150
  }
101
151
 
102
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
103
- try {
104
- var info = gen[key](arg);
105
- var value = info.value;
106
- } catch (error) {
107
- reject(error);
108
- return;
109
- }
110
-
111
- if (info.done) {
112
- resolve(value);
113
- } else {
114
- Promise.resolve(value).then(_next, _throw);
115
- }
116
- }
117
-
118
- function _asyncToGenerator(fn) {
119
- return function () {
120
- var self = this,
121
- args = arguments;
122
- return new Promise(function (resolve, reject) {
123
- var gen = fn.apply(self, args);
124
-
125
- function _next(value) {
126
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
127
- }
128
-
129
- function _throw(err) {
130
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
131
- }
132
-
133
- _next(undefined);
134
- });
135
- };
136
- }
137
-
138
152
  class WrappedError extends Error {
139
153
  static maybe(maybeError) {
140
154
  if (maybeError instanceof Error) {
@@ -11,32 +11,82 @@ var getRawBody = require('raw-body');
11
11
  function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
12
12
 
13
13
  function _interopNamespace(e) {
14
- if (e && e.__esModule) return e;
15
- var n = Object.create(null);
16
- if (e) {
17
- Object.keys(e).forEach(function (k) {
18
- if (k !== 'default') {
19
- var d = Object.getOwnPropertyDescriptor(e, k);
20
- Object.defineProperty(n, k, d.get ? d : {
21
- enumerable: true,
22
- get: function () { return e[k]; }
23
- });
24
- }
25
- });
26
- }
27
- n["default"] = e;
28
- return Object.freeze(n);
14
+ if (e && e.__esModule) return e;
15
+ var n = Object.create(null);
16
+ if (e) {
17
+ Object.keys(e).forEach(function (k) {
18
+ if (k !== 'default') {
19
+ var d = Object.getOwnPropertyDescriptor(e, k);
20
+ Object.defineProperty(n, k, d.get ? d : {
21
+ enumerable: true,
22
+ get: function () { return e[k]; }
23
+ });
24
+ }
25
+ });
26
+ }
27
+ n["default"] = e;
28
+ return Object.freeze(n);
29
29
  }
30
30
 
31
31
  var http__namespace = /*#__PURE__*/_interopNamespace(http);
32
32
  var fmw__default = /*#__PURE__*/_interopDefault(fmw);
33
33
  var getRawBody__default = /*#__PURE__*/_interopDefault(getRawBody);
34
34
 
35
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
36
+ try {
37
+ var info = gen[key](arg);
38
+ var value = info.value;
39
+ } catch (error) {
40
+ reject(error);
41
+ return;
42
+ }
43
+
44
+ if (info.done) {
45
+ resolve(value);
46
+ } else {
47
+ Promise.resolve(value).then(_next, _throw);
48
+ }
49
+ }
50
+
51
+ function _asyncToGenerator(fn) {
52
+ return function () {
53
+ var self = this,
54
+ args = arguments;
55
+ return new Promise(function (resolve, reject) {
56
+ var gen = fn.apply(self, args);
57
+
58
+ function _next(value) {
59
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
60
+ }
61
+
62
+ function _throw(err) {
63
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
64
+ }
65
+
66
+ _next(undefined);
67
+ });
68
+ };
69
+ }
70
+
35
71
  function createFMWServer(config) {
36
72
  var fmw = config.router.toFindMyWay(config);
37
- var server = http__namespace.createServer((req, res) => {
38
- fmw.lookup(req, res);
39
- });
73
+ var server = http__namespace.createServer( /*#__PURE__*/function () {
74
+ var _ref = _asyncToGenerator(function* (req, res) {
75
+ for (var fn of (_config$before = config.before) !== null && _config$before !== void 0 ? _config$before : []) {
76
+ var _config$before;
77
+
78
+ // Disabled because we need these to run in order!
79
+ // eslint-disable-next-line no-await-in-loop
80
+ yield fn(req, res);
81
+ }
82
+
83
+ fmw.lookup(req, res);
84
+ });
85
+
86
+ return function (_x, _x2) {
87
+ return _ref.apply(this, arguments);
88
+ };
89
+ }());
40
90
  return {
41
91
  server,
42
92
  fmw
@@ -99,42 +149,6 @@ function _objectSpread2(target) {
99
149
  return target;
100
150
  }
101
151
 
102
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
103
- try {
104
- var info = gen[key](arg);
105
- var value = info.value;
106
- } catch (error) {
107
- reject(error);
108
- return;
109
- }
110
-
111
- if (info.done) {
112
- resolve(value);
113
- } else {
114
- Promise.resolve(value).then(_next, _throw);
115
- }
116
- }
117
-
118
- function _asyncToGenerator(fn) {
119
- return function () {
120
- var self = this,
121
- args = arguments;
122
- return new Promise(function (resolve, reject) {
123
- var gen = fn.apply(self, args);
124
-
125
- function _next(value) {
126
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
127
- }
128
-
129
- function _throw(err) {
130
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
131
- }
132
-
133
- _next(undefined);
134
- });
135
- };
136
- }
137
-
138
152
  class WrappedError extends Error {
139
153
  static maybe(maybeError) {
140
154
  if (maybeError instanceof Error) {
@@ -4,11 +4,61 @@ import { TLSSocket } from 'tls';
4
4
  import { parse } from 'content-type';
5
5
  import getRawBody from 'raw-body';
6
6
 
7
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
8
+ try {
9
+ var info = gen[key](arg);
10
+ var value = info.value;
11
+ } catch (error) {
12
+ reject(error);
13
+ return;
14
+ }
15
+
16
+ if (info.done) {
17
+ resolve(value);
18
+ } else {
19
+ Promise.resolve(value).then(_next, _throw);
20
+ }
21
+ }
22
+
23
+ function _asyncToGenerator(fn) {
24
+ return function () {
25
+ var self = this,
26
+ args = arguments;
27
+ return new Promise(function (resolve, reject) {
28
+ var gen = fn.apply(self, args);
29
+
30
+ function _next(value) {
31
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
32
+ }
33
+
34
+ function _throw(err) {
35
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
36
+ }
37
+
38
+ _next(undefined);
39
+ });
40
+ };
41
+ }
42
+
7
43
  function createFMWServer(config) {
8
44
  var fmw = config.router.toFindMyWay(config);
9
- var server = http.createServer((req, res) => {
10
- fmw.lookup(req, res);
11
- });
45
+ var server = http.createServer( /*#__PURE__*/function () {
46
+ var _ref = _asyncToGenerator(function* (req, res) {
47
+ for (var fn of (_config$before = config.before) !== null && _config$before !== void 0 ? _config$before : []) {
48
+ var _config$before;
49
+
50
+ // Disabled because we need these to run in order!
51
+ // eslint-disable-next-line no-await-in-loop
52
+ yield fn(req, res);
53
+ }
54
+
55
+ fmw.lookup(req, res);
56
+ });
57
+
58
+ return function (_x, _x2) {
59
+ return _ref.apply(this, arguments);
60
+ };
61
+ }());
12
62
  return {
13
63
  server,
14
64
  fmw
@@ -71,42 +121,6 @@ function _objectSpread2(target) {
71
121
  return target;
72
122
  }
73
123
 
74
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
75
- try {
76
- var info = gen[key](arg);
77
- var value = info.value;
78
- } catch (error) {
79
- reject(error);
80
- return;
81
- }
82
-
83
- if (info.done) {
84
- resolve(value);
85
- } else {
86
- Promise.resolve(value).then(_next, _throw);
87
- }
88
- }
89
-
90
- function _asyncToGenerator(fn) {
91
- return function () {
92
- var self = this,
93
- args = arguments;
94
- return new Promise(function (resolve, reject) {
95
- var gen = fn.apply(self, args);
96
-
97
- function _next(value) {
98
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
99
- }
100
-
101
- function _throw(err) {
102
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
103
- }
104
-
105
- _next(undefined);
106
- });
107
- };
108
- }
109
-
110
124
  class WrappedError extends Error {
111
125
  static maybe(maybeError) {
112
126
  if (maybeError instanceof Error) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kaito-http/core",
3
- "version": "2.3.7",
3
+ "version": "2.3.8",
4
4
  "description": "Functional HTTP Framework for TypeScript",
5
5
  "repository": "https://github.com/kaito-http/kaito",
6
6
  "author": "Alistair Smith <hi@alistair.sh>",