jsc-safe-url

Utility functions for converting to and from URLs that encode query string data into URL paths


Keywords
javascriptcore, metro, react-native
License
0BSD
Install
npm install jsc-safe-url@0.2.4

Documentation

jsc-safe-url

JavaScriptCore santizes source URLs in error stacks by stripping query strings and fragments. Ref: Webkit/Webkit#49109d.

This package contains utility functions required to implement the proposed React Native Community RFC0646. It exports three functons:

function isJscSafeUrl(url: string): boolean

Returns false if the URL has a query component that could be stripped by JSC.

function toJscSafeUrl(urlToConvert: string): string

Accepts an absolute or relative URL, and encodes any data in the input query string (if present) into the path component of the URL, by using the delimiter //& (which cannot appear in a normalized file path) to separate the original path from the orignal query string.

toJscSafeUrl('https://example.com/path?foo=bar#fragment')
// 'https://example.com/path//&foo=bar#fragment'

function toNormalUrl(urlToNormalize: string): string

Accepts an absolute or relative URL, and replaces the first unescaped //& in the path component with ?. (Effectively the reverse of toJscSafeUrl.)

toNormalUrl('https://example.com/path//&foo=bar#fragment')
// 'https://example.com/path?foo=bar#fragment'