1 | (function() {
|
2 | module.exports = function($) {
|
3 | var fs;
|
4 | fs = require('fs');
|
5 |
|
6 |
|
7 | return $.read_ = async function(source, option = {}) {
|
8 | var extname, jsYaml, listSource, pathSource, res;
|
9 | pathSource = source;
|
10 | listSource = (await $.source_(pathSource));
|
11 | if (!(listSource != null ? listSource.length : void 0)) {
|
12 | $.info('file', `'${pathSource}' not existed`);
|
13 | return null;
|
14 | }
|
15 | source = listSource[0];
|
16 | res = (await new Promise(function(resolve) {
|
17 | return fs.readFile(source, function(err, data) {
|
18 | if (err) {
|
19 | throw err;
|
20 | }
|
21 | return resolve(data);
|
22 | });
|
23 | }));
|
24 | $.info('file', `read '${source}'`);
|
25 |
|
26 |
|
27 | if (option.raw) {
|
28 | return res;
|
29 | }
|
30 | extname = $.getExtname(source);
|
31 | if (extname === '.coffee' || extname === '.css' || extname === '.html' || extname === '.js' || extname === '.md' || extname === '.pug' || extname === '.sh' || extname === '.styl' || extname === '.txt' || extname === '.xml') {
|
32 | return $.parseString(res);
|
33 | }
|
34 | if (extname === '.json') {
|
35 | return $.parseJSON(res);
|
36 | }
|
37 | if (extname === '.yaml' || extname === '.yml') {
|
38 | jsYaml = require('js-yaml');
|
39 | return jsYaml.safeLoad(res);
|
40 | }
|
41 | return res;
|
42 | };
|
43 | };
|
44 |
|
45 | }).call(this);
|