minimalistic-server 0.0.50 → 0.0.52

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 (2) hide show
  1. package/index.mjs +29 -8
  2. package/package.json +1 -1
package/index.mjs CHANGED
@@ -9,6 +9,19 @@ const keepAliveTimeout = 20000;
9
9
 
10
10
  let currentFsPromiseModule = fs;
11
11
 
12
+ function setObjectProperty(object, name, value, enumerable = true, writable = true, configurable = true) {
13
+ Object.defineProperty(
14
+ object,
15
+ name,
16
+ {
17
+ value,
18
+ enumerable,
19
+ writable,
20
+ configurable,
21
+ },
22
+ )
23
+ }
24
+
12
25
  function safePrint(data, isError = false) {
13
26
  try {
14
27
  if (isError) {
@@ -741,6 +754,14 @@ export function setServerFsPromiseModule(fsPromiseModule) {
741
754
  clearStaticCache();
742
755
  }
743
756
 
757
+ export function getExtension(fileNameOrPath) {
758
+ return fileNameOrPath?.toLowerCase().split('.').at(-1) ?? '';
759
+ }
760
+
761
+ export function getContentTypeByExtension(fileNameOrPath) {
762
+ return mimeTypes[getExtension(fileNameOrPath)] ?? 'application/octet-stream';
763
+ }
764
+
744
765
  export class UploadedFile {
745
766
  #content;
746
767
  #contentType;
@@ -761,11 +782,11 @@ export class UploadedFile {
761
782
  }
762
783
 
763
784
  getExtension() {
764
- return this.#fileName?.toLowerCase().split('.').at(-1) ?? '';
785
+ return getExtension(this.#fileName);
765
786
  }
766
787
 
767
788
  getContentTypeByExtension() {
768
- return mimeTypes[this.getExtension()] ?? 'application/octet-stream';
789
+ return getContentTypeByExtension(this.#fileName);
769
790
  }
770
791
 
771
792
  getFileName() {
@@ -806,13 +827,13 @@ export class Request {
806
827
  this.#method = request.method.toUpperCase();
807
828
 
808
829
  for (const k in request.headers) {
809
- Object.defineProperty(this.#headers, k.toLowerCase(), { value: request.headers[k] });
830
+ setObjectProperty(this.#headers, k.toLowerCase(), request.headers[k]);
810
831
  }
811
832
 
812
833
  this.#path = url.pathname.split('/').filter(x => x).join('/');
813
834
 
814
835
  url.searchParams.forEach((v, k) => {
815
- Object.defineProperty(this.#queryParams, k, { value: v });
836
+ setObjectProperty(this.#queryParams, k, v);
816
837
  });
817
838
  }
818
839
 
@@ -990,7 +1011,7 @@ export class Request {
990
1011
  parent[index] = nextParent;
991
1012
  }
992
1013
  } else if (!(parent instanceof Array) && !curFragment.match(/^-?\d+$/gm)) {
993
- Object.defineProperty(parent, curFragment, { value: nextFragment });
1014
+ setObjectProperty(parent, curFragment, nextFragment);
994
1015
  } else {
995
1016
  break;
996
1017
  }
@@ -1092,7 +1113,7 @@ export class Request {
1092
1113
  }
1093
1114
 
1094
1115
  if (name in data && !Array.isArray(data[name])) {
1095
- Object.defineProperty(data, name, { value: [data[name]] });
1116
+ setObjectProperty(data, name, [data[name]]);
1096
1117
  }
1097
1118
 
1098
1119
  if (Array.isArray(data[name])) {
@@ -1101,7 +1122,7 @@ export class Request {
1101
1122
  }
1102
1123
 
1103
1124
  } else {
1104
- Object.defineProperty(data, name, { value });
1125
+ setObjectProperty(data, name, value);
1105
1126
  }
1106
1127
  }
1107
1128
 
@@ -2368,7 +2389,7 @@ async function handleRequest(req, routes, staticFileDirectories, handleNotFoundE
2368
2389
  if (!newRouteHandler) {
2369
2390
  for (let k in routeHandler) {
2370
2391
  if (k.match(/^{\w+}$/gm)) {
2371
- Object.defineProperty(pathParams, k.replace(/[{}]/gm, ''), { value: decodeURIComponent(fragment) });
2392
+ setObjectProperty(pathParams, k.replace(/[{}]/gm, ''), decodeURIComponent(fragment));
2372
2393
  newRouteHandler = routeHandler[k];
2373
2394
  break;
2374
2395
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "minimalistic-server",
3
- "version": "0.0.50",
3
+ "version": "0.0.52",
4
4
  "engines" : {
5
5
  "npm" : ">=8.6.0",
6
6
  "node" : ">=22.0.0"