(harRequest: Entry, content: string)
| 29 | const validResourceTypes = new Set(["xhr", "fetch", "document"]); |
| 30 | const isValidStatus = (status: string) => validStatuses.has(status); |
| 31 | export const isValidRequest = (harRequest: Entry, content: string): boolean => { |
| 32 | const isNotAJAXRequest = |
| 33 | !!harRequest._resourceType && |
| 34 | !validResourceTypes.has(harRequest._resourceType); |
| 35 | if (isNotAJAXRequest) return false; |
| 36 | const didNotReachServer = !harRequest.serverIPAddress; |
| 37 | if (didNotReachServer) return false; |
| 38 | const isNotJSON = |
| 39 | !harRequest.response.content.mimeType.startsWith("application/json") && |
| 40 | !isValidJSONString(content); |
| 41 | const isNotXWWWFormUrlEncoded = |
| 42 | !harRequest.request.postData?.mimeType.startsWith( |
| 43 | "application/x-www-form-urlencoded" |
| 44 | ); |
| 45 | const isNotValidMime = isNotJSON && isNotXWWWFormUrlEncoded; |
| 46 | if (isNotValidMime) return false; |
| 47 | const isNotValidStatus = !isValidStatus(harRequest.request.method); |
| 48 | if (isNotValidStatus) return false; |
| 49 | if (!isValidURL(harRequest.request.url)) return false; |
| 50 | if (isGraphQLURI(harRequest.request.url)) return false; |
| 51 | if (isJSONFile(harRequest.request.url)) return false; |
| 52 | return true; |
| 53 | }; |
| 54 | |
| 55 | export const pathToArray = (pathname: string): Array<string> => { |
| 56 | return pathname.split("/").slice(1); |
no test coverage detected