Skip to content

Commit 3a96059

Browse files
authored
Add dependency message support (#241)
1 parent cf61eaf commit 3a96059

File tree

2 files changed

+43
-1
lines changed

2 files changed

+43
-1
lines changed

index.js

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,11 @@ function resolveImportId(
218218
state
219219
) {
220220
var atRule = stmt.node
221-
var base = atRule.source && atRule.source.input && atRule.source.input.file
221+
var sourceFile
222+
if (atRule.source && atRule.source.input && atRule.source.input.file) {
223+
sourceFile = atRule.source.input.file
224+
}
225+
var base = sourceFile
222226
? path.dirname(atRule.source.input.file)
223227
: options.root
224228

@@ -227,6 +231,16 @@ function resolveImportId(
227231
if (!Array.isArray(resolved)) {
228232
resolved = [ resolved ]
229233
}
234+
235+
// Add dependency messages:
236+
resolved.forEach(function(file) {
237+
result.messages.push({
238+
type: "dependency",
239+
file: file,
240+
parent: sourceFile,
241+
})
242+
})
243+
230244
return Promise.all(resolved.map(function(file) {
231245
return loadImportContent(
232246
result,
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,3 +52,31 @@ test("should have a callback shortcut for webpack", t => {
5252
)
5353
})
5454
})
55+
56+
test("should add dependency message for each import", t => {
57+
return postcss()
58+
.use(atImport({
59+
path: "fixtures/imports",
60+
}))
61+
.process(readFileSync("fixtures/media-import.css"), {
62+
from: "fixtures/media-import.css",
63+
})
64+
.then((result) => {
65+
var deps = result.messages.filter(
66+
message => message.type === "dependency"
67+
)
68+
var expected = [
69+
{
70+
type: "dependency",
71+
file: resolve("fixtures/imports/media-import-level-2.css"),
72+
parent: resolve("fixtures/media-import.css"),
73+
},
74+
{
75+
type: "dependency",
76+
file: resolve("fixtures/imports/media-import-level-3.css"),
77+
parent: resolve("fixtures/imports/media-import-level-2.css"),
78+
},
79+
]
80+
t.deepEqual(deps, expected)
81+
})
82+
})

0 commit comments

Comments
 (0)