|
1 | | -var fs = require("fs") |
2 | 1 | var path = require("path") |
3 | 2 | var assign = require("object-assign") |
4 | 3 | var postcss = require("postcss") |
5 | 4 | var joinMedia = require("./lib/join-media") |
6 | 5 | var resolveId = require("./lib/resolve-id") |
| 6 | +var loadContent = require("./lib/load-content") |
7 | 7 | var parseStatements = require("./lib/parse-statements") |
8 | 8 |
|
9 | 9 | function AtImport(options) { |
10 | 10 | options = assign({ |
11 | 11 | root: process.cwd(), |
12 | 12 | path: [], |
13 | 13 | skipDuplicates: true, |
14 | | - encoding: "utf8", |
| 14 | + load: loadContent, |
15 | 15 | }, options) |
16 | 16 |
|
17 | 17 | options.root = path.resolve(options.root) |
@@ -281,14 +281,8 @@ function loadImportContent( |
281 | 281 | state.importedFiles[filename][media] = true |
282 | 282 | } |
283 | 283 |
|
284 | | - return new Promise(function(resolve, reject) { |
285 | | - fs.readFile(filename, options.encoding, function(err, data) { |
286 | | - if (err) { |
287 | | - return reject(err) |
288 | | - } |
289 | | - resolve(data) |
290 | | - }) |
291 | | - }).then(function(content) { |
| 284 | + return Promise.resolve(options.load(filename, options)) |
| 285 | + .then(function(content) { |
292 | 286 | if (typeof options.transform === "function") { |
293 | 287 | content = options.transform(content, filename) |
294 | 288 | } |
@@ -333,8 +327,10 @@ function loadImportContent( |
333 | 327 | state, |
334 | 328 | media, |
335 | 329 | processor |
336 | | - ).then(function(statements) { |
337 | | - return processor.process(newStyles).then(function(newResult) { |
| 330 | + ) |
| 331 | + .then(function(statements) { |
| 332 | + return processor.process(newStyles) |
| 333 | + .then(function(newResult) { |
338 | 334 | result.messages = result.messages.concat(newResult.messages) |
339 | 335 |
|
340 | 336 | return statements |
|
0 commit comments