@yuebai008/cli
Version:
Command line interface for rapid qg-minigame development
40 lines (33 loc) • 3.15 kB
JavaScript
;var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");_Object$defineProperty(exports, "__esModule", { value: true });exports.writeFileTree = exports.replaceFiles = void 0;var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));var _path = _interopRequireDefault(require("path"));
var _index = require("../../cli-shared-utils/index.js");
function deleteRemovedFiles(directory, newFiles, previousFiles) {
// get all files that are not in the new filesystem and are still existing
var filesToDelete = (0, _keys["default"])(previousFiles).
filter(function (filename) {return !newFiles[filename];});
// delete each of these files
return _promise["default"].all(filesToDelete.map(function (filename) {
return _index.fs.unlink(_path["default"].join(directory, filename));
}));
}
var writeFileTree = exports.writeFileTree = /*#__PURE__*/function () {var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(dir, files, previousFiles) {return _regenerator["default"].wrap(function _callee$(_context) {while (1) switch (_context.prev = _context.next) {case 0:if (!
previousFiles) {_context.next = 3;break;}_context.next = 3;return (
deleteRemovedFiles(dir, files, previousFiles));case 3:
(0, _keys["default"])(files).forEach(function (name) {
var filePath = _path["default"].join(dir, name);
_index.fs.ensureDirSync(_path["default"].dirname(filePath));
_index.fs.writeFileSync(filePath, files[name]);
});case 4:case "end":return _context.stop();}}, _callee);}));return function writeFileTree(_x, _x2, _x3) {return _ref.apply(this, arguments);};}();
var replaceFiles = exports.replaceFiles = /*#__PURE__*/function () {var _ref2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2(names, files) {return _regenerator["default"].wrap(function _callee2$(_context2) {while (1) switch (_context2.prev = _context2.next) {case 0:
files.forEach(function (file) {
var content = _index.fs.readFileSync(file, {
encoding: 'utf-8'
});
(0, _keys["default"])(names).forEach(function (n) {
/* eslint-disable no-eval */
content = content.replace(eval("/{{".concat(n, "}}/g")), function (defaultName) {
return names[n] || defaultName;
});
/* eslint-enable no-eval */
});
_index.fs.writeFileSync(file, content);
});case 1:case "end":return _context2.stop();}}, _callee2);}));return function replaceFiles(_x4, _x5) {return _ref2.apply(this, arguments);};}();