36 lines
1.3 KiB
JavaScript
36 lines
1.3 KiB
JavaScript
// Test URLSearchParams encoding vs manual encoding
|
|
const diagram = `graph TD
|
|
A[Website Analytics] --> B[Traffic]
|
|
A --> C[Revenue]`;
|
|
|
|
console.log("=== Manual encodeURIComponent ===");
|
|
const manualEncoded = encodeURIComponent(diagram);
|
|
console.log("Manual:", manualEncoded);
|
|
|
|
console.log("\n=== URLSearchParams ===");
|
|
const params = new URLSearchParams();
|
|
params.set('data', diagram);
|
|
params.set('type', 'svg');
|
|
console.log("URLSearchParams:", params.toString());
|
|
|
|
console.log("\n=== Decoded comparison ===");
|
|
const manualDecoded = decodeURIComponent(manualEncoded);
|
|
const paramsDecoded = decodeURIComponent(params.get('data'));
|
|
console.log("Manual decoded:", JSON.stringify(manualDecoded));
|
|
console.log("Params decoded:", JSON.stringify(paramsDecoded));
|
|
console.log("Are equal:", manualDecoded === paramsDecoded);
|
|
|
|
// Test with problematic characters
|
|
console.log("\n=== Testing problematic chars ===");
|
|
const problematic = `graph TD
|
|
A[Test] --> B[End]`;
|
|
const problemParams = new URLSearchParams();
|
|
problemParams.set('data', problematic);
|
|
console.log("Problematic encoded:", problemParams.toString());
|
|
|
|
// Show exact URL that would be generated
|
|
console.log("\n=== Full URL ===");
|
|
const fullUrl = `https://diagrams.starbit.cloud/generate?${params.toString()}`;
|
|
console.log("URL length:", fullUrl.length);
|
|
console.log("URL:", fullUrl);
|