|
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