MCPcopy Create free account
hub / github.com/BCsabaEngine/svelteesp32 / genWebserverCpp

Function genWebserverCpp

src/cppCodeWebserver.ts:69–135  ·  view source on GitHub ↗
(d: TemplateData)

Source from the content-addressed store, hash-verified

67};
68
69export const genWebserverCpp = (d: TemplateData): string => {
70 const lines: string[] = [
71 `//engine: Arduino WebServer`,
72 `//config: ${d.config}`,
73 ...(d.created ? [`//created: ${d.now}`] : []),
74 '//',
75 genCommonHeader(d),
76 '//',
77 '#include <Arduino.h>',
78 '#include <WebServer.h>',
79 '//',
80 genDataArrays(d, true),
81 '//',
82 genEtagArrays(d),
83 '//',
84 genManifest(d),
85 '//',
86 genHook(d),
87 '//',
88 `// Chunked send helper for PROGMEM data`,
89 `static inline void ${d.definePrefix}_sendChunked(WebServer * server, const uint8_t * data, size_t len) {`,
90 ` const size_t chunkSize = 4096;`,
91 ` for (size_t offset = 0; offset < len; offset += chunkSize) {`,
92 ` size_t remaining = len - offset;`,
93 ` size_t toSend = remaining < chunkSize ? remaining : chunkSize;`,
94 ` server->sendContent_P((const char *)(data + offset), toSend);`,
95 ` }`,
96 `}`,
97 '//',
98 '// Http Handlers',
99 `void ${d.methodName}(WebServer * server) {`
100 ];
101 for (const source of d.sources) {
102 const path = `${d.basePath}/${source.filename}`;
103 const defaultPath = d.basePath || '/';
104 lines.push(
105 '//',
106 `// ${source.filename}`,
107 ` server->on("${path}", HTTP_GET, [server]() {`,
108 genWebserverHandlerBody(d, source, path),
109 ` });`
110 );
111 if (source.isDefault)
112 lines.push(
113 ` server->on("${defaultPath}", HTTP_GET, [server]() {`,
114 genWebserverHandlerBody(d, source, defaultPath),
115 ` });`
116 );
117 }
118 if (d.spa && d.spaSource) {
119 const source = d.spaSource;
120 const path = `${d.basePath}/${source.filename}`;
121 lines.push(
122 '//',
123 `// SPA catch-all: unmatched routes serve ${source.filename}`,
124 ` server->onNotFound([server]() {`,
125 ` if (server->method() != HTTP_GET) { server->send(404, "text/plain", "Not found"); return; }`
126 );

Callers

nothing calls this directly

Calls 6

genCommonHeaderFunction · 0.90
genDataArraysFunction · 0.90
genEtagArraysFunction · 0.90
genManifestFunction · 0.90
genHookFunction · 0.90
genWebserverHandlerBodyFunction · 0.85

Tested by

no test coverage detected