New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

create-quickgame

Package Overview
Dependencies
Maintainers
1
Versions
74
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

create-quickgame - npm Package Compare versions

Comparing version 0.1.13 to 0.1.14

321

lib/create-quickgame.js

@@ -1,320 +0,1 @@

"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.mkdirsSync = mkdirsSync;
exports.traverseDirSync = traverseDirSync;
var _path = _interopRequireDefault(require("path"));
var _child_process = require("child_process");
var _fsExtra = _interopRequireDefault(require("fs-extra"));
var _prompt = _interopRequireDefault(require("prompt"));
var _chalk = _interopRequireDefault(require("chalk"));
var _del = _interopRequireDefault(require("del"));
/*
* Copyright (C) 2017, hapjs.org. All rights reserved.
*/
var objParams = {};
var isUpdateCli = false;
var templatesPath = _path["default"].join(__dirname, '../templates');
/**
* 参数处理
*/
function parseParams() {
var args = process.argv;
args = args.slice(2);
if (args.length >= 1) {
objParams.projectName = args[0];
args.shift();
}
for (var i in args) {
var item = args[i].split(/=/);
item[0] && item[1] && (objParams[item[0]] = item[1]);
}
}
parseParams();
/**
* 生成工程目录
* @param name 项目名
*/
function generate(name) {
if (name === '') {
name = 'HelloWorld';
}
if (Object.keys(objParams).length > 1) {
return createProject(name, objParams.path);
}
promptName(name, _chalk["default"].green('Init your Project'), function (err, result) {
if (err) {
// 错误返回
return;
}
var projectName = result.name;
var dirpath = _path["default"].join(process.cwd());
createProject(projectName, dirpath);
});
}
/**
* 递归创建目录 同步方法
* @param dir
* @returns {boolean}
*/
function mkdirsSync(dir) {
if (_fsExtra["default"].existsSync(dir)) {
return true;
} else {
if (mkdirsSync(_path["default"].dirname(dir))) {
_fsExtra["default"].mkdirSync(dir);
return true;
}
}
}
/**
* 遍历目录文件 同步方法
* @param {String} dir - 模板文件路径
* @param {Array} files - 收集的文件列表
*/
function traverseDirSync(dir, files) {
var list = _fsExtra["default"].readdirSync(dir);
list.forEach(function (file) {
file = _path["default"].join(dir, file);
var stat = _fsExtra["default"].statSync(file);
if (stat && stat.isDirectory()) {
traverseDirSync(file, files);
} else {
files.push(file);
}
});
}
/**
* 命令行输入
* @param name
* @param message
* @param done
*/
function promptName(name, message, done) {
var schema = {
properties: {
name: {
message: message,
"default": name
}
}
};
_prompt["default"].start();
_prompt["default"].get(schema, done);
}
/**
* 创建项目目录
* @param name 项目名
* @param dirpath 目标项目路径
*/
function createProject(name) {
var dir = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '.';
var dirpath = '';
if (dir === '.' || dir === './') {
dirpath = _path["default"].join(process.cwd(), name);
} else {
dirpath = _path["default"].join(dir, name);
}
if (!mkdirsSync(dirpath)) {
return console.log(_chalk["default"].red('the folder "' + dirpath + '" create failed!.'));
} // 拷贝project
copyFiles(dirpath, templatesPath); // 初始化模板
initTemplate(dirpath, name);
}
/**
* 初始模板
* @param {String} dirpath - 项目路径
* @param {String} projectName -
*/
function initTemplate(dirpath) {
var projectName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'quickgame';
var file = _path["default"].join(dirpath, 'package.json');
var cliVersion = require('../package.json')['devDependencies']['quickgame-cli'];
var replaceNames = {
'appName': projectName,
'cliVersion': cliVersion
};
replacePackageJson(file, replaceNames);
resetManifest(dirpath, objParams);
install(dirpath);
}
/**
* 替换package.json中的模板参数
* @param {替换文件} file
* @param {值} obj
*/
function replacePackageJson(file, obj) {
var content = _fsExtra["default"].readFileSync(file, {
encoding: 'utf-8'
});
if (typeof content === 'string') {
content = JSON.parse(content);
}
if (!content['dependencies']) {
content['dependencies'] = {
'quickgame-cli': obj.cliVersion
};
isUpdateCli = true;
} else if (!content['dependencies']['quickgame-cli']) {
content['dependencies']['quickgame-cli'] = obj.cliVersion;
isUpdateCli = true;
} else {
var quickgameCliVersion = content['dependencies']['quickgame-cli'];
if (quickgameCliVersion !== obj.cliVersion) {
isUpdateCli = true;
}
content['dependencies']['quickgame-cli'] = obj.cliVersion;
}
content.name = obj.appName;
_fsExtra["default"].writeFileSync(file, JSON.stringify(content, null, 4));
}
/**
* 设置manifest的值
* @param {传递的参数} obj
*/
function resetManifest(dir, obj) {
var file = _path["default"].join(dir, './manifest.json');
var content = _fsExtra["default"].readFileSync(file, {
encoding: 'utf-8'
});
if (typeof content === 'string') {
content = JSON.parse(content);
}
for (var i in content) {
if (obj[i]) {
content[i] = obj[i];
}
}
_fsExtra["default"].writeFileSync(file, JSON.stringify(content, null, 4));
}
function install(dir) {
var node_mod = _path["default"].join(dir, 'node_modules');
if (!_fsExtra["default"].existsSync(node_mod)) {
console.log('Installing packages. This might take a couple of minutes.');
(0, _child_process.execSync)('npm install ', {
cwd: dir,
stdio: [0, 1, 2]
});
} else if (isUpdateCli && _fsExtra["default"].existsSync(node_mod)) {
_del["default"].sync("".concat(node_mod), {
force: true
});
console.log('Installing packages. This might take a couple of minutes.');
(0, _child_process.execSync)('npm install ', {
cwd: dir,
stdio: [0, 1, 2]
});
}
}
/**
* 拷贝模板目录
* @param {String} dest 目标路径
* @param {String} src 模板文件路径
*/
function copyFiles(dest, src) {
var files = []; // 遍历收集文件列表
traverseDirSync(src, files);
files.forEach(function (file) {
var relative = _path["default"].relative(src, file);
var finalPath = _path["default"].join(dest, relative);
if (!_fsExtra["default"].existsSync(finalPath)) {
console.log(_chalk["default"].white("file: ".concat(finalPath, " created.")));
_fsExtra["default"].copySync(file, finalPath);
} else {
console.log(_chalk["default"].yellow("file: ".concat(finalPath, " already existed.")));
}
});
}
/**
* 字符串替换
* @param names
* @param files
*/
// function replaceFiles (names, files) {
// files.forEach(file => {
// let content = fs.readFileSync(file, {
// encoding: 'utf-8'
// })
// Object.keys(names).forEach(n => {
// /* eslint-disable no-eval */
// content = content.replace(eval(`/{{${n}}}/g`), function (defaultName) {
// return names[n] || defaultName
// })
// /* eslint-enable no-eval */
// })
// fs.writeFileSync(file, content)
// })
// }
generate(objParams.projectName);
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:!0}),exports.mkdirsSync=mkdirsSync,exports.traverseDirSync=traverseDirSync;var _path=_interopRequireDefault(require("path")),_child_process=require("child_process"),_fsExtra=_interopRequireDefault(require("fs-extra")),_prompt=_interopRequireDefault(require("prompt")),_chalk=_interopRequireDefault(require("chalk")),_del=_interopRequireDefault(require("del")),objParams={},isUpdateCli=!1,templatesPath=_path.default.join(__dirname,"../templates");function parseParams(){var e=process.argv;for(var a in 1<=(e=e.slice(2)).length&&(objParams.projectName=e[0],e.shift()),e){var t=e[a].split(/=/);t[0]&&t[1]&&(objParams[t[0]]=t[1])}}function generate(e){if(""===e&&(e="HelloWorld"),1<Object.keys(objParams).length)return createProject(e,objParams.path);promptName(e,_chalk.default.green("Init your Project"),function(e,a){e||createProject(a.name,_path.default.join(process.cwd()))})}function mkdirsSync(e){return!!_fsExtra.default.existsSync(e)||(mkdirsSync(_path.default.dirname(e))?(_fsExtra.default.mkdirSync(e),!0):void 0)}function traverseDirSync(t,r){_fsExtra.default.readdirSync(t).forEach(function(e){e=_path.default.join(t,e);var a=_fsExtra.default.statSync(e);a&&a.isDirectory()?traverseDirSync(e,r):r.push(e)})}function promptName(e,a,t){var r={properties:{name:{message:a,default:e}}};_prompt.default.start(),_prompt.default.get(r,t)}function createProject(e){var a=1<arguments.length&&void 0!==arguments[1]?arguments[1]:".",t="";if(!mkdirsSync(t="."===a||"./"===a?_path.default.join(process.cwd(),e):_path.default.join(a,e)))return console.log(_chalk.default.red('the folder "'+t+'" create failed!.'));copyFiles(t,templatesPath),initTemplate(t,e)}function initTemplate(e){var a=1<arguments.length&&void 0!==arguments[1]?arguments[1]:"quickgame";replacePackageJson(_path.default.join(e,"package.json"),{appName:a,cliVersion:require("../package.json").devDependencies["quickgame-cli"]}),resetManifest(e,objParams),install(e)}function replacePackageJson(e,a){var t=_fsExtra.default.readFileSync(e,{encoding:"utf-8"});if("string"==typeof t&&(t=JSON.parse(t)),t.dependencies)if(t.dependencies["quickgame-cli"]){t.dependencies["quickgame-cli"]!==a.cliVersion&&(isUpdateCli=!0),t.dependencies["quickgame-cli"]=a.cliVersion}else t.dependencies["quickgame-cli"]=a.cliVersion,isUpdateCli=!0;else t.dependencies={"quickgame-cli":a.cliVersion},isUpdateCli=!0;t.name=a.appName,_fsExtra.default.writeFileSync(e,JSON.stringify(t,null,4))}function resetManifest(e,a){var t=_path.default.join(e,"./manifest.json"),r=_fsExtra.default.readFileSync(t,{encoding:"utf-8"});for(var i in"string"==typeof r&&(r=JSON.parse(r)),r)a[i]&&(r[i]=a[i]);_fsExtra.default.writeFileSync(t,JSON.stringify(r,null,4))}function install(e){var a=_path.default.join(e,"node_modules");_fsExtra.default.existsSync(a)?isUpdateCli&&_fsExtra.default.existsSync(a)&&(_del.default.sync("".concat(a),{force:!0}),console.log("Installing packages. This might take a couple of minutes."),(0,_child_process.execSync)("npm install ",{cwd:e,stdio:[0,1,2]})):(console.log("Installing packages. This might take a couple of minutes."),(0,_child_process.execSync)("npm install ",{cwd:e,stdio:[0,1,2]}))}function copyFiles(r,i){var e=[];traverseDirSync(i,e),e.forEach(function(e){var a=_path.default.relative(i,e),t=_path.default.join(r,a);_fsExtra.default.existsSync(t)?console.log(_chalk.default.yellow("file: ".concat(t," already existed."))):(console.log(_chalk.default.white("file: ".concat(t," created."))),_fsExtra.default.copySync(e,t))})}parseParams(),generate(objParams.projectName);

4

package.json
{
"name": "create-quickgame",
"version": "0.1.13",
"version": "0.1.14",
"description": "create quick game",

@@ -27,3 +27,3 @@ "bin": {

},
"gitHead": "3c98ab41c82e33600e2a5d614342dbf4ac2daf3c"
"gitHead": "3a5f4f77fd78d11ca39bb256a0070f1dc72e9d61"
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc