UNPKG

@vivo-minigame/cli

Version:

Command line interface for rapid Vivo minigame development

3 lines 1.7 kB
"use strict";var _Object$defineProperty=require("@babel/runtime-corejs2/core-js/object/define-property"),_interopRequireDefault=require("@babel/runtime-corejs2/helpers/interopRequireDefault");_Object$defineProperty(exports,"__esModule",{value:!0}),exports.writeFileTree=exports.replaceFiles=void 0;var _keys=_interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys")),_promise=_interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise")),_path=_interopRequireDefault(require("path")),_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=>_cliSharedUtils.fs.unlink(_path.default.join(directory,filename))))}const writeFileTree=async(dir,files,previousFiles)=>{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])})};exports.writeFileTree=writeFileTree;const replaceFiles=async(names,files)=>{files.forEach(file=>{let content=_cliSharedUtils.fs.readFileSync(file,{encoding:"utf-8"});(0,_keys.default)(names).forEach(n=>{/* eslint-disable no-eval */content=content.replace(eval(`/{{${n}}}/g`),function(defaultName){return names[n]||defaultName})}),_cliSharedUtils.fs.writeFileSync(file,content)})};exports.replaceFiles=replaceFiles;