Skip to content

Merge branch 'main' of github.com:sass/embedded-host-node into feature.color-4#256

Merged
nex3 merged 11 commits intofeature.color-4from
merge
Oct 6, 2023
Merged

Merge branch 'main' of github.com:sass/embedded-host-node into feature.color-4#256
nex3 merged 11 commits intofeature.color-4from
merge

Conversation

@nex3
Copy link
Contributor

@nex3 nex3 commented Oct 6, 2023

nex3 and others added 11 commits September 8, 2023 23:07
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.
We need to copy the entrypoing typings file, as described in [the
TypeScript docs]:

> It’s important to note that the CommonJS entrypoint and the ES
> module entrypoint each needs its own declaration file, even if the
> contents are the same between them. Every declaration file is
> interpreted either as a CommonJS module or as an ES module, based on
> its file extension and the `"type"` field of the `package.json`, and
> this detected module kind must match the module kind that Node will
> detect for the corresponding JavaScript file for type checking to be
> correct. Attempting to use a single `.d.ts` file to type both an ES
> module entrypoint and a CommonJS entrypoint will cause TypeScript to
> think only one of those entrypoints exists, causing compiler errors
> for users of the package.

[the TypeScript docs]: https://www.typescriptlang.org/docs/handbook/esm-node.html

Closes #247
Bumps [minipass](https://github.com/isaacs/minipass) from 7.0.3 to 7.0.4.
- [Changelog](https://github.com/isaacs/minipass/blob/main/CHANGELOG.md)
- [Commits](isaacs/minipass@v7.0.3...v7.0.4)

---
updated-dependencies:
- dependency-name: minipass
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
@nex3 nex3 merged commit 9438f2a into feature.color-4 Oct 6, 2023
@nex3 nex3 deleted the merge branch October 6, 2023 21:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants