MCPcopy
hub / github.com/AndrewWalsh/openapi-devtools / createLeaf

Function createLeaf

src/lib/store-helpers/create-leaf.ts:32–76  ·  view source on GitHub ↗
({ harRequest, responseBody, options }: Params)

Source from the content-addressed store, hash-verified

30};
31
32function createLeaf({ harRequest, responseBody, options }: Params): Leaf {
33 const { enableMoreInfo } = options;
34 const authentication = determineAuthFromHAR(harRequest);
35 harRequest.request.headers = filterIgnoreHeaders(harRequest.request.headers);
36 harRequest.response.headers = filterIgnoreHeaders(
37 harRequest.response.headers,
38 );
39 const method = harRequest.request.method;
40 const statusCode = harRequest.response.status.toString();
41 const requestMime = harRequest.request.postData?.mimeType;
42 const responseMime = harRequest.response.content.mimeType;
43 const requestBody = parseRequestBody(harRequest);
44 const requestHeaders = entriesToJSONType(harRequest.request.headers);
45 const responseHeaders = entriesToJSONType(harRequest.response.headers);
46 const queryParameters = entriesToJSONType(harRequest.request.queryString);
47 const pathname = decodeUriComponent(new URL(harRequest.request.url).pathname);
48 const leafPart: Leaf = {
49 ...(authentication && { authentication }),
50 pathname,
51 methods: {
52 [method]: {
53 ...(requestMime && {
54 request: {
55 [requestMime]: {
56 body: createSchemaElseUndefined(requestBody),
57 ...(enableMoreInfo && { mostRecent: requestBody }),
58 },
59 },
60 }),
61 requestHeaders: createSchemaElseUndefined(requestHeaders),
62 response: {
63 [statusCode]: {
64 [responseMime]: {
65 body: createSchemaElseUndefined(responseBody),
66 ...(enableMoreInfo && { mostRecent: responseBody }),
67 },
68 },
69 },
70 responseHeaders: createSchemaElseUndefined(responseHeaders),
71 queryParameters: createSchemaElseUndefined(queryParameters),
72 },
73 },
74 };
75 return leafPart;
76}
77
78export default createLeaf;

Callers 4

setupFunction · 0.85
upsertFunction · 0.85

Calls 5

determineAuthFromHARFunction · 0.85
filterIgnoreHeadersFunction · 0.85
parseRequestBodyFunction · 0.85
entriesToJSONTypeFunction · 0.85

Tested by 1

setupFunction · 0.68