@vivo-minigame/cli
Version:
Command line interface for rapid Vivo minigame development
24 lines (21 loc) • 1.4 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.default = _default;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 _cliSharedUtils = require("@vivo-minigame/cli-shared-utils");
function deleteRemovedFiles(directory, newFiles, previousFiles) {
// get all files that are not in the new filesystem and are still existing
const filesToDelete = (0, _keys.default)(previousFiles).
filter((filename) => !newFiles[filename]);
// delete each of these files
return _promise.default.all(filesToDelete.map((filename) => {
return _cliSharedUtils.fs.unlink(_path.default.join(directory, filename));
}));
}
async function _default(dir, files, previousFiles) {
if (previousFiles) {
await deleteRemovedFiles(dir, files, previousFiles);
}
(0, _keys.default)(files).forEach((name) => {
const filePath = _path.default.join(dir, name);
_cliSharedUtils.fs.ensureDirSync(_path.default.dirname(filePath));
_cliSharedUtils.fs.writeFileSync(filePath, files[name]);
});
}