|
1 | 1 | var through2 = require('through2');
|
2 | 2 | var filesystem = require('fs');
|
| 3 | +var istextorbinary = require('istextorbinary'); |
3 | 4 | var xmlToJs = require('xml2js');
|
4 | 5 | var mime = require('mime');
|
5 | 6 | var parser = require('qmlweb-parser');
|
6 | 7 |
|
7 | 8 | function dumpResource(root, filepath) {
|
8 | 9 | return new Promise(function(resolve, reject) {
|
9 |
| - filesystem.readFile(root + '/' + filepath, function(err, str) { |
| 10 | + filesystem.readFile(root + '/' + filepath, function(err, buffer) { |
10 | 11 | var data = null;
|
11 | 12 | var mimetype = mime.getType(filepath);
|
| 13 | + var str = typeof buffer === "object" ? buffer.toString() : buffer; |
12 | 14 |
|
13 |
| - if (typeof str === "object") |
14 |
| - str = str.toString(); |
15 | 15 | if (typeof str === "string") {
|
16 | 16 | try {
|
17 | 17 | if (filepath.match(/\.qml$/) != null)
|
18 | 18 | data = parser.qmlweb_parse(str, parser.qmlweb_parse.QMLDocument);
|
19 | 19 | else if (filepath.match(/\.m?js$/) != null)
|
20 | 20 | data = parser.qmlweb_jsparse(str);
|
21 |
| - else if (mimetype && mimetype.startsWith("image/")) |
22 |
| - data = "data:" + mimetype + ";base64," + Buffer.from(str).toString('base64'); |
| 21 | + else if (istextorbinary.isBinary(filepath, buffer)) |
| 22 | + data = "data:" + mimetype + ";base64," + buffer.toString('base64'); |
23 | 23 | else
|
24 | 24 | data = str;
|
25 | 25 | resolve(data);
|
|
0 commit comments