Skip to content

Commit

Permalink
Merge 1fc8777 into baf5c94
Browse files Browse the repository at this point in the history
  • Loading branch information
wbinnssmith authored Dec 4, 2023
2 parents baf5c94 + 1fc8777 commit d4bb54b
Show file tree
Hide file tree
Showing 35 changed files with 227 additions and 23 deletions.
4 changes: 2 additions & 2 deletions crates/turbopack-core/src/reference_type.rs
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,6 @@ pub enum EcmaScriptModulesReferenceSubType {
#[turbo_tasks::value(serialization = "auto_for_input")]
#[derive(Debug, Clone, PartialOrd, Ord, Hash)]
pub enum CssReferenceSubType {
AtImport,
Compose,
/// Reference from any asset to a CSS-parseable asset.
///
/// This marks the boundary between non-CSS and CSS assets. The Next.js App
Expand All @@ -60,6 +58,8 @@ pub enum CssReferenceSubType {
#[derive(Debug, Clone, PartialOrd, Ord, Hash)]
pub enum UrlReferenceSubType {
EcmaScriptNewUrl,
CssAtImport,
// Other url references from css, e.g. url(myurl); composes: foo from 'myurl'
CssUrl,
Custom(u8),
Undefined,
Expand Down
11 changes: 6 additions & 5 deletions crates/turbopack-css/src/references/compose.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@ use anyhow::Result;
use turbo_tasks::{Value, ValueToString, Vc};
use turbopack_core::{
chunk::ChunkableModuleReference,
issue::IssueSeverity,
reference::ModuleReference,
reference_type::CssReferenceSubType,
reference_type::UrlReferenceSubType,
resolve::{origin::ResolveOrigin, parse::Request, ModuleResolveResult},
};

use crate::references::css_resolve;
use turbopack_ecmascript::resolve::url_resolve;

/// A `composes: ... from ...` CSS module reference.
#[turbo_tasks::value]
Expand All @@ -30,14 +30,15 @@ impl CssModuleComposeReference {
impl ModuleReference for CssModuleComposeReference {
#[turbo_tasks::function]
fn resolve_reference(&self) -> Vc<ModuleResolveResult> {
css_resolve(
url_resolve(
self.origin,
self.request,
Value::new(CssReferenceSubType::Compose),
Value::new(UrlReferenceSubType::CssUrl),
// TODO: add real issue source, currently impossible because `CssClassName` doesn't
// contain the source span
// https://docs.rs/swc_css_modules/0.21.16/swc_css_modules/enum.CssClassName.html
None,
IssueSeverity::Error.cell(),
)
}
}
Expand Down
11 changes: 6 additions & 5 deletions crates/turbopack-css/src/references/import.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,16 +24,16 @@ use swc_core::{
use turbo_tasks::{Value, ValueToString, Vc};
use turbopack_core::{
chunk::{ChunkableModuleReference, ChunkingContext},
issue::IssueSource,
issue::{IssueSeverity, IssueSource},
reference::ModuleReference,
reference_type::CssReferenceSubType,
reference_type::UrlReferenceSubType,
resolve::{origin::ResolveOrigin, parse::Request, ModuleResolveResult},
};
use turbopack_ecmascript::resolve::url_resolve;

use crate::{
chunk::CssImport,
code_gen::{CodeGenerateable, CodeGeneration},
references::css_resolve,
};

#[turbo_tasks::value(into = "new", eq = "manual", serialization = "none")]
Expand Down Expand Up @@ -345,11 +345,12 @@ impl ImportAssetReference {
impl ModuleReference for ImportAssetReference {
#[turbo_tasks::function]
fn resolve_reference(&self) -> Vc<ModuleResolveResult> {
css_resolve(
url_resolve(
self.origin,
self.request,
Value::new(CssReferenceSubType::AtImport),
Value::new(UrlReferenceSubType::CssAtImport),
Some(self.issue_source),
IssueSeverity::Error.cell(),
)
}
}
Expand Down
2 changes: 1 addition & 1 deletion crates/turbopack-css/src/references/url.rs
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ impl ModuleReference for UrlAssetReference {
self.origin,
self.request,
Value::new(UrlReferenceSubType::CssUrl),
self.issue_source,
Some(self.issue_source),
IssueSeverity::Error.cell(),
)
}
Expand Down
2 changes: 1 addition & 1 deletion crates/turbopack-ecmascript/src/references/esm/url.rs
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ impl ModuleReference for UrlAssetReference {
self.origin,
self.request,
Value::new(UrlReferenceSubType::EcmaScriptNewUrl),
self.issue_source,
Some(self.issue_source),
try_to_severity(self.in_try),
)
}
Expand Down
4 changes: 2 additions & 2 deletions crates/turbopack-ecmascript/src/resolve/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ pub async fn url_resolve(
origin: Vc<Box<dyn ResolveOrigin>>,
request: Vc<Request>,
ty: Value<UrlReferenceSubType>,
issue_source: Vc<IssueSource>,
issue_source: Option<Vc<IssueSource>>,
issue_severity: Vc<IssueSeverity>,
) -> Result<Vc<ModuleResolveResult>> {
let ty = Value::new(ReferenceType::Url(ty.into_value()));
Expand Down Expand Up @@ -129,7 +129,7 @@ pub async fn url_resolve(
request,
resolve_options,
issue_severity,
Some(issue_source),
issue_source,
)
.await
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
@import "other.css";

body {
background-color: blue;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
import "./index.css";
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
.foo {
background-color: red;
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
import {foo} from "./index.module.css";
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
.bar {
composes: foo from 'other.module.css';
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
.foo {
background-color: red;
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit d4bb54b

Please sign in to comment.