@@ -4,6 +4,7 @@ var postcss = require("postcss")
44var joinMedia = require ( "./lib/join-media" )
55var resolveId = require ( "./lib/resolve-id" )
66var loadContent = require ( "./lib/load-content" )
7+ var processContent = require ( "./lib/process-content" )
78var parseStatements = require ( "./lib/parse-statements" )
89var promiseEach = require ( "promise-each" )
910
@@ -62,6 +63,14 @@ function AtImport(options) {
6263 typeof options . addDependencyTo === "object" &&
6364 typeof options . addDependencyTo . addDependency === "function"
6465 ) {
66+ console . warn ( [
67+ "addDependencyTo is deprecated in favor of" ,
68+ "result.messages.dependency; postcss-loader >= v1.0.0 will" ,
69+ "automatically add your imported files to webpack's file watcher." ,
70+ "For more information, see" ,
71+ "https://github.com/postcss/postcss-import\
72+ #dependency-message-support" ,
73+ ] . join ( "\n" ) )
6574 Object . keys ( state . importedFiles )
6675 . forEach ( options . addDependencyTo . addDependency )
6776 }
@@ -227,11 +236,18 @@ function resolveImportId(
227236 : options . root
228237
229238 return Promise . resolve ( options . resolve ( stmt . uri , base , options ) )
230- . then ( function ( resolved ) {
231- if ( ! Array . isArray ( resolved ) ) {
232- resolved = [ resolved ]
239+ . then ( function ( paths ) {
240+ if ( ! Array . isArray ( paths ) ) {
241+ paths = [ paths ]
233242 }
234243
244+ return Promise . all ( paths . map ( function ( file ) {
245+ // Ensure that each path is absolute:
246+ if ( ! path . isAbsolute ( file ) ) return resolveId ( file , base , options )
247+ return file
248+ } ) )
249+ } )
250+ . then ( function ( resolved ) {
235251 // Add dependency messages:
236252 resolved . forEach ( function ( file ) {
237253 result . messages . push ( {
@@ -261,6 +277,7 @@ function resolveImportId(
261277 } , [ ] )
262278 } )
263279 . catch ( function ( err ) {
280+ if ( err . message . indexOf ( "Failed to find" ) !== - 1 ) throw err
264281 result . warn ( err . message , { node : atRule } )
265282 } )
266283}
@@ -291,15 +308,6 @@ function loadImportContent(
291308 }
292309
293310 return Promise . resolve ( options . load ( filename , options ) )
294- . then ( function ( content ) {
295- if ( typeof options . transform !== "function" ) {
296- return content
297- }
298- return Promise . resolve ( options . transform ( content , filename , options ) )
299- . then ( function ( transformed ) {
300- return typeof transformed === "string" ? transformed : content
301- } )
302- } )
303311 . then ( function ( content ) {
304312 if ( content . trim ( ) === "" ) {
305313 result . warn ( filename + " is empty" , { node : atRule } )
@@ -314,11 +322,12 @@ function loadImportContent(
314322 return
315323 }
316324
317- return postcss ( options . plugins ) . process ( content , {
318- from : filename ,
319- syntax : result . opts . syntax ,
320- parser : result . opts . parser ,
321- } )
325+ return processContent (
326+ result ,
327+ content ,
328+ filename ,
329+ options
330+ )
322331 . then ( function ( importedResult ) {
323332 var styles = importedResult . root
324333 result . messages = result . messages . concat ( importedResult . messages )
0 commit comments