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

Avoid relying on buggy import order in the legacy importer #245

Merged
merged 3 commits into from
Sep 8, 2023
Merged

Commits on Sep 7, 2023

  1. Avoid relying on buggy import order in the legacy importer

    Historically, the legacy importer shim has strongly assumed that all
    calls to `canonicalize()` would doubled: once as a URL resolved
    relative to the current importer, and again as a URL passed to the
    importers list. However, this relies on buggy, non-spec-compliant
    behavior in Dart Sass: absolute URLs should never be passed to the
    current importer, only to the global list of importers.
    
    This change avoids relying on that behavior by instead disambiguating
    relative loads using a custom URL protocol prefix. All canonical URLs
    passed to Dart Sass now have the prefix `legacy-importer-` added to
    the beginning. This allows us to disambiguate relative loads, and
    ignore them for non-`file:` URLs, since relative loads and _only_
    relative loads will have schemes beginning with `legacy-importer-`.
    
    To avoid regressing the developer experience, we then strip these
    prefixes from all URLs before they're passed to any developer-facing
    APIs or displayed to the user.
    nex3 committed Sep 7, 2023
    Configuration menu
    Copy the full SHA
    ac8bff7 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    210835b View commit details
    Browse the repository at this point in the history

Commits on Sep 8, 2023

  1. Configuration menu
    Copy the full SHA
    bc4b220 View commit details
    Browse the repository at this point in the history