dx-server 0.12.2 → 0.13.0
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/README.md +47 -55
- package/{cjs → lib}/body.d.ts +2 -3
- package/lib/body.js +10 -0
- package/{esm → lib}/bodyHelpers.d.ts +2 -4
- package/lib/bodyHelpers.js +89 -0
- package/{esm → lib}/dx.d.ts +5 -8
- package/lib/dx.js +127 -0
- package/{cjs → lib}/dxHelpers.d.ts +0 -4
- package/{esm → lib}/dxHelpers.js +0 -2
- package/{cjs → lib}/index.d.ts +0 -1
- package/{esm/index.d.ts → lib/index.js} +0 -1
- package/lib/logger.js +56 -0
- package/lib/router.d.ts +42 -0
- package/lib/router.js +43 -0
- package/lib/static.js +22 -0
- package/{cjs → lib}/staticHelpers.d.ts +0 -2
- package/lib/staticHelpers.js +186 -0
- package/{cjs → lib}/stream.d.ts +2 -7
- package/lib/stream.js +90 -0
- package/{esm → lib}/vendors/contentType.js +0 -1
- package/{cjs → lib}/vendors/etag.d.ts +0 -3
- package/lib/vendors/etag.js +104 -0
- package/{cjs → lib}/vendors/fresh.d.ts +2 -2
- package/lib/vendors/fresh.js +95 -0
- package/lib/vendors/mime.d.ts +1 -0
- package/lib/vendors/mime.js +35 -0
- package/{esm → lib}/vendors/mimeDb.js +0 -1
- package/{cjs → lib}/vendors/mimeScore.d.ts +1 -1
- package/lib/vendors/mimeScore.js +45 -0
- package/{cjs → lib}/vendors/onFinished.d.ts +1 -1
- package/lib/vendors/onFinished.js +231 -0
- package/lib/vendors/rangeParser.d.ts +20 -0
- package/lib/vendors/rangeParser.js +121 -0
- package/package.json +10 -19
- package/cjs/body.js +0 -14
- package/cjs/bodyHelpers.d.ts +0 -16
- package/cjs/bodyHelpers.js +0 -101
- package/cjs/connect.d.ts +0 -5
- package/cjs/connect.js +0 -44
- package/cjs/dx.d.ts +0 -46
- package/cjs/dx.js +0 -144
- package/cjs/dxHelpers.js +0 -123
- package/cjs/express.d.ts +0 -4
- package/cjs/express.js +0 -43
- package/cjs/helpers.js +0 -14
- package/cjs/index.js +0 -38
- package/cjs/logger.js +0 -61
- package/cjs/package.json +0 -3
- package/cjs/polyfillWithResolvers.d.ts +0 -1
- package/cjs/polyfillWithResolvers.js +0 -17
- package/cjs/router.js +0 -47
- package/cjs/static.js +0 -27
- package/cjs/staticHelpers.js +0 -195
- package/cjs/stream.js +0 -97
- package/cjs/vendors/contentType.js +0 -92
- package/cjs/vendors/etag.js +0 -136
- package/cjs/vendors/fresh.js +0 -102
- package/cjs/vendors/mime.d.ts +0 -1
- package/cjs/vendors/mime.js +0 -42
- package/cjs/vendors/mimeDb.js +0 -9417
- package/cjs/vendors/mimeScore.js +0 -50
- package/cjs/vendors/onFinished.js +0 -245
- package/cjs/vendors/rangeParser.d.ts +0 -10
- package/cjs/vendors/rangeParser.js +0 -126
- package/esm/body.d.ts +0 -8
- package/esm/body.js +0 -11
- package/esm/bodyHelpers.js +0 -90
- package/esm/connect.d.ts +0 -5
- package/esm/connect.js +0 -40
- package/esm/dx.js +0 -128
- package/esm/dxHelpers.d.ts +0 -49
- package/esm/express.d.ts +0 -4
- package/esm/express.js +0 -35
- package/esm/helpers.js +0 -3
- package/esm/index.js +0 -9
- package/esm/logger.d.ts +0 -3
- package/esm/logger.js +0 -57
- package/esm/polyfillWithResolvers.d.ts +0 -1
- package/esm/polyfillWithResolvers.js +0 -16
- package/esm/router.js +0 -44
- package/esm/static.d.ts +0 -5
- package/esm/static.js +0 -23
- package/esm/staticHelpers.d.ts +0 -18
- package/esm/staticHelpers.js +0 -188
- package/esm/stream.d.ts +0 -12
- package/esm/stream.js +0 -92
- package/esm/vendors/contentType.d.ts +0 -4
- package/esm/vendors/etag.d.ts +0 -10
- package/esm/vendors/etag.js +0 -105
- package/esm/vendors/fresh.d.ts +0 -23
- package/esm/vendors/fresh.js +0 -96
- package/esm/vendors/mime.d.ts +0 -1
- package/esm/vendors/mime.js +0 -35
- package/esm/vendors/mimeDb.d.ts +0 -9413
- package/esm/vendors/mimeScore.d.ts +0 -5
- package/esm/vendors/mimeScore.js +0 -46
- package/esm/vendors/onFinished.d.ts +0 -14
- package/esm/vendors/onFinished.js +0 -241
- package/esm/vendors/rangeParser.d.ts +0 -10
- package/esm/vendors/rangeParser.js +0 -122
- /package/{cjs → lib}/helpers.d.ts +0 -0
- /package/{esm/helpers.d.ts → lib/helpers.js} +0 -0
- /package/{cjs → lib}/logger.d.ts +0 -0
- /package/{cjs → lib}/static.d.ts +0 -0
- /package/{cjs → lib}/vendors/contentType.d.ts +0 -0
- /package/{cjs → lib}/vendors/mimeDb.d.ts +0 -0
package/cjs/dx.js
DELETED
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.setRedirect = exports.setJson = exports.setWebStream = exports.setNodeStream = exports.setBuffer = exports.setFile = exports.setHtml = exports.setEmpty = exports.setText = exports.getRes = exports.getReq = exports.dxServer = exports.makeDxContext = void 0;
|
|
4
|
-
const node_async_hooks_1 = require("node:async_hooks");
|
|
5
|
-
const dxHelpers_js_1 = require("./dxHelpers.js");
|
|
6
|
-
function makeDxContext(maker) {
|
|
7
|
-
const promiseMap = new WeakMap();
|
|
8
|
-
const valueMap = new WeakMap();
|
|
9
|
-
const context = (...params) => {
|
|
10
|
-
const req = getReq();
|
|
11
|
-
if (!promiseMap.has(req))
|
|
12
|
-
promiseMap.set(req, (async () => {
|
|
13
|
-
const value = await maker(...params);
|
|
14
|
-
valueMap.set(req, value);
|
|
15
|
-
return value;
|
|
16
|
-
})());
|
|
17
|
-
return promiseMap.get(req);
|
|
18
|
-
};
|
|
19
|
-
Object.defineProperty(context, 'value', {
|
|
20
|
-
get() { return valueMap.get(getReq()); },
|
|
21
|
-
set(value) {
|
|
22
|
-
const req = getReq();
|
|
23
|
-
promiseMap.set(req, Promise.resolve(value));
|
|
24
|
-
valueMap.set(req, value);
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
context.chain = (...params) => async (next) => {
|
|
28
|
-
await context(...params);
|
|
29
|
-
return next();
|
|
30
|
-
};
|
|
31
|
-
context.set = (req, value) => {
|
|
32
|
-
promiseMap.set(req, Promise.resolve(value));
|
|
33
|
-
valueMap.set(req, value);
|
|
34
|
-
};
|
|
35
|
-
context.get = req => valueMap.get(req);
|
|
36
|
-
return context;
|
|
37
|
-
}
|
|
38
|
-
exports.makeDxContext = makeDxContext;
|
|
39
|
-
const requestStorage = new node_async_hooks_1.AsyncLocalStorage();
|
|
40
|
-
const dxContext = makeDxContext(options => ({ ...options }));
|
|
41
|
-
function dxServer(req, res, options = {}) {
|
|
42
|
-
return async (next) => {
|
|
43
|
-
dxContext.set(req, { ...options });
|
|
44
|
-
const result = await requestStorage.run({ req, res }, next);
|
|
45
|
-
await (0, dxHelpers_js_1.writeRes)(req, res, dxContext.get(req));
|
|
46
|
-
return result;
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
exports.dxServer = dxServer;
|
|
50
|
-
// method: verb
|
|
51
|
-
// url: full url without server, protocol, port.
|
|
52
|
-
// headers: if headers are repeated, they are joined by comma. Header names are lowercased.
|
|
53
|
-
// rawHeaders: list of header name and value in a flat array. Case is preserved.
|
|
54
|
-
function getReq() { return requestStorage.getStore().req; }
|
|
55
|
-
exports.getReq = getReq;
|
|
56
|
-
function getRes() { return requestStorage.getStore().res; }
|
|
57
|
-
exports.getRes = getRes;
|
|
58
|
-
function setText(text, { status } = {}) {
|
|
59
|
-
const res = getRes();
|
|
60
|
-
const dx = dxContext.value;
|
|
61
|
-
if (status)
|
|
62
|
-
res.statusCode = status;
|
|
63
|
-
dx.data = text;
|
|
64
|
-
dx.type = 'text';
|
|
65
|
-
}
|
|
66
|
-
exports.setText = setText;
|
|
67
|
-
function setEmpty({ status } = {}) {
|
|
68
|
-
const res = getRes();
|
|
69
|
-
const dx = dxContext.value;
|
|
70
|
-
if (status)
|
|
71
|
-
res.statusCode = status;
|
|
72
|
-
dx.data = undefined;
|
|
73
|
-
dx.type = 'empty';
|
|
74
|
-
}
|
|
75
|
-
exports.setEmpty = setEmpty;
|
|
76
|
-
function setHtml(html, opts = {}) {
|
|
77
|
-
setText(html, opts);
|
|
78
|
-
const dx = dxContext.value;
|
|
79
|
-
dx.type = 'html';
|
|
80
|
-
}
|
|
81
|
-
exports.setHtml = setHtml;
|
|
82
|
-
function setFile(filePath, options) {
|
|
83
|
-
const dx = dxContext.value;
|
|
84
|
-
dx.data = filePath;
|
|
85
|
-
dx.type = 'file';
|
|
86
|
-
dx.options = options;
|
|
87
|
-
}
|
|
88
|
-
exports.setFile = setFile;
|
|
89
|
-
function setBuffer(buffer, { status } = {}) {
|
|
90
|
-
const res = getRes();
|
|
91
|
-
const dx = dxContext.value;
|
|
92
|
-
if (status)
|
|
93
|
-
res.statusCode = status;
|
|
94
|
-
dx.data = buffer;
|
|
95
|
-
dx.type = 'buffer';
|
|
96
|
-
}
|
|
97
|
-
exports.setBuffer = setBuffer;
|
|
98
|
-
function setNodeStream(stream, { status } = {}) {
|
|
99
|
-
const res = getRes();
|
|
100
|
-
const dx = dxContext.value;
|
|
101
|
-
if (status)
|
|
102
|
-
res.statusCode = status;
|
|
103
|
-
dx.data = stream;
|
|
104
|
-
dx.type = 'nodeStream';
|
|
105
|
-
}
|
|
106
|
-
exports.setNodeStream = setNodeStream;
|
|
107
|
-
function setWebStream(stream, { status } = {}) {
|
|
108
|
-
const res = getRes();
|
|
109
|
-
const dx = dxContext.value;
|
|
110
|
-
if (status)
|
|
111
|
-
res.statusCode = status;
|
|
112
|
-
dx.data = stream;
|
|
113
|
-
dx.type = 'webStream';
|
|
114
|
-
}
|
|
115
|
-
exports.setWebStream = setWebStream;
|
|
116
|
-
function setJson(json, { status } = {}) {
|
|
117
|
-
const res = getRes();
|
|
118
|
-
if (status)
|
|
119
|
-
res.statusCode = status;
|
|
120
|
-
const dx = dxContext.value;
|
|
121
|
-
dx.data = json;
|
|
122
|
-
dx.type = 'json';
|
|
123
|
-
}
|
|
124
|
-
exports.setJson = setJson;
|
|
125
|
-
function setRedirect(url, status) {
|
|
126
|
-
const res = getRes();
|
|
127
|
-
const dx = dxContext.value;
|
|
128
|
-
res.statusCode = status;
|
|
129
|
-
dx.data = url;
|
|
130
|
-
dx.type = 'redirect';
|
|
131
|
-
}
|
|
132
|
-
exports.setRedirect = setRedirect;
|
|
133
|
-
// for download, set content-disposition header
|
|
134
|
-
// res.setHeader('Content-disposition', 'attachment; filename=my-movie.MOV')
|
|
135
|
-
// res.setHeader('Content-type', 'video/quicktime')
|
|
136
|
-
// fileStream.pipe(res)
|
|
137
|
-
// or
|
|
138
|
-
// send(req, filePath, options).pipe(res) // which will set content-type, content-length, and other cache related headers like staticHelpers.sendFile
|
|
139
|
-
// implementing this require a strict validation for the type (attachment) and filename.
|
|
140
|
-
// For example: express relies on this
|
|
141
|
-
// https://github.com/jshttp/content-disposition/blob/1037e24e4790273da96645ad250061f39e77968c/index.js#L186
|
|
142
|
-
// because in most applications, users can specify a simple filename which usually doesn't need to be validated.
|
|
143
|
-
// we leave setDownload() implementation for users, for now.
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZHgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsdURBQWtEO0FBQ2xELGlEQUF1RDtBQXVCdkQsU0FBZ0IsYUFBYSxDQUszQixLQUE0QztJQUM3QyxNQUFNLFVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBK0IsQ0FBQTtJQUM3RCxNQUFNLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBc0IsQ0FBQTtJQUNsRCxNQUFNLE9BQU8sR0FBZ0MsQ0FBQyxHQUFHLE1BQWMsRUFBRSxFQUFFO1FBQ2xFLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxDQUFBO1FBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQztZQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxJQUFJLEVBQUU7Z0JBQ3pELE1BQU0sS0FBSyxHQUFHLE1BQU0sS0FBSyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUE7Z0JBQ3BDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFBO2dCQUN4QixPQUFPLEtBQUssQ0FBQTtZQUNiLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUNMLE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUMzQixDQUFDLENBQUE7SUFDRCxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUU7UUFDdkMsR0FBRyxLQUFJLE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBLENBQUEsQ0FBQztRQUNyQyxHQUFHLENBQUMsS0FBSztZQUNSLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxDQUFBO1lBQ3BCLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtZQUMzQyxRQUFR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
|
package/cjs/dxHelpers.js
DELETED
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.writeRes = void 0;
|
|
4
|
-
const node_stream_1 = require("node:stream");
|
|
5
|
-
const node_util_1 = require("node:util");
|
|
6
|
-
const etag_js_1 = require("./vendors/etag.js");
|
|
7
|
-
const staticHelpers_js_1 = require("./staticHelpers.js");
|
|
8
|
-
require("./polyfillWithResolvers.js");
|
|
9
|
-
async function writeRes(req, res, { type, data, charset, jsonBeautify, disableEtag, options }) {
|
|
10
|
-
const setContentType = (contentType) => {
|
|
11
|
-
if (res.headersSent || res.getHeader('content-type'))
|
|
12
|
-
return;
|
|
13
|
-
res.setHeader('content-type', `${contentType}${charset ? `; charset=${charset}` : ''}`);
|
|
14
|
-
};
|
|
15
|
-
let bufferOrStream;
|
|
16
|
-
switch (type) {
|
|
17
|
-
case 'text':
|
|
18
|
-
setContentType('text/plain');
|
|
19
|
-
case 'html':
|
|
20
|
-
setContentType('text/html');
|
|
21
|
-
// shared with text
|
|
22
|
-
bufferOrStream = Buffer.from(data ?? '', charset);
|
|
23
|
-
break;
|
|
24
|
-
case 'buffer':
|
|
25
|
-
setContentType('application/octet-stream');
|
|
26
|
-
bufferOrStream = data ?? Buffer.from('', charset);
|
|
27
|
-
break;
|
|
28
|
-
case 'nodeStream':
|
|
29
|
-
setContentType('application/octet-stream');
|
|
30
|
-
bufferOrStream = data ?? Buffer.from('', charset);
|
|
31
|
-
break;
|
|
32
|
-
case 'webStream':
|
|
33
|
-
setContentType('application/octet-stream');
|
|
34
|
-
bufferOrStream = node_stream_1.Readable.fromWeb(data ?? new ReadableStream());
|
|
35
|
-
break;
|
|
36
|
-
case 'json':
|
|
37
|
-
setContentType('application/json');
|
|
38
|
-
bufferOrStream = data === undefined
|
|
39
|
-
? Buffer.from('', charset)
|
|
40
|
-
: Buffer.from(jsonBeautify ? JSON.stringify(data, null, 2) : JSON.stringify(data), charset);
|
|
41
|
-
break;
|
|
42
|
-
case 'redirect': // https://stackoverflow.com/a/8059718/1398479
|
|
43
|
-
res.setHeader('location', data);
|
|
44
|
-
bufferOrStream = Buffer.from('', charset);
|
|
45
|
-
break;
|
|
46
|
-
case 'file':
|
|
47
|
-
try {
|
|
48
|
-
await (0, staticHelpers_js_1.sendFileTrusted)(req, res, data, options);
|
|
49
|
-
}
|
|
50
|
-
catch (e) {
|
|
51
|
-
// do nothing
|
|
52
|
-
}
|
|
53
|
-
case undefined:
|
|
54
|
-
// skip response. Some middleware may handle it outside the chain. For example, express middleware
|
|
55
|
-
return;
|
|
56
|
-
case 'empty':
|
|
57
|
-
bufferOrStream = Buffer.from('', charset);
|
|
58
|
-
break;
|
|
59
|
-
default:
|
|
60
|
-
if (!res.getHeader('content-type'))
|
|
61
|
-
res.setHeader('content-type', 'text/plain');
|
|
62
|
-
throw new Error(`unsupported response type ${type}`);
|
|
63
|
-
}
|
|
64
|
-
if (res.headersSent) {
|
|
65
|
-
// for example, chainStatic or setFile send the response directly
|
|
66
|
-
if (res.writableFinished) {
|
|
67
|
-
// skipped: response is already finished
|
|
68
|
-
}
|
|
69
|
-
else if (res.writableEnded) {
|
|
70
|
-
// const defer = Promise.withResolvers()
|
|
71
|
-
// res.addListener('finish', defer.resolve)
|
|
72
|
-
// res.addListener('error', defer.reject)
|
|
73
|
-
// await defer.promise
|
|
74
|
-
// skipped: response is already ended
|
|
75
|
-
// chunk is not fully flushed yet
|
|
76
|
-
}
|
|
77
|
-
else
|
|
78
|
-
await (0, node_util_1.promisify)(res.end.bind(res))();
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
// https://github.com/expressjs/express/blob/980d881e3b023db079de60477a2588a91f046ca5/lib/response.js#L210
|
|
82
|
-
// if (res.statusCode === 204) { // No Content
|
|
83
|
-
// res.removeHeader('content-type')
|
|
84
|
-
// res.removeHeader('content-length')
|
|
85
|
-
// res.removeHeader('transfer-encoding')
|
|
86
|
-
// // write nothing
|
|
87
|
-
// }
|
|
88
|
-
// if (res.statusCode === 205) { // reset content. Tell client to clear the form, etc.
|
|
89
|
-
// res.setHeader('content-length', 0)
|
|
90
|
-
// res.removeHeader('transfer-encoding')
|
|
91
|
-
// } else
|
|
92
|
-
if (req.method !== 'HEAD') {
|
|
93
|
-
if (Buffer.isBuffer(bufferOrStream)) {
|
|
94
|
-
// support: 304 (etag), zipping, file etag and last modified
|
|
95
|
-
res.setHeader('content-length', bufferOrStream.length);
|
|
96
|
-
if (!disableEtag) {
|
|
97
|
-
const etag = (0, etag_js_1.entityTag)(bufferOrStream);
|
|
98
|
-
// const lastModified = res.getHeader('last-modified')
|
|
99
|
-
res.setHeader('ETag', etag);
|
|
100
|
-
if ((0, etag_js_1.isFreshETag)(req, etag)) {
|
|
101
|
-
res.removeHeader('content-type');
|
|
102
|
-
res.removeHeader('content-length');
|
|
103
|
-
res.removeHeader('transfer-encoding');
|
|
104
|
-
res.statusCode = 304;
|
|
105
|
-
// write nothing
|
|
106
|
-
}
|
|
107
|
-
else
|
|
108
|
-
res.write(bufferOrStream);
|
|
109
|
-
}
|
|
110
|
-
else
|
|
111
|
-
res.write(bufferOrStream);
|
|
112
|
-
}
|
|
113
|
-
else {
|
|
114
|
-
bufferOrStream.pipe(res);
|
|
115
|
-
return; // no res.end()
|
|
116
|
-
}
|
|
117
|
-
// we do not support content-encoding (gzip, deflate, br) and leave it to reverse proxy or CDN
|
|
118
|
-
}
|
|
119
|
-
await (0, node_util_1.promisify)(res.end.bind(res))();
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
exports.writeRes = writeRes;
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHhIZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2R4SGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSw2Q0FBb0M7QUFDcEMseUNBQW1DO0FBQ25DLCtDQUF3RDtBQUN4RCx5REFBd0U7QUFFeEUsc0NBQW1DO0FBb0Q1QixLQUFLLFVBQVUsUUFBUSxDQUFDLEdBQW9CLEVBQUUsR0FBbUIsRUFBRSxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFZO0lBQzdJLE1BQU0sY0FBYyxHQUFHLENBQUMsV0FBbUIsRUFBRSxFQUFFO1FBQzlDLElBQUksR0FBRyxDQUFDLFdBQVcsSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQztZQUFFLE9BQU07UUFDNUQsR0FBRyxDQUFDLFNBQVMsQ0FBQyxjQUFjLEVBQUUsR0FBRyxXQUFXLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxhQUFhLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQ3hGLENBQUMsQ0FBQTtJQUNELElBQUksY0FBYyxDQUFBO0lBRWxCLFFBQVEsSUFBSSxFQUFFLENBQUM7UUFDZCxLQUFLLE1BQU07WUFDVixjQUFjLENBQUMsWUFBWSxDQUFDLENBQUE7UUFDN0IsS0FBSyxNQUFNO1lBQ1YsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1lBQzNCLG1CQUFtQjtZQUNuQixjQUFjLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFBO1lBQ2pELE1BQUs7UUFDTixLQUFLLFFBQVE7WUFDWixjQUFjLENBQUMsMEJBQTBCLENBQUMsQ0FBQTtZQUMxQyxjQUFjLEdBQUcsSUFBSSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFBO1lBQ2pELE1BQUs7UUFDTixLQUFLLFlBQVk7WUFDaEIsY0FBYyxDQUFDLDBCQUEwQixDQUFDLENBQUE7WUFDMUMsY0FBYyxHQUFHLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQTtZQUNqRCxNQUFLO1FBQ04sS0FBSyxXQUFXO1lBQ2YsY0FBYyxDQUFDLDBCQUEwQixDQUFDLENBQUE7WUFDMUMsY0FBYyxHQUFHLHNCQUFRLENBQUMsT0FBTyxDQUFDLElBQWlELElBQUksSUFBSSxjQUFjLEVBQUUsQ0FBQyxDQUFBO1lBQzVHLE1BQUs7UUFDTixLQUFLLE1BQU07WUFDVixjQUFjLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtZQUNsQyxjQUFjLEdBQUcsSUFBSSxLQUFLLFNBQVM7Z0JBQ2xDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUM7Z0JBQzFCLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFBO1lBQzVGLE1BQUs7UUFDTixLQUFLLFVBQVUsRUFBRSw4Q0FBOEM7WUFDOUQsR0FBRyxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUE7WUFDL0IsY0FBYyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFBO1lBQ3pDLE1BQUs7UUFDTixLQUFLLE1BQU07WUFDVixJQUFJLENBQUM7Z0JBQ0osTUFBTSxJQUFBLGtDQUFlLEVBQ3BCLEdBQUcsRUFDSCxHQUFHLEVBQ0gsSUFBSSxFQUNKLE9BQU8sQ0FDUCxDQUFBO1lBQ0YsQ0FBQztZQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ1osYUFBYTtZQUNkLENBQUM7UUFDRixLQUFLLFNBQVM7WUFDYixrR0FBa0c7WUFDbEcsT0FBTTtRQUNQLEtBQUssT0FBTztZQUNYLGNBQWMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQTtZQUN6QyxNQUFLO1FBQ047WUFDQyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUM7Z0JBQUUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxjQUFjLEVBQUUsWUFBWSxDQUFDLENBQUE7WUFDL0UsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsSUFBSSxFQUFFLENBQUMsQ0FBQTtJQUN0RCxDQUFDO0lBRUQsSUFBSSxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckIsaUVBQWlFO1FBQ2pFLElBQUksR0FBRyxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDMUIsd0NBQXdDO1FBQ3pDLENBQUM7YUFBTSxJQUFJLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUM5Qix3Q0FBd0M7WUFDeEMsMkNBQTJDO1lBQzNDLHlDQUF5QztZQUN6QyxzQkFBc0I7WUFDdEIscUNBQXFDO1lBQ3JDLGlDQUFpQztRQUNsQyxDQUFDOztZQUFNLE1BQU0sSUFBQSxxQkFBUyxFQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtJQUM1QyxDQUFDO1NBQU0sQ0FBQztRQUNQLDBHQUEwRztRQUMxRyw4Q0FBOEM7UUFDOUMsb0NBQW9DO1FBQ3BDLHNDQUFzQztRQUN0Qyx5Q0FBeUM7UUFDekMsb0JBQW9CO1FBQ3BCLElBQUk7UUFDSixzRkFBc0Y7UUFDdEYsc0NBQXNDO1FBQ3RDLHlDQUF5QztRQUN6QyxTQUFTO1FBQ1QsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQzNCLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO2dCQUNyQyw0REFBNEQ7Z0JBQzVELEdBQUcsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEVBQUUsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFBO2dCQUV0RCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7b0JBQ2xCLE1BQU0sSUFBSSxHQUFHLElBQUEsbUJBQVMsRUFBQyxjQUFjLENBQUMsQ0FBQTtvQkFDdEMsc0RBQXNEO29CQUV0RCxHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQTtvQkFDM0IsSUFBSSxJQUFBLHFCQUFXLEVBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUM7d0JBQzVCLEdBQUcsQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUE7d0JBQ2hDLEdBQUcsQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTt3QkFDbEMsR0FBRyxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO3dCQUNyQyxHQUFHLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQTt3QkFDcEIsZ0JBQWdCO29CQUNqQixDQUFDOzt3QkFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFBO2dCQUNqQyxDQUFDOztvQkFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFBO1lBQ2pDLENBQUM7aUJBQU0sQ0FBQztnQkFDUCxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2dCQUN4QixPQUFNLENBQUMsZUFBZTtZQUN2QixDQUFDO1lBQ0QsOEZBQThGO1FBQy9GLENBQUM7UUFFRCxNQUFNLElBQUEscUJBQVMsRUFBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUE7SUFDckMsQ0FBQztBQUNGLENBQUM7QUE5R0QsNEJBOEdDIn0=
|
package/cjs/express.d.ts
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { type Express, type Router } from 'express';
|
|
2
|
-
import './polyfillWithResolvers.js';
|
|
3
|
-
export declare function expressApp(setup: (app: Express) => any): Promise<(next: any) => Promise<void>>;
|
|
4
|
-
export declare function expressRouter(setup: (router: Router) => any): Promise<(next: any) => Promise<void>>;
|
package/cjs/express.js
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.expressRouter = exports.expressApp = void 0;
|
|
7
|
-
const express_1 = __importDefault(require("express"));
|
|
8
|
-
const dx_js_1 = require("./dx.js");
|
|
9
|
-
require("./polyfillWithResolvers.js");
|
|
10
|
-
async function expressApp(setup) {
|
|
11
|
-
const map = new WeakMap();
|
|
12
|
-
const app = (0, express_1.default)();
|
|
13
|
-
await setup(app);
|
|
14
|
-
app.use((req, _res, _next) => map.get(req)?.resolve());
|
|
15
|
-
app.use((err, req, _res, _next) => map.get(req)?.reject(err));
|
|
16
|
-
return async (next) => {
|
|
17
|
-
const defer = Promise.withResolvers();
|
|
18
|
-
const req = (0, dx_js_1.getReq)();
|
|
19
|
-
map.set(req, defer);
|
|
20
|
-
app(req, (0, dx_js_1.getRes)());
|
|
21
|
-
await defer.promise;
|
|
22
|
-
await next();
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
exports.expressApp = expressApp;
|
|
26
|
-
// can be used to chain existing Express app
|
|
27
|
-
async function expressRouter(setup) {
|
|
28
|
-
const map = new WeakMap();
|
|
29
|
-
const router = express_1.default.Router();
|
|
30
|
-
await setup(router);
|
|
31
|
-
router.use((req, _res, _next) => map.get(req)?.resolve());
|
|
32
|
-
router.use((err, req, _res, _next) => map.get(req)?.reject(err));
|
|
33
|
-
return async (next) => {
|
|
34
|
-
const defer = Promise.withResolvers();
|
|
35
|
-
const req = (0, dx_js_1.getReq)();
|
|
36
|
-
map.set(req, defer);
|
|
37
|
-
router(req, (0, dx_js_1.getRes)());
|
|
38
|
-
await defer.promise; // if express middleware responses to the request, this will never resolve.
|
|
39
|
-
await next();
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
exports.expressRouter = expressRouter;
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwcmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9leHByZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHNEQUEwRDtBQUMxRCxtQ0FBc0M7QUFFdEMsc0NBQW1DO0FBRTVCLEtBQUssVUFBVSxVQUFVLENBQUMsS0FBNEI7SUFDNUQsTUFBTSxHQUFHLEdBQUcsSUFBSSxPQUFPLEVBQThDLENBQUE7SUFDckUsTUFBTSxHQUFHLEdBQUcsSUFBQSxpQkFBTyxHQUFFLENBQUE7SUFDckIsTUFBTSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDaEIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUE7SUFDdEQsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtJQUM3RCxPQUFPLEtBQUssRUFBQyxJQUFJLEVBQUMsRUFBRTtRQUNuQixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUE7UUFDckMsTUFBTSxHQUFHLEdBQUcsSUFBQSxjQUFNLEdBQUUsQ0FBQTtRQUNwQixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUNuQixHQUFHLENBQUMsR0FBRyxFQUFFLElBQUEsY0FBTSxHQUFFLENBQUMsQ0FBQTtRQUNsQixNQUFNLEtBQUssQ0FBQyxPQUFPLENBQUE7UUFDbkIsTUFBTSxJQUFJLEVBQUUsQ0FBQTtJQUNiLENBQUMsQ0FBQTtBQUNGLENBQUM7QUFkRCxnQ0FjQztBQUVELDRDQUE0QztBQUNyQyxLQUFLLFVBQVUsYUFBYSxDQUFDLEtBQThCO0lBQ2pFLE1BQU0sR0FBRyxHQUFHLElBQUksT0FBTyxFQUE4QyxDQUFBO0lBQ3JFLE1BQU0sTUFBTSxHQUFHLGlCQUFPLENBQUMsTUFBTSxFQUFFLENBQUE7SUFDL0IsTUFBTSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDbkIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUE7SUFDekQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtJQUNoRSxPQUFPLEtBQUssRUFBQyxJQUFJLEVBQUMsRUFBRTtRQUNuQixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUE7UUFDckMsTUFBTSxHQUFHLEdBQUcsSUFBQSxjQUFNLEdBQUUsQ0FBQTtRQUNwQixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUNuQixNQUFNLENBQUMsR0FBRyxFQUFFLElBQUEsY0FBTSxHQUFFLENBQUMsQ0FBQTtRQUNyQixNQUFNLEtBQUssQ0FBQyxPQUFPLENBQUEsQ0FBQywyRUFBMkU7UUFDL0YsTUFBTSxJQUFJLEVBQUUsQ0FBQTtJQUNiLENBQUMsQ0FBQTtBQUNGLENBQUM7QUFkRCxzQ0FjQyJ9
|
package/cjs/helpers.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.queryFromReq = exports.urlEncodedFromReq = exports.textFromReq = exports.rawFromReq = exports.jsonFromReq = exports.bufferFromReq = exports.setBufferBodyDefaultOptions = exports.writeRes = void 0;
|
|
4
|
-
var dxHelpers_js_1 = require("./dxHelpers.js");
|
|
5
|
-
Object.defineProperty(exports, "writeRes", { enumerable: true, get: function () { return dxHelpers_js_1.writeRes; } });
|
|
6
|
-
var bodyHelpers_js_1 = require("./bodyHelpers.js");
|
|
7
|
-
Object.defineProperty(exports, "setBufferBodyDefaultOptions", { enumerable: true, get: function () { return bodyHelpers_js_1.setBufferBodyDefaultOptions; } });
|
|
8
|
-
Object.defineProperty(exports, "bufferFromReq", { enumerable: true, get: function () { return bodyHelpers_js_1.bufferFromReq; } });
|
|
9
|
-
Object.defineProperty(exports, "jsonFromReq", { enumerable: true, get: function () { return bodyHelpers_js_1.jsonFromReq; } });
|
|
10
|
-
Object.defineProperty(exports, "rawFromReq", { enumerable: true, get: function () { return bodyHelpers_js_1.rawFromReq; } });
|
|
11
|
-
Object.defineProperty(exports, "textFromReq", { enumerable: true, get: function () { return bodyHelpers_js_1.textFromReq; } });
|
|
12
|
-
Object.defineProperty(exports, "urlEncodedFromReq", { enumerable: true, get: function () { return bodyHelpers_js_1.urlEncodedFromReq; } });
|
|
13
|
-
Object.defineProperty(exports, "queryFromReq", { enumerable: true, get: function () { return bodyHelpers_js_1.queryFromReq; } });
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtDQUF1QztBQUEvQix3R0FBQSxRQUFRLE9BQUE7QUFDaEIsbURBUXlCO0FBUHhCLDZIQUFBLDJCQUEyQixPQUFBO0FBQzNCLCtHQUFBLGFBQWEsT0FBQTtBQUNiLDZHQUFBLFdBQVcsT0FBQTtBQUNYLDRHQUFBLFVBQVUsT0FBQTtBQUNWLDZHQUFBLFdBQVcsT0FBQTtBQUNYLG1IQUFBLGlCQUFpQixPQUFBO0FBQ2pCLDhHQUFBLFlBQVksT0FBQSJ9
|
package/cjs/index.js
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.logger = exports.logJson = exports.chainStatic = exports.connectMiddlewares = exports.router = exports.getQuery = exports.getUrlEncoded = exports.getText = exports.getRaw = exports.getJson = exports.getBuffer = exports.makeDxContext = exports.setFile = exports.setEmpty = exports.setText = exports.setRedirect = exports.setBuffer = exports.setJson = exports.setWebStream = exports.setNodeStream = exports.setHtml = exports.getRes = exports.getReq = void 0;
|
|
7
|
-
var dx_js_1 = require("./dx.js");
|
|
8
|
-
Object.defineProperty(exports, "getReq", { enumerable: true, get: function () { return dx_js_1.getReq; } });
|
|
9
|
-
Object.defineProperty(exports, "getRes", { enumerable: true, get: function () { return dx_js_1.getRes; } });
|
|
10
|
-
Object.defineProperty(exports, "setHtml", { enumerable: true, get: function () { return dx_js_1.setHtml; } });
|
|
11
|
-
Object.defineProperty(exports, "setNodeStream", { enumerable: true, get: function () { return dx_js_1.setNodeStream; } });
|
|
12
|
-
Object.defineProperty(exports, "setWebStream", { enumerable: true, get: function () { return dx_js_1.setWebStream; } });
|
|
13
|
-
Object.defineProperty(exports, "setJson", { enumerable: true, get: function () { return dx_js_1.setJson; } });
|
|
14
|
-
Object.defineProperty(exports, "setBuffer", { enumerable: true, get: function () { return dx_js_1.setBuffer; } });
|
|
15
|
-
Object.defineProperty(exports, "setRedirect", { enumerable: true, get: function () { return dx_js_1.setRedirect; } });
|
|
16
|
-
Object.defineProperty(exports, "setText", { enumerable: true, get: function () { return dx_js_1.setText; } });
|
|
17
|
-
Object.defineProperty(exports, "setEmpty", { enumerable: true, get: function () { return dx_js_1.setEmpty; } });
|
|
18
|
-
Object.defineProperty(exports, "setFile", { enumerable: true, get: function () { return dx_js_1.setFile; } });
|
|
19
|
-
Object.defineProperty(exports, "makeDxContext", { enumerable: true, get: function () { return dx_js_1.makeDxContext; } });
|
|
20
|
-
const dx_js_2 = require("./dx.js");
|
|
21
|
-
var body_js_1 = require("./body.js");
|
|
22
|
-
Object.defineProperty(exports, "getBuffer", { enumerable: true, get: function () { return body_js_1.getBuffer; } });
|
|
23
|
-
Object.defineProperty(exports, "getJson", { enumerable: true, get: function () { return body_js_1.getJson; } });
|
|
24
|
-
Object.defineProperty(exports, "getRaw", { enumerable: true, get: function () { return body_js_1.getRaw; } });
|
|
25
|
-
Object.defineProperty(exports, "getText", { enumerable: true, get: function () { return body_js_1.getText; } });
|
|
26
|
-
Object.defineProperty(exports, "getUrlEncoded", { enumerable: true, get: function () { return body_js_1.getUrlEncoded; } });
|
|
27
|
-
Object.defineProperty(exports, "getQuery", { enumerable: true, get: function () { return body_js_1.getQuery; } });
|
|
28
|
-
var router_js_1 = require("./router.js");
|
|
29
|
-
Object.defineProperty(exports, "router", { enumerable: true, get: function () { return router_js_1.router; } });
|
|
30
|
-
var connect_js_1 = require("./connect.js");
|
|
31
|
-
Object.defineProperty(exports, "connectMiddlewares", { enumerable: true, get: function () { return connect_js_1.connectMiddlewares; } });
|
|
32
|
-
var static_js_1 = require("./static.js");
|
|
33
|
-
Object.defineProperty(exports, "chainStatic", { enumerable: true, get: function () { return static_js_1.chainStatic; } });
|
|
34
|
-
var logger_js_1 = require("./logger.js");
|
|
35
|
-
Object.defineProperty(exports, "logJson", { enumerable: true, get: function () { return logger_js_1.logJson; } });
|
|
36
|
-
Object.defineProperty(exports, "logger", { enumerable: true, get: function () { return __importDefault(logger_js_1).default; } });
|
|
37
|
-
exports.default = dx_js_2.dxServer;
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsaUNBYWdCO0FBWmYsK0ZBQUEsTUFBTSxPQUFBO0FBQ04sK0ZBQUEsTUFBTSxPQUFBO0FBQ04sZ0dBQUEsT0FBTyxPQUFBO0FBQ1Asc0dBQUEsYUFBYSxPQUFBO0FBQ2IscUdBQUEsWUFBWSxPQUFBO0FBQ1osZ0dBQUEsT0FBTyxPQUFBO0FBQ1Asa0dBQUEsU0FBUyxPQUFBO0FBQ1Qsb0dBQUEsV0FBVyxPQUFBO0FBQ1gsZ0dBQUEsT0FBTyxPQUFBO0FBQ1AsaUdBQUEsUUFBUSxPQUFBO0FBQ1IsZ0dBQUEsT0FBTyxPQUFBO0FBQ1Asc0dBQUEsYUFBYSxPQUFBO0FBRWQsbUNBQWdDO0FBQ2hDLHFDQU9rQjtBQU5qQixvR0FBQSxTQUFTLE9BQUE7QUFDVCxrR0FBQSxPQUFPLE9BQUE7QUFDUCxpR0FBQSxNQUFNLE9BQUE7QUFDTixrR0FBQSxPQUFPLE9BQUE7QUFDUCx3R0FBQSxhQUFhLE9BQUE7QUFDYixtR0FBQSxRQUFRLE9BQUE7QUFFVCx5Q0FBa0M7QUFBMUIsbUdBQUEsTUFBTSxPQUFBO0FBQ2QsMkNBQStDO0FBQXZDLGdIQUFBLGtCQUFrQixPQUFBO0FBQzFCLHlDQUF1QztBQUEvQix3R0FBQSxXQUFXLE9BQUE7QUFDbkIseUNBQXNEO0FBQTlDLG9HQUFBLE9BQU8sT0FBQTtBQUFFLG9IQUFBLE9BQU8sT0FBVTtBQUVsQyxrQkFBZSxnQkFBUSxDQUFBIn0=
|
package/cjs/logger.js
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.logJson = void 0;
|
|
4
|
-
const dx_js_1 = require("./dx.js");
|
|
5
|
-
const node_process_1 = require("node:process");
|
|
6
|
-
function logJson(json) {
|
|
7
|
-
console.log(JSON.stringify(json));
|
|
8
|
-
}
|
|
9
|
-
exports.logJson = logJson;
|
|
10
|
-
let requestCount = 0;
|
|
11
|
-
exports.default = (log = logJson) => function logger(next) {
|
|
12
|
-
const res = (0, dx_js_1.getRes)();
|
|
13
|
-
const req = (0, dx_js_1.getReq)();
|
|
14
|
-
const logId = requestCount++;
|
|
15
|
-
const start = node_process_1.hrtime.bigint();
|
|
16
|
-
const now = new Date(Date.now() + 9 * 60 * 60 * 1000); // jst
|
|
17
|
-
log({
|
|
18
|
-
level: 'info',
|
|
19
|
-
id: logId,
|
|
20
|
-
timestamp: [
|
|
21
|
-
[
|
|
22
|
-
now.getUTCFullYear(),
|
|
23
|
-
String(now.getUTCMonth() + 1).padStart(2, '0'),
|
|
24
|
-
String(now.getUTCDate()).padStart(2, '0'),
|
|
25
|
-
].join('-'),
|
|
26
|
-
[
|
|
27
|
-
String(now.getUTCHours()).padStart(2, '0'),
|
|
28
|
-
String(now.getUTCMinutes()).padStart(2, '0'),
|
|
29
|
-
[String(now.getUTCSeconds()).padStart(2, '0'), String(now.getUTCMilliseconds()).padStart(3, '0')].join('.'),
|
|
30
|
-
].join(':'),
|
|
31
|
-
].join('T'),
|
|
32
|
-
remoteAddress: req.socket.remoteAddress,
|
|
33
|
-
method: req.method,
|
|
34
|
-
url: req.url,
|
|
35
|
-
httpVersion: `HTTP/${req.httpVersion}`,
|
|
36
|
-
headers: process.env.NODE_ENV === 'production'
|
|
37
|
-
? req.headers
|
|
38
|
-
: Object.fromEntries(Object.entries(req.headers).filter(([k]) => [
|
|
39
|
-
'host',
|
|
40
|
-
'referer',
|
|
41
|
-
'referrer',
|
|
42
|
-
'user-agent',
|
|
43
|
-
'x-forwarded-proto',
|
|
44
|
-
'x-forwarded-host',
|
|
45
|
-
'x-forwarded-for',
|
|
46
|
-
].includes(k))),
|
|
47
|
-
});
|
|
48
|
-
res.once('finish', end).once('close', end).once('error', end);
|
|
49
|
-
return next();
|
|
50
|
-
function end() {
|
|
51
|
-
res.off('finish', end).off('close', end).off('error', end);
|
|
52
|
-
const durationNs = node_process_1.hrtime.bigint() - start;
|
|
53
|
-
log({
|
|
54
|
-
level: 'info',
|
|
55
|
-
id: logId,
|
|
56
|
-
duration: Number(durationNs) / 1e6, // ms
|
|
57
|
-
headers: res.getHeaders(),
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2xvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBc0M7QUFDdEMsK0NBQW1DO0FBRW5DLFNBQWdCLE9BQU8sQ0FBQyxJQUFTO0lBQ2hDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0FBQ2xDLENBQUM7QUFGRCwwQkFFQztBQUVELElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQTtBQUNwQixrQkFBZSxDQUFDLEdBQUcsR0FBRyxPQUFPLEVBQUUsRUFBRSxDQUFDLFNBQVMsTUFBTSxDQUFDLElBQWU7SUFDaEUsTUFBTSxHQUFHLEdBQUcsSUFBQSxjQUFNLEdBQUUsQ0FBQTtJQUNwQixNQUFNLEdBQUcsR0FBRyxJQUFBLGNBQU0sR0FBRSxDQUFBO0lBQ3BCLE1BQU0sS0FBSyxHQUFHLFlBQVksRUFBRSxDQUFBO0lBRTVCLE1BQU0sS0FBSyxHQUFHLHFCQUFNLENBQUMsTUFBTSxFQUFFLENBQUE7SUFDN0IsTUFBTSxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFBLENBQUMsTUFBTTtJQUU1RCxHQUFHLENBQUM7UUFDSCxLQUFLLEVBQUUsTUFBTTtRQUNiLEVBQUUsRUFBRSxLQUFLO1FBQ1QsU0FBUyxFQUFFO1lBQ1Y7Z0JBQ0MsR0FBRyxDQUFDLGNBQWMsRUFBRTtnQkFDcEIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQztnQkFDOUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDO2FBQ3pDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUNYO2dCQUNDLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQztnQkFDMUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDO2dCQUM1QyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO2FBQzNHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztTQUNYLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUNYLGFBQWEsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLGFBQWE7UUFDdkMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNO1FBQ2xCLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRztRQUNaLFdBQVcsRUFBRSxRQUFRLEdBQUcsQ0FBQyxXQUFXLEVBQUU7UUFDdEMsT0FBTyxFQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxLQUFLLFlBQVk7WUFDcEMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPO1lBQ2IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQ25CLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUMxQztnQkFDQyxNQUFNO2dCQUNOLFNBQVM7Z0JBQ1QsVUFBVTtnQkFDVixZQUFZO2dCQUNaLG1CQUFtQjtnQkFDbkIsa0JBQWtCO2dCQUNsQixpQkFBaUI7YUFDakIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQ2IsQ0FDRDtLQUNILENBQUMsQ0FBQTtJQUVGLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUU3RCxPQUFPLElBQUksRUFBRSxDQUFBO0lBRWIsU0FBUyxHQUFHO1FBQ1gsR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFBO1FBQzFELE1BQU0sVUFBVSxHQUFHLHFCQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFBO1FBQzFDLEdBQUcsQ0FBQztZQUNILEtBQUssRUFBRSxNQUFNO1lBQ2IsRUFBRSxFQUFFLEtBQUs7WUFDVCxRQUFRLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxLQUFLO1lBQ3pDLE9BQU8sRUFBRSxHQUFHLENBQUMsVUFBVSxFQUFFO1NBQ3pCLENBQUMsQ0FBQTtJQUNILENBQUM7QUFDRixDQUFDLENBQUEifQ==
|
package/cjs/package.json
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
if (Promise.withResolvers === undefined)
|
|
4
|
-
Promise.withResolvers = function withResolvers() {
|
|
5
|
-
let resolve = undefined;
|
|
6
|
-
let reject = undefined;
|
|
7
|
-
const promise = new Promise((rs, rj) => {
|
|
8
|
-
resolve = rs;
|
|
9
|
-
reject = rj;
|
|
10
|
-
});
|
|
11
|
-
return {
|
|
12
|
-
resolve,
|
|
13
|
-
reject,
|
|
14
|
-
promise
|
|
15
|
-
};
|
|
16
|
-
};
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9seWZpbGxXaXRoUmVzb2x2ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3BvbHlmaWxsV2l0aFJlc29sdmVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLElBQUksT0FBTyxDQUFDLGFBQWEsS0FBSyxTQUFTO0lBQUUsT0FBTyxDQUFDLGFBQWEsR0FBRyxTQUFTLGFBQWE7UUFDdEYsSUFBSSxPQUFPLEdBQUcsU0FBUyxDQUFBO1FBQ3ZCLElBQUksTUFBTSxHQUFHLFNBQVMsQ0FBQTtRQUN0QixNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtZQUN6QyxPQUFPLEdBQUcsRUFBRSxDQUFBO1lBQ1osTUFBTSxHQUFHLEVBQUUsQ0FBQTtRQUNaLENBQUMsQ0FBQyxDQUFBO1FBQ0YsT0FBTztZQUNOLE9BQU87WUFDUCxNQUFNO1lBQ04sT0FBTztTQUNQLENBQUE7SUFDRixDQUFDLENBQUEifQ==
|
package/cjs/router.js
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.router = void 0;
|
|
4
|
-
const dx_js_1 = require("./dx.js");
|
|
5
|
-
const bodyHelpers_js_1 = require("./bodyHelpers.js");
|
|
6
|
-
// https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods
|
|
7
|
-
const allMethods = [
|
|
8
|
-
'get', 'head', 'post', 'put', 'delete', 'connect', 'options', 'trace', 'patch'
|
|
9
|
-
];
|
|
10
|
-
function makeRouter(method, // undefined means any method
|
|
11
|
-
routes, { prefix = '', ...options } = {}) {
|
|
12
|
-
const routeWithUrlPatterns = routes.map(([pattern, handler]) => [new URLPattern({ pathname: `${prefix}${pattern}` }), handler]);
|
|
13
|
-
return next => {
|
|
14
|
-
const req = (0, dx_js_1.getReq)();
|
|
15
|
-
if (method !== undefined && req.method !== method.toUpperCase())
|
|
16
|
-
return next();
|
|
17
|
-
for (const [urlPattern, handler] of routeWithUrlPatterns) {
|
|
18
|
-
// '' matches nothing
|
|
19
|
-
// '/' matches both https://example.com and https://example.com/
|
|
20
|
-
// '/foo' matches https://example.com/foo but not https://example.com/foo/
|
|
21
|
-
// '/foo/' matches https://example.com/foo/ but not https://example.com/foo
|
|
22
|
-
// path can be '*' for OPTIONS request
|
|
23
|
-
// to test: curl -X OPTIONS --request-target '*' http://localhost:3000 -D -
|
|
24
|
-
// req.url === '*'
|
|
25
|
-
// new URL('*', 'https://example.com').pathname === '/*'
|
|
26
|
-
const matched = urlPattern.exec({ pathname: (0, bodyHelpers_js_1.urlFromReq)(req).pathname });
|
|
27
|
-
if (matched)
|
|
28
|
-
return handler({ matched, next });
|
|
29
|
-
}
|
|
30
|
-
return next();
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
exports.router = {
|
|
34
|
-
method(method, ...params) {
|
|
35
|
-
return typeof params[0] === 'string'
|
|
36
|
-
? makeRouter(method, [[params[0], params[1]]], params[2])
|
|
37
|
-
: makeRouter(method, Object.entries(params[0]), params[1]);
|
|
38
|
-
},
|
|
39
|
-
all(...params) {
|
|
40
|
-
return typeof params[0] === 'string'
|
|
41
|
-
? makeRouter(undefined, [[params[0], params[1]]], params[2])
|
|
42
|
-
: makeRouter(undefined, Object.entries(params[0]), params[1]);
|
|
43
|
-
}
|
|
44
|
-
};
|
|
45
|
-
for (const method of allMethods)
|
|
46
|
-
exports.router[method] = exports.router.method.bind(exports.router, method);
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3JvdXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBOEM7QUFDOUMscURBQTJDO0FBa0IzQyw0REFBNEQ7QUFDNUQsTUFBTSxVQUFVLEdBQUc7SUFDbEIsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxPQUFPO0NBQ3JFLENBQUE7QUErQlYsU0FBUyxVQUFVLENBQ2xCLE1BQTBCLEVBQUUsNkJBQTZCO0FBQ3pELE1BQXlDLEVBQ3pDLEVBQUMsTUFBTSxHQUFHLEVBQUUsRUFBRSxHQUFHLE9BQU8sS0FBbUIsRUFBRTtJQUU3QyxNQUFNLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxFQUFDLFFBQVEsRUFBRSxHQUFHLE1BQU0sR0FBRyxPQUFPLEVBQUUsRUFBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQTtJQUM3SCxPQUFPLElBQUksQ0FBQyxFQUFFO1FBQ2IsTUFBTSxHQUFHLEdBQUcsSUFBQSxjQUFNLEdBQUUsQ0FBQTtRQUNwQixJQUFJLE1BQU0sS0FBSyxTQUFTLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsV0FBVyxFQUFFO1lBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQTtRQUM5RSxLQUFLLE1BQU0sQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLElBQUksb0JBQW9CLEVBQUUsQ0FBQztZQUM3RCxxQkFBcUI7WUFDckIsZ0VBQWdFO1lBQ2hFLDBFQUEwRTtZQUMxRSwyRUFBMkU7WUFFeEUsc0NBQXNDO1lBQ3RDLDJFQUEyRTtZQUMzRSxrQkFBa0I7WUFDbEIsd0RBQXdEO1lBQ3hELE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBQyxRQUFRLEVBQUUsSUFBQSwyQkFBVSxFQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBQyxDQUFDLENBQUE7WUFDckUsSUFBSSxPQUFPO2dCQUFFLE9BQU8sT0FBTyxDQUFDLEVBQUMsT0FBTyxFQUFFLElBQUksRUFBQyxDQUFDLENBQUE7UUFDN0MsQ0FBQztRQUNELE9BQU8sSUFBSSxFQUFFLENBQUE7SUFDZCxDQUFDLENBQUE7QUFDRixDQUFDO0FBQ1ksUUFBQSxNQUFNLEdBQVc7SUFDN0IsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLE1BQU07UUFDdkIsT0FBTyxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRO1lBQ25DLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekQsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUM1RCxDQUFDO0lBQ0QsR0FBRyxDQUFDLEdBQUcsTUFBTTtRQUNaLE9BQU8sT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUTtZQUNuQyxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVELENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDL0QsQ0FBQztDQUNELENBQUE7QUFFRCxLQUFLLE1BQU0sTUFBTSxJQUFJLFVBQVU7SUFBRSxjQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsY0FBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBTSxFQUFFLE1BQU0sQ0FBQyxDQUFBIn0=
|
package/cjs/static.js
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.chainStatic = void 0;
|
|
4
|
-
const dx_js_1 = require("./dx.js");
|
|
5
|
-
const staticHelpers_js_1 = require("./staticHelpers.js");
|
|
6
|
-
const bodyHelpers_js_1 = require("./bodyHelpers.js");
|
|
7
|
-
function chainStatic(pattern, { getPathname, ...options }) {
|
|
8
|
-
const urlPattern = new URLPattern({ pathname: pattern });
|
|
9
|
-
return async (next) => {
|
|
10
|
-
const req = (0, dx_js_1.getReq)();
|
|
11
|
-
if (req.method !== 'GET' && req.method !== 'HEAD')
|
|
12
|
-
return next();
|
|
13
|
-
const { pathname } = (0, bodyHelpers_js_1.urlFromReq)(req);
|
|
14
|
-
const matched = urlPattern.exec({ pathname });
|
|
15
|
-
if (!matched)
|
|
16
|
-
return next();
|
|
17
|
-
try {
|
|
18
|
-
await (0, staticHelpers_js_1.sendFileTrusted)(req, (0, dx_js_1.getRes)(), getPathname?.(matched)
|
|
19
|
-
?? decodeURIComponent(pathname), options);
|
|
20
|
-
}
|
|
21
|
-
catch (e) {
|
|
22
|
-
return next(e); // if request's pathname matches pattern, but file is not found, next() will be called with error
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
exports.chainStatic = chainStatic;
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGljLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3N0YXRpYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBc0Q7QUFDdEQseURBQXdFO0FBQ3hFLHFEQUEyQztBQUUzQyxTQUFnQixXQUFXLENBQzFCLE9BQWUsRUFDZixFQUFDLFdBQVcsRUFBRSxHQUFHLE9BQU8sRUFJdkI7SUFFRCxNQUFNLFVBQVUsR0FBRyxJQUFJLFVBQVUsQ0FBQyxFQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUMsQ0FBQyxDQUFBO0lBQ3RELE9BQU8sS0FBSyxFQUFDLElBQUksRUFBQyxFQUFFO1FBQ25CLE1BQU0sR0FBRyxHQUFHLElBQUEsY0FBTSxHQUFFLENBQUE7UUFDcEIsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLEtBQUssSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLE1BQU07WUFBRSxPQUFPLElBQUksRUFBRSxDQUFBO1FBRWhFLE1BQU0sRUFBQyxRQUFRLEVBQUMsR0FBRyxJQUFBLDJCQUFVLEVBQUMsR0FBRyxDQUFDLENBQUE7UUFDbEMsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFDLFFBQVEsRUFBQyxDQUFDLENBQUE7UUFDM0MsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPLElBQUksRUFBRSxDQUFBO1FBRTNCLElBQUksQ0FBQztZQUNKLE1BQU0sSUFBQSxrQ0FBZSxFQUNwQixHQUFHLEVBQ0gsSUFBQSxjQUFNLEdBQUUsRUFDUCxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUM7bUJBQ3BCLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxFQUMvQixPQUFPLENBQ1AsQ0FBQTtRQUNGLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1osT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxpR0FBaUc7UUFDakgsQ0FBQztJQUNGLENBQUMsQ0FBQTtBQUNGLENBQUM7QUE3QkQsa0NBNkJDIn0=
|