MCPcopy Create free account
hub / github.com/solidjs/solid-start / extractBody

Function extractBody

packages/start/src/fns/shared.ts:84–116  ·  view source on GitHub ↗
(instance: string, client: boolean, source: Request | Response)

Source from the content-addressed store, hash-verified

82}
83
84export async function extractBody(instance: string, client: boolean, source: Request | Response) {
85 const contentType = source.headers.get("content-type");
86 const startType = source.headers.get(BODY_FORMAT_KEY);
87 const clone = source.clone();
88
89 switch (true) {
90 case startType === BodyFormat.Seroval:
91 if (client && import.meta.env.SEROVAL_MODE === "js") {
92 return await deserializeJSStream(instance, clone);
93 }
94 return await deserializeJSONStream(clone);
95 case startType === BodyFormat.String:
96 return await clone.text();
97 case startType === BodyFormat.File: {
98 const formData = await clone.formData();
99 return formData.get(BODY_FORMAL_FILE);
100 }
101 case startType === BodyFormat.FormData:
102 case contentType?.startsWith("multipart/form-data"):
103 return await clone.formData();
104 case startType === BodyFormat.URLSearchParams:
105 case contentType?.startsWith("application/x-www-form-urlencoded"):
106 return new URLSearchParams(await clone.text());
107 case startType === BodyFormat.Blob:
108 return await clone.blob();
109 case startType === BodyFormat.ArrayBuffer:
110 return await clone.arrayBuffer();
111 case startType === BodyFormat.Uint8Array:
112 return new Uint8Array(await clone.arrayBuffer());
113 }
114
115 return undefined;
116}

Callers 2

fetchServerFunctionFunction · 0.90
handleServerFunctionFunction · 0.90

Calls 2

deserializeJSStreamFunction · 0.90
deserializeJSONStreamFunction · 0.90

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…