minimalistic-server 0.0.55 → 0.0.57
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/index.mjs +34 -12
- package/package.json +1 -1
package/index.mjs
CHANGED
|
@@ -1630,9 +1630,11 @@ export class Response {
|
|
|
1630
1630
|
cookieStrings.push(cookieString);
|
|
1631
1631
|
}
|
|
1632
1632
|
|
|
1633
|
-
|
|
1634
|
-
|
|
1635
|
-
|
|
1633
|
+
if (cookieStrings.length) {
|
|
1634
|
+
headers = {
|
|
1635
|
+
...headers,
|
|
1636
|
+
'Set-Cookie': cookieStrings,
|
|
1637
|
+
}
|
|
1636
1638
|
}
|
|
1637
1639
|
}
|
|
1638
1640
|
|
|
@@ -1699,6 +1701,7 @@ export class FileResponse extends Response {
|
|
|
1699
1701
|
#urlPathForDirectory = null;
|
|
1700
1702
|
|
|
1701
1703
|
#blocked = false;
|
|
1704
|
+
#proxiedResponse = null;
|
|
1702
1705
|
|
|
1703
1706
|
constructor(filePath, code = 200, contentType = null, cookies = null) {
|
|
1704
1707
|
super();
|
|
@@ -1709,6 +1712,10 @@ export class FileResponse extends Response {
|
|
|
1709
1712
|
}
|
|
1710
1713
|
|
|
1711
1714
|
async getCode(headers = null) {
|
|
1715
|
+
if (this.#proxiedResponse) {
|
|
1716
|
+
return await this.#proxiedResponse.code(headers);
|
|
1717
|
+
}
|
|
1718
|
+
|
|
1712
1719
|
const requestedFragment = await this.#getFragmentRequest(headers);
|
|
1713
1720
|
const data = await this.#retreiveData();
|
|
1714
1721
|
|
|
@@ -1720,6 +1727,11 @@ export class FileResponse extends Response {
|
|
|
1720
1727
|
}
|
|
1721
1728
|
|
|
1722
1729
|
async getHeaders(headers = null) {
|
|
1730
|
+
if (this.#proxiedResponse) {
|
|
1731
|
+
const resultingHeaders = await this.#proxiedResponse.getHeaders(headers);
|
|
1732
|
+
return this.getMergedWithOtherHeaders(resultingHeaders);
|
|
1733
|
+
}
|
|
1734
|
+
|
|
1723
1735
|
const requestedFragment = await this.#getFragmentRequest(headers);
|
|
1724
1736
|
const data = await this.#retreiveData();
|
|
1725
1737
|
|
|
@@ -1744,6 +1756,10 @@ export class FileResponse extends Response {
|
|
|
1744
1756
|
}
|
|
1745
1757
|
|
|
1746
1758
|
async getBody(headers = null) {
|
|
1759
|
+
if (this.#proxiedResponse) {
|
|
1760
|
+
return await this.#proxiedResponse.getBody(headers);
|
|
1761
|
+
}
|
|
1762
|
+
|
|
1747
1763
|
const requestedFragment = await this.#getFragmentRequest(headers);
|
|
1748
1764
|
const data = await this.#retreiveData();
|
|
1749
1765
|
|
|
@@ -1754,23 +1770,29 @@ export class FileResponse extends Response {
|
|
|
1754
1770
|
return data.body;
|
|
1755
1771
|
}
|
|
1756
1772
|
|
|
1773
|
+
getProxy() {
|
|
1774
|
+
const proxy = new FileResponse(this.#filePath, this.#code, this.#contentType, this.getCookies());
|
|
1775
|
+
proxy.#proxiedResponse = this;
|
|
1776
|
+
return proxy;
|
|
1777
|
+
}
|
|
1778
|
+
|
|
1757
1779
|
getFilePath() {
|
|
1758
1780
|
return this.#filePath;
|
|
1759
1781
|
}
|
|
1760
1782
|
|
|
1761
1783
|
setFilePath(filePath) {
|
|
1762
1784
|
this.#filePath = filePath;
|
|
1763
|
-
this.#dataPromise = null;
|
|
1785
|
+
this.#dataPromise = this.#proxiedResponse = null;
|
|
1764
1786
|
}
|
|
1765
1787
|
|
|
1766
1788
|
setNotFoundErrorCustomResponseHandler(handler) {
|
|
1767
1789
|
this.#makeNotFoundResponse = handler;
|
|
1768
|
-
this.#dataPromise = null;
|
|
1790
|
+
this.#dataPromise = this.#proxiedResponse = null;
|
|
1769
1791
|
}
|
|
1770
1792
|
|
|
1771
1793
|
setUrlPathForDirectory(urlPathForDirectory) {
|
|
1772
1794
|
this.#urlPathForDirectory = urlPathForDirectory;
|
|
1773
|
-
this.#dataPromise = null;
|
|
1795
|
+
this.#dataPromise = this.#proxiedResponse = null;
|
|
1774
1796
|
}
|
|
1775
1797
|
|
|
1776
1798
|
#isStreamableFileFormat(isDirectory = false) {
|
|
@@ -1979,7 +2001,7 @@ ${urlPath ? `<a href="/${parentUrlPath}">Up</a><hr>` : ''}
|
|
|
1979
2001
|
|
|
1980
2002
|
block() {
|
|
1981
2003
|
this.#blocked = true;
|
|
1982
|
-
this.#dataPromise = null;
|
|
2004
|
+
this.#dataPromise = this.#proxiedResponse = null;
|
|
1983
2005
|
}
|
|
1984
2006
|
|
|
1985
2007
|
isBlocked() {
|
|
@@ -2306,13 +2328,13 @@ function normalizeRoutes(routes, handleServerError) {
|
|
|
2306
2328
|
flattenRecursively(root[prop], newPath, preMiddlewares, postMiddlewares);
|
|
2307
2329
|
}
|
|
2308
2330
|
} else if (typeof root === 'function') {
|
|
2309
|
-
flatten
|
|
2331
|
+
setObjectProperty(flatten, path, wrapInMiddlewares(root, preMiddlewares, postMiddlewares, handleServerError));
|
|
2310
2332
|
}
|
|
2311
2333
|
}
|
|
2312
2334
|
|
|
2313
2335
|
flattenRecursively(routes);
|
|
2314
2336
|
|
|
2315
|
-
const result =
|
|
2337
|
+
const result = Object.create(null);
|
|
2316
2338
|
|
|
2317
2339
|
for (const route in flatten) {
|
|
2318
2340
|
const split = route.split('/').filter(x => x);
|
|
@@ -2328,13 +2350,13 @@ function normalizeRoutes(routes, handleServerError) {
|
|
|
2328
2350
|
|
|
2329
2351
|
for (const fragment of split) {
|
|
2330
2352
|
if (!parent[fragment]) {
|
|
2331
|
-
parent
|
|
2353
|
+
setObjectProperty(parent, fragment, Object.create(null));
|
|
2332
2354
|
}
|
|
2333
2355
|
|
|
2334
2356
|
parent = parent[fragment];
|
|
2335
2357
|
}
|
|
2336
2358
|
|
|
2337
|
-
parent
|
|
2359
|
+
setObjectProperty(parent, `/${method}/`, flatten[route]);
|
|
2338
2360
|
}
|
|
2339
2361
|
|
|
2340
2362
|
return result;
|
|
@@ -2443,7 +2465,7 @@ async function handleRequest(req, routes, staticFileDirectories, handleNotFoundE
|
|
|
2443
2465
|
}
|
|
2444
2466
|
}
|
|
2445
2467
|
|
|
2446
|
-
return resp;
|
|
2468
|
+
return resp.getProxy();
|
|
2447
2469
|
};
|
|
2448
2470
|
|
|
2449
2471
|
routeHandler = wrapInMiddlewares(routeHandler, staticFileOrDirectory.preMiddlewares, staticFileOrDirectory.postMiddlewares);
|