@iot-studio/material-toolkit-utils
Version:
material 工具链相关工具
60 lines (59 loc) • 1.96 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var fs_extra_1 = __importDefault(require("fs-extra"));
var fs_1 = __importDefault(require("fs"));
var path_1 = __importDefault(require("path"));
function readFile(filePath) {
fs_extra_1.default.ensureFileSync(filePath);
return fs_1.default.readFileSync(filePath).toString();
}
function readFileList(dir, filesList) {
if (filesList === void 0) { filesList = []; }
var files = fs_1.default.readdirSync(dir);
files.forEach(function (item, index) {
var fullPath = path_1.default.join(dir, item);
var stat = fs_1.default.statSync(fullPath);
if (stat.isDirectory()) {
readFileList(path_1.default.join(dir, item), filesList); //递归读取文件
}
else {
filesList.push(fullPath);
}
});
return {
filesPath: filesList,
files: files,
};
}
function read(dir) {
var fileObj = {};
// 读取目录下的文件
var list = readFileList(dir);
// 读取目录下的文件内容
list.filesPath.map(function (file, index) {
var content = fs_1.default.readFileSync(file);
fileObj[list.files[index]] = content.toString();
});
return fileObj;
}
function write(realPath, content) {
return new Promise(function (resolve, reject) {
fs_extra_1.default.ensureFileSync(realPath);
var fileContent = typeof content === 'string' ? content : JSON.stringify(content, null, '\t');
fs_1.default.writeFile(realPath, fileContent, 'utf8', function (err) {
if (err) {
console.error(err);
reject(err);
}
resolve(null);
});
});
}
exports.default = {
read: read,
write: write,
readFile: readFile,
};