Skip to content

Commit 13ac4e5

Browse files
committed
Merge pull request #104 from postcss/remove-with-api
Remove node using postcss api
2 parents 94d222b + 1d5d99b commit 13ac4e5

File tree

2 files changed

+20
-22
lines changed

2 files changed

+20
-22
lines changed

index.js

Lines changed: 6 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -218,24 +218,12 @@ function parseGlob(atRule, options, imports) {
218218
function addIgnoredAtRulesOnTop(styles, ignoredAtRules) {
219219
var i = ignoredAtRules.length
220220
if (i) {
221-
var first = styles.first
222-
223221
while (i--) {
224222
var ignoredAtRule = ignoredAtRules[i][0]
225223
ignoredAtRule.params = ignoredAtRules[i][1].fullUri +
226224
(ignoredAtRules[i][1].media ? " " + ignoredAtRules[i][1].media : "")
227225

228-
// keep ast ref
229-
ignoredAtRule.parent = styles
230-
231-
// don't use prepend() to avoid weird behavior of normalize()
232-
styles.nodes.unshift(ignoredAtRule)
233-
}
234-
235-
// separate remote import a little with others rules if no newlines already
236-
if (first &&
237-
first.raws.before.indexOf("\n") === -1) {
238-
first.raws.before = "\n\n" + first.raws.before
226+
styles.prepend(ignoredAtRule)
239227
}
240228
}
241229
}
@@ -272,7 +260,7 @@ function readAtImport(
272260
state.ignoredAtRules.push([ atRule, parsedAtImport ])
273261

274262
// detach
275-
detach(atRule)
263+
atRule.remove()
276264

277265
return Promise.resolve()
278266
}
@@ -292,7 +280,7 @@ function readAtImport(
292280
state.importedFiles[resolvedFilename] &&
293281
state.importedFiles[resolvedFilename][media]
294282
) {
295-
detach(atRule)
283+
atRule.remove()
296284
return Promise.resolve()
297285
}
298286

@@ -352,7 +340,7 @@ function readImportedContent(
352340

353341
if (fileContent.trim() === "") {
354342
result.warn(resolvedFilename + " is empty", { node: atRule })
355-
detach(atRule)
343+
atRule.remove()
356344
return Promise.resolve()
357345
}
358346

@@ -361,7 +349,7 @@ function readImportedContent(
361349
state.hashFiles[fileContent] &&
362350
state.hashFiles[fileContent][media]
363351
) {
364-
detach(atRule)
352+
atRule.remove()
365353
return Promise.resolve()
366354
}
367355

@@ -455,7 +443,7 @@ function insertRules(atRule, parsedAtImport, newStyles) {
455443
// replace atRule by imported nodes
456444
var nodes = atRule.parent.nodes
457445
nodes.splice.apply(nodes, [ nodes.indexOf(atRule), 0 ].concat(newNodes))
458-
detach(atRule)
446+
atRule.remove()
459447
}
460448

461449
/**
@@ -555,10 +543,6 @@ function addInputToPath(options) {
555543
}
556544
}
557545

558-
function detach(node) {
559-
node.parent.nodes.splice(node.parent.nodes.indexOf(node), 1)
560-
}
561-
562546
module.exports = postcss.plugin(
563547
"postcss-import",
564548
AtImport

test/fixtures/ignore.expected.css

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,31 @@
11
@import "http://css" (min-width: 25em);
2+
23
@import "http://css-screen" (min-width: 25em) and screen;
4+
35
@import "http://css";
6+
47
@import "https://css";
8+
59
@import 'http://css';
10+
611
@import 'https://css';
12+
713
@import url(http://css);
14+
815
@import url(https://css);
16+
917
@import url("http://css");
18+
1019
@import url("https://css");
20+
1121
@import url('http://css');
22+
1223
@import url('https://css');
24+
1325
@import url("//css");
26+
1427
@import url('//css');
28+
1529
@import url(//css);
1630

1731
@media (min-width: 25em){

0 commit comments

Comments
 (0)