Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix HAR extraction for conflicting URL paths #13

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

acrefoot
Copy link

This PR addresses an issue where HAR entries with conflicting prefixes could not be properly represented in the filesystem. The changes implement a more robust directory creation process that can handle cases where a file and a directory might need to exist at the same path.

Changes

  • Implemented ensureDir function to manage directory creation
  • Replaced makeDir.sync with custom ensureDir logic
  • Added handling for cases where file and directory names conflict
  • Improved error handling for directory creation process
  • Removed unused makeDir import

Implementation Details
The new ensureDir function walks through each part of a path, creating directories as needed. If it encounters a file where a directory should be, it moves the file to an index file within a new directory at that location. This allows us to represent both server.com/foo (as server.com/foo/index) and server.com/foo/bar (as server.com/foo/bar) in the filesystem.

acrefoot and others added 3 commits August 14, 2024 10:31
Problem:
The previous implementation couldn't handle cases where a HAR file
contained entries for both a URL and its subpath (e.g., 'foo' and 'foo/bar').
This led to conflicts when trying to represent both as filesystem paths.

Solution:
- Implement 'ensureDir' function to create nested directory structure
- Handle cases where a file exists where a directory is needed:
  - Move existing file to 'index' within a new directory
- Replace 'makeDir.sync' with this new, more flexible approach

This change allows us to correctly represent all HAR entries in the
filesystem, even when URL paths overlap. For example:
- 'server.com/foo' becomes 'server.com/foo/index'
- 'server.com/foo/bar' becomes 'server.com/foo/bar'

Testing:
Manually tested with HAR files containing conflicting URL paths.
@azu azu added the Type: Bug Bug or Bug fixes label Aug 15, 2024
@azu
Copy link
Owner

azu commented Aug 15, 2024

It looks like testing is failed.
Can you check test?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type: Bug Bug or Bug fixes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants