UNPKG

1.39 kBJavaScriptView Raw
1(function() {
2 module.exports = function($) {
3 var fs;
4 fs = require('fs');
5
6 // return
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 // return
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; // return
42 };
43 };
44
45}).call(this);