svelteesp32 1.7.1 → 1.8.1
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 +4 -2
- package/dist/cppCode.js +16 -16
- package/package.json +10 -10
package/README.md
CHANGED
|
@@ -10,7 +10,9 @@ I often make small to medium-sized microcontroller solutions that run on ESP32 o
|
|
|
10
10
|
|
|
11
11
|
In order to be able to easily update OTA, it is important - from the users' point of view - that the update file **consists of one file**. I can't use the SPIFFS/LittleFS solution for this. It is necessary that the WebUI files are included inline in the Arduino or PlatformIO c++ code.
|
|
12
12
|
|
|
13
|
-
This npm package provides a solution for **inserting any JS client application into the ESP web server** (PsychicHttp and also ESPAsyncWebServer available, PsychicHttp is the default). For this, JS, html, css, font, assets, etc. files must be converted to binary byte array. Npm mode is easy to use and easy to **integrate into your CI/CD pipeline**.
|
|
13
|
+
This npm package provides a solution for **inserting any JS client application into the ESP web server** (PsychicHttp and also ESPAsyncWebServer (https://github.com/ESP32Async/ESPAsyncWebServer) available, PsychicHttp is the default). For this, JS, html, css, font, assets, etc. files must be converted to binary byte array. Npm mode is easy to use and easy to **integrate into your CI/CD pipeline**.
|
|
14
|
+
|
|
15
|
+
> Starting with version v1.8.0, use the new and maintained ESPAsyncWebserver available at https://github.com/ESP32Async/ESPAsyncWebServer
|
|
14
16
|
|
|
15
17
|
> Starting with version v1.7.0, with the cachetime command line option, you can set whether the browser can cache pages
|
|
16
18
|
|
|
@@ -154,7 +156,7 @@ void initSvelteStaticFiles(PsychicHttpServer * server) {
|
|
|
154
156
|
|
|
155
157
|
### Engines and ESP variants
|
|
156
158
|
|
|
157
|
-
ESPAsyncWebServer is a popular web server
|
|
159
|
+
ESPAsyncWebServer (current location https://github.com/ESP32Async/ESPAsyncWebServer) is a popular web server. When you want to generate a file for this, use the `-e async` switch.
|
|
158
160
|
|
|
159
161
|
If you **only work on ESP32**, I recommend using PsychicHttpServer, which uses the native mode ESP-IDF web server inside. This way, its operation is significantly faster and more continuous. You can access this mode with the `-e psychic` switch.
|
|
160
162
|
|
package/dist/cppCode.js
CHANGED
|
@@ -152,20 +152,20 @@ void {{methodName}}(PsychicHttpServer * server) {
|
|
|
152
152
|
{{#switch ../etag}}
|
|
153
153
|
{{#case "true"}}
|
|
154
154
|
{{#../cacheTime}}
|
|
155
|
-
response.addHeader("
|
|
155
|
+
response.addHeader("Cache-Control", "max-age={{value}}");
|
|
156
156
|
{{/../cacheTime}}
|
|
157
157
|
{{^../cacheTime}}
|
|
158
|
-
response.addHeader("
|
|
158
|
+
response.addHeader("Cache-Control", "no-cache");
|
|
159
159
|
{{/../cacheTime}}
|
|
160
160
|
response.addHeader("ETag", etag_{{this.dataname}});
|
|
161
161
|
{{/case}}
|
|
162
162
|
{{#case "compiler"}}
|
|
163
163
|
#ifdef {{../definePrefix}}_ENABLE_ETAG
|
|
164
164
|
{{#../cacheTime}}
|
|
165
|
-
response.addHeader("
|
|
165
|
+
response.addHeader("Cache-Control", "max-age={{value}}");
|
|
166
166
|
{{/../cacheTime}}
|
|
167
167
|
{{^../cacheTime}}
|
|
168
|
-
response.addHeader("
|
|
168
|
+
response.addHeader("Cache-Control", "no-cache");
|
|
169
169
|
{{/../cacheTime}}
|
|
170
170
|
response.addHeader("ETag", etag_{{this.dataname}});
|
|
171
171
|
#endif
|
|
@@ -338,20 +338,20 @@ void {{methodName}}(PsychicHttpServer * server) {
|
|
|
338
338
|
{{#switch ../etag}}
|
|
339
339
|
{{#case "true"}}
|
|
340
340
|
{{#../cacheTime}}
|
|
341
|
-
response->addHeader("
|
|
341
|
+
response->addHeader("Cache-Control", "max-age={{value}}");
|
|
342
342
|
{{/../cacheTime}}
|
|
343
343
|
{{^../cacheTime}}
|
|
344
|
-
response->addHeader("
|
|
344
|
+
response->addHeader("Cache-Control", "no-cache");
|
|
345
345
|
{{/../cacheTime}}
|
|
346
346
|
response->addHeader("ETag", etag_{{this.dataname}});
|
|
347
347
|
{{/case}}
|
|
348
348
|
{{#case "compiler"}}
|
|
349
349
|
#ifdef {{../definePrefix}}_ENABLE_ETAG
|
|
350
350
|
{{#../cacheTime}}
|
|
351
|
-
response->addHeader("
|
|
351
|
+
response->addHeader("Cache-Control", "max-age={{value}}");
|
|
352
352
|
{{/../cacheTime}}
|
|
353
353
|
{{^../cacheTime}}
|
|
354
|
-
response->addHeader("
|
|
354
|
+
response->addHeader("Cache-Control", "no-cache");
|
|
355
355
|
{{/../cacheTime}}
|
|
356
356
|
response->addHeader("ETag", etag_{{this.dataname}});
|
|
357
357
|
#endif
|
|
@@ -505,22 +505,22 @@ void {{methodName}}(AsyncWebServer * server) {
|
|
|
505
505
|
|
|
506
506
|
{{#switch ../gzip}}
|
|
507
507
|
{{#case "true"}}
|
|
508
|
-
AsyncWebServerResponse *response = request->
|
|
508
|
+
AsyncWebServerResponse *response = request->beginResponse(200, "{{this.mime}}", datagzip_{{this.dataname}}, {{this.lengthGzip}});
|
|
509
509
|
{{#if this.isGzip}}
|
|
510
510
|
response->addHeader("Content-Encoding", "gzip");
|
|
511
511
|
{{/if}}
|
|
512
512
|
{{/case}}
|
|
513
513
|
{{#case "false"}}
|
|
514
|
-
AsyncWebServerResponse *response = request->
|
|
514
|
+
AsyncWebServerResponse *response = request->beginResponse(200, "{{this.mime}}", data_{{this.dataname}}, {{this.length}});
|
|
515
515
|
{{/case}}
|
|
516
516
|
{{#case "compiler"}}
|
|
517
517
|
#ifdef {{../definePrefix}}_ENABLE_GZIP
|
|
518
|
-
AsyncWebServerResponse *response = request->
|
|
518
|
+
AsyncWebServerResponse *response = request->beginResponse(200, "{{this.mime}}", datagzip_{{this.dataname}}, {{this.lengthGzip}});
|
|
519
519
|
{{#if this.isGzip}}
|
|
520
520
|
response->addHeader("Content-Encoding", "gzip");
|
|
521
521
|
{{/if}}
|
|
522
522
|
#else
|
|
523
|
-
AsyncWebServerResponse *response = request->
|
|
523
|
+
AsyncWebServerResponse *response = request->beginResponse(200, "{{this.mime}}", data_{{this.dataname}}, {{this.length}});
|
|
524
524
|
#endif
|
|
525
525
|
{{/case}}
|
|
526
526
|
{{/switch}}
|
|
@@ -528,20 +528,20 @@ void {{methodName}}(AsyncWebServer * server) {
|
|
|
528
528
|
{{#switch ../etag}}
|
|
529
529
|
{{#case "true"}}
|
|
530
530
|
{{#../cacheTime}}
|
|
531
|
-
response->addHeader("
|
|
531
|
+
response->addHeader("Cache-Control", "max-age={{value}}");
|
|
532
532
|
{{/../cacheTime}}
|
|
533
533
|
{{^../cacheTime}}
|
|
534
|
-
response->addHeader("
|
|
534
|
+
response->addHeader("Cache-Control", "no-cache");
|
|
535
535
|
{{/../cacheTime}}
|
|
536
536
|
response->addHeader("ETag", etag_{{this.dataname}});
|
|
537
537
|
{{/case}}
|
|
538
538
|
{{#case "compiler"}}
|
|
539
539
|
#ifdef {{../definePrefix}}_ENABLE_ETAG
|
|
540
540
|
{{#../cacheTime}}
|
|
541
|
-
response->addHeader("
|
|
541
|
+
response->addHeader("Cache-Control", "max-age={{value}}");
|
|
542
542
|
{{/../cacheTime}}
|
|
543
543
|
{{^../cacheTime}}
|
|
544
|
-
response->addHeader("
|
|
544
|
+
response->addHeader("Cache-Control", "no-cache");
|
|
545
545
|
{{/../cacheTime}}
|
|
546
546
|
response->addHeader("ETag", etag_{{this.dataname}});
|
|
547
547
|
#endif
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "svelteesp32",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.8.1",
|
|
4
4
|
"description": "Convert Svelte (or any frontend) JS application to serve it from ESP32 webserver (PsychicHttp)",
|
|
5
5
|
"author": "BCsabaEngine",
|
|
6
6
|
"license": "ISC",
|
|
@@ -55,18 +55,18 @@
|
|
|
55
55
|
],
|
|
56
56
|
"devDependencies": {
|
|
57
57
|
"@types/mime-types": "^2.1.4",
|
|
58
|
-
"@types/node": "^22.
|
|
59
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
60
|
-
"@typescript-eslint/parser": "^8.
|
|
61
|
-
"eslint": "^9.
|
|
62
|
-
"eslint-config-prettier": "^10.
|
|
58
|
+
"@types/node": "^22.13.10",
|
|
59
|
+
"@typescript-eslint/eslint-plugin": "^8.26.0",
|
|
60
|
+
"@typescript-eslint/parser": "^8.26.0",
|
|
61
|
+
"eslint": "^9.22.0",
|
|
62
|
+
"eslint-config-prettier": "^10.1.1",
|
|
63
63
|
"eslint-plugin-simple-import-sort": "^12.1.1",
|
|
64
|
-
"eslint-plugin-unicorn": "^
|
|
64
|
+
"eslint-plugin-unicorn": "^57.0.0",
|
|
65
65
|
"nodemon": "^3.1.9",
|
|
66
|
-
"prettier": "^3.
|
|
66
|
+
"prettier": "^3.5.3",
|
|
67
67
|
"ts-node": "^10.9.2",
|
|
68
|
-
"tsx": "^4.19.
|
|
69
|
-
"typescript": "^5.
|
|
68
|
+
"tsx": "^4.19.3",
|
|
69
|
+
"typescript": "^5.8.2"
|
|
70
70
|
},
|
|
71
71
|
"dependencies": {
|
|
72
72
|
"glob": "^11.0.1",
|