UNPKG

2.15 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3var path = require("path");
4var cmn = require("@akashic/akashic-cli-commons");
5function _completeModifyBasicParameterParameterObject(param) {
6 param.cwd = param.cwd || process.cwd();
7 param.logger = param.logger || new cmn.ConsoleLogger();
8}
9exports._completeModifyBasicParameterParameterObject = _completeModifyBasicParameterParameterObject;
10function promiseModifyBasicParameter(param) {
11 _completeModifyBasicParameterParameterObject(param);
12 if (typeof param.value !== "number" || isNaN(param.value) || param.value <= 0 || Math.round(param.value) !== param.value) {
13 return Promise.reject(new Error(param.target + " must be a positive integer but '" + param.value + "' is given."));
14 }
15 var restoreDirectory = cmn.Util.chdir(param.cwd);
16 var gameJsonPath = path.join(process.cwd(), "game.json");
17 return Promise.resolve()
18 .then(function () { return cmn.ConfigurationFile.read(gameJsonPath, param.logger); })
19 .then(function (content) {
20 return new Promise(function (resolve, reject) {
21 switch (param.target) {
22 case "width":
23 content.width = param.value;
24 break;
25 case "height":
26 content.height = param.value;
27 break;
28 case "fps":
29 content.fps = param.value;
30 break;
31 default:
32 return reject("unknown target: " + param.target);
33 }
34 resolve();
35 })
36 .then(function () { return cmn.ConfigurationFile.write(content, gameJsonPath, param.logger); })
37 .then(function () { return param.logger.info("Done!"); });
38 })
39 .then(restoreDirectory)
40 .catch(function (err) {
41 restoreDirectory();
42 throw new Error(err);
43 });
44}
45exports.promiseModifyBasicParameter = promiseModifyBasicParameter;
46function modifyBasicParameter(param, cb) {
47 promiseModifyBasicParameter(param).then(cb, cb);
48}
49exports.modifyBasicParameter = modifyBasicParameter;