MCPcopy Create free account
hub / github.com/Fibi66/FeiControl / tryServeStaticAsset

Function tryServeStaticAsset

scripts/dev-server.cjs:165–208  ·  view source on GitHub ↗
(request, response, distDir)

Source from the content-addressed store, hash-verified

163}
164
165function tryServeStaticAsset(request, response, distDir) {
166 const requestUrl = request.url || '/';
167 const pathname = decodeURIComponent(requestUrl.split('?')[0]);
168 const prefix = '/_next/static/';
169
170 if (!pathname.startsWith(prefix)) {
171 return false;
172 }
173
174 const staticRoot = path.join(process.cwd(), distDir, 'static');
175 const relativePath = pathname.slice(prefix.length);
176 const filePath = path.join(staticRoot, relativePath);
177
178 if (!filePath.startsWith(staticRoot + path.sep)) {
179 response.statusCode = 403;
180 setNoStoreHeaders(response);
181 response.end('Forbidden');
182 return true;
183 }
184
185 let stat;
186 try {
187 stat = statSync(filePath);
188 } catch {
189 return false;
190 }
191
192 if (!stat.isFile()) {
193 return false;
194 }
195
196 response.statusCode = 200;
197 response.setHeader('Content-Type', getContentType(filePath));
198 response.setHeader('Content-Length', stat.size);
199 setNoStoreHeaders(response);
200
201 if (request.method === 'HEAD') {
202 response.end();
203 return true;
204 }
205
206 createReadStream(filePath).pipe(response);
207 return true;
208}
209
210function proxyToInternal(request, response, host, port) {
211 const proxyRequest = http.request(

Callers 1

mainFunction · 0.85

Calls 2

setNoStoreHeadersFunction · 0.85
getContentTypeFunction · 0.85

Tested by

no test coverage detected