cloudcc-cli 1.6.4 → 1.6.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/README.md +1176 -1161
  2. package/bin/cc.js +49 -49
  3. package/bin/plugin.js +6 -6
  4. package/bin/project.js +6 -6
  5. package/core/core/CCObject.java +48 -0
  6. package/core/core/CCService.java +806 -0
  7. package/core/core/CCTrigger.java +23 -0
  8. package/core/core/CCTriggerHandler.java +15 -0
  9. package/core/core/DevLogger.java +39 -0
  10. package/core/core/OperatationEnum.java +5 -0
  11. package/core/core/PeakInterf.java +6 -0
  12. package/core/core/PeakSvc.java +8 -0
  13. package/core/core/ServiceResult.java +35 -0
  14. package/core/core/TriggerInvoker.java +83 -0
  15. package/core/core/TriggerMethod.java +9 -0
  16. package/core/core/TriggerTimeEnum.java +5 -0
  17. package/core/core/UserInfo.java +45 -0
  18. package/core.zip +0 -0
  19. package/package.json +34 -34
  20. package/src/classes/create.js +40 -43
  21. package/src/classes/index.js +8 -8
  22. package/src/classes/publish.js +43 -47
  23. package/src/config/get.js +20 -22
  24. package/src/config/index.js +8 -8
  25. package/src/config/use.js +14 -16
  26. package/src/object/get.js +14 -16
  27. package/src/object/index.js +7 -7
  28. package/src/plugin/create.js +70 -80
  29. package/src/plugin/create1.js +58 -66
  30. package/src/plugin/index.js +8 -8
  31. package/src/plugin/publish.js +265 -298
  32. package/src/plugin/publish1.js +256 -286
  33. package/src/project/create.js +87 -89
  34. package/src/project/create1.js +109 -111
  35. package/src/project/index.js +7 -7
  36. package/src/recordType/get.js +13 -16
  37. package/src/recordType/index.js +7 -7
  38. package/src/script/create.js +29 -32
  39. package/src/script/index.js +8 -8
  40. package/src/script/publish.js +62 -69
  41. package/src/timer/create.js +26 -29
  42. package/src/timer/index.js +8 -8
  43. package/src/timer/publish.js +43 -47
  44. package/src/token/get.js +11 -13
  45. package/src/token/index.js +7 -7
  46. package/src/triggers/create.js +27 -35
  47. package/src/triggers/index.js +8 -8
  48. package/src/triggers/publish.js +48 -51
  49. package/template/Appvue +29 -29
  50. package/template/babelconfigjs +5 -5
  51. package/template/demojava +14 -14
  52. package/template/gitignore +11 -11
  53. package/template/index.js +57 -57
  54. package/template/indexhtml +21 -21
  55. package/template/indexvue +34 -34
  56. package/template/javaconfigjson +2 -2
  57. package/template/mainjs +13 -13
  58. package/template/package-lockjson +12115 -12115
  59. package/template/packagejson +42 -42
  60. package/template/vueconfigjs +26 -26
  61. package/tool/branch/index.js +25 -0
  62. package/tool/checkLange/checkLang.js +68 -0
  63. package/tool/checkLange/clearLang.js +85 -0
  64. package/tool/checkLange/result.txt +0 -0
  65. package/utils/checkVersion.js +94 -105
  66. package/utils/http.js +122 -122
  67. package/utils/utils.js +57 -59
@@ -0,0 +1,23 @@
1
+ package com.cloudcc.core;
2
+
3
+ public interface CCTrigger {
4
+ public void do_insert_before() throws Exception;
5
+
6
+ public void do_insert_after() throws Exception;
7
+
8
+ public void do_update_before() throws Exception;
9
+
10
+ public void do_update_after() throws Exception;
11
+ public void do_upsert_before() throws Exception;
12
+
13
+ public void do_upsert_after() throws Exception;
14
+
15
+ public void do_delete_before() throws Exception;
16
+
17
+ public void do_delete_after() throws Exception;
18
+ public void setRecordOldVal (String id);
19
+
20
+ public void do_approval() throws Exception;
21
+
22
+ public String getObjectApiName();
23
+ }
@@ -0,0 +1,15 @@
1
+ package com.cloudcc.core;
2
+
3
+ import java.util.Map;
4
+
5
+ public abstract class CCTriggerHandler extends CCService {
6
+ public Map record_new;
7
+ public Map record_old;
8
+ public ServiceResult trigger;
9
+ public CCTriggerHandler(Map triggernew, Map triggerold, ServiceResult svc, UserInfo uinfo){
10
+ super(uinfo);
11
+ this.record_new = triggernew;
12
+ this.record_old = triggerold;
13
+ this.trigger = svc;
14
+ }
15
+ }
@@ -0,0 +1,39 @@
1
+ package com.cloudcc.core;
2
+
3
+ /**
4
+ * @author jarry
5
+ *
6
+ * 系统日志输出
7
+ */
8
+ public class DevLogger {
9
+ UserInfo userInfo;
10
+ public DevLogger(UserInfo userInfo){
11
+ this.userInfo = userInfo;
12
+ }
13
+
14
+ /**
15
+ * info日志
16
+ * @param log
17
+ */
18
+ public static void devLogInfo(String log){
19
+ System.out.println("Info日志"+log);
20
+ }
21
+
22
+ /**
23
+ * Error日志
24
+ * @param log
25
+ */
26
+ public static void devLogError(String log){
27
+ System.out.println("Info日志"+log);
28
+ }
29
+
30
+ /**
31
+ * 异常日志
32
+ * @param log
33
+ * @param e
34
+ */
35
+ public static void devLogError(String log,Exception e){
36
+ System.out.println("Info日志"+log);
37
+ System.out.println(e);
38
+ }
39
+ }
@@ -0,0 +1,5 @@
1
+ package com.cloudcc.core;
2
+
3
+ public enum OperatationEnum {
4
+ INSERT,UPDATE,UPSERT,DELETE,APPROVE
5
+ }
@@ -0,0 +1,6 @@
1
+ package com.cloudcc.core;
2
+
3
+ public interface PeakInterf {
4
+ public UserInfo uinfo = new UserInfo();
5
+ public void execute();
6
+ }
@@ -0,0 +1,8 @@
1
+ package com.cloudcc.core;
2
+
3
+ import org.springframework.beans.factory.annotation.Autowired;
4
+
5
+ public class PeakSvc {
6
+ @Autowired
7
+ public CCService ccService;
8
+ }
@@ -0,0 +1,35 @@
1
+ package com.cloudcc.core;
2
+
3
+ import com.alibaba.fastjson.JSONObject;
4
+
5
+ import java.util.HashMap;
6
+
7
+ public class ServiceResult extends HashMap {
8
+ public String success;
9
+ public String message;
10
+ public String Id;
11
+
12
+ public void addErrorMessage(String msg) throws Exception{
13
+ this.put("message",msg);
14
+ this.put("success","false");
15
+ throw new Exception(msg);
16
+ }
17
+
18
+ public String getMessage(){
19
+ return (String)this.get("message");
20
+ }
21
+
22
+ public String getSuccess(){
23
+ return (String)this.get("success");
24
+ }
25
+ public String getId(){
26
+ return (String)this.get("id");
27
+ }
28
+
29
+ @Override
30
+ public String toString(){
31
+ JSONObject data = new JSONObject();
32
+ data.putAll(this);
33
+ return data.toString();
34
+ }
35
+ }
@@ -0,0 +1,83 @@
1
+ package com.cloudcc.core;
2
+
3
+ import com.cloudcc.core.CCObject;
4
+ import org.reflections.Reflections;
5
+
6
+ import java.lang.reflect.Constructor;
7
+ import java.lang.reflect.InvocationTargetException;
8
+ import java.util.Set;
9
+
10
+ public class TriggerInvoker {
11
+ UserInfo uinfo = null;
12
+ String operate = "";
13
+ String triggerTime = "";
14
+ public TriggerInvoker (UserInfo userInfo,String operate,String triggerTime){
15
+ this.uinfo = userInfo;
16
+ this.operate = operate;
17
+ this.triggerTime = triggerTime;
18
+ }
19
+ public TriggerInvoker(){
20
+
21
+ }
22
+ public ServiceResult handler(CCObject data) throws Exception{
23
+ String objectApiName = data.getObjectApiName();
24
+ ServiceResult sr = new ServiceResult();
25
+ Reflections ref = new Reflections("com.cloudcc.trigger");
26
+ Set<Class<? extends CCTrigger>> clsSets = ref.getSubTypesOf(CCTrigger.class);
27
+ for (Class<? extends CCTrigger> subCls : clsSets){
28
+ try {
29
+ Constructor cons = subCls.getConstructor(CCObject.class,CCObject.class,ServiceResult.class,UserInfo.class);
30
+ CCTrigger trigger = (CCTrigger) cons.newInstance(data,null,sr,uinfo);
31
+ String objectApiNameTmp = (String) trigger.getObjectApiName();
32
+ if (objectApiName != null && objectApiName.equals(objectApiNameTmp)) {
33
+ if ("before".equals(triggerTime) && "insert".equals(operate)) {
34
+ trigger.do_insert_before();
35
+ }
36
+ if ("after".equals(triggerTime) && "insert".equals(operate)) {
37
+ String id = (String)data.get("id");
38
+ trigger.setRecordOldVal(id);
39
+ trigger.do_insert_after();
40
+ }
41
+ if ("before".equals(triggerTime) && "update".equals(operate)) {
42
+ trigger.do_update_before();
43
+ }
44
+ if ("after".equals(triggerTime) && "update".equals(operate)) {
45
+ String id = (String)data.get("id");
46
+ trigger.setRecordOldVal(id);
47
+ trigger.do_update_after();
48
+ }
49
+ if ("before".equals(triggerTime) && "upsert".equals(operate)) {
50
+ trigger.do_upsert_before();
51
+ }
52
+ if ("after".equals(triggerTime) && "upsert".equals(operate)) {
53
+ String id = (String)data.get("id");
54
+ trigger.setRecordOldVal(id);
55
+ trigger.do_upsert_after();
56
+ }
57
+ if ("before".equals(triggerTime) && "delete".equals(operate)) {
58
+ trigger.do_delete_before();
59
+ }
60
+ if ("after".equals(triggerTime) && "delete".equals(operate)) {
61
+ String id = (String)data.get("id");
62
+ trigger.setRecordOldVal(id);
63
+ trigger.do_delete_after();
64
+ }
65
+ if ("approval".equals(operate)) {
66
+ trigger.do_approval();
67
+ }
68
+ }
69
+ } catch (NoSuchMethodException e) {
70
+ throw new RuntimeException(e);
71
+ } catch (InvocationTargetException e) {
72
+ throw new RuntimeException(e);
73
+ } catch (InstantiationException e) {
74
+ throw new RuntimeException(e);
75
+ } catch (IllegalAccessException e) {
76
+ throw new RuntimeException(e);
77
+ }catch (Exception ex) {
78
+ throw ex;
79
+ }
80
+ }
81
+ return sr;
82
+ }
83
+ }
@@ -0,0 +1,9 @@
1
+ package com.cloudcc.core;
2
+
3
+ public @interface TriggerMethod {
4
+ String name();
5
+ OperatationEnum operate();
6
+ TriggerTimeEnum triggerTime();
7
+ boolean isEnable() ;
8
+ String remark() default "";
9
+ }
@@ -0,0 +1,5 @@
1
+ package com.cloudcc.core;
2
+
3
+ public enum TriggerTimeEnum {
4
+ BEFORE,AFTER
5
+ }
@@ -0,0 +1,45 @@
1
+ package com.cloudcc.core;
2
+
3
+ import com.cloudcc.core.CCObject;
4
+
5
+ public class UserInfo extends CCObject{
6
+ public String binding;
7
+ public String getUserId() {
8
+ return (String)this.get("id");
9
+ }
10
+
11
+ public String getRoleId() {
12
+ return (String)this.get("role");
13
+ }
14
+
15
+ public UserInfo (String username,String pwd) throws Exception {
16
+ this.put("userName", username);
17
+ this.put("password", pwd);
18
+ }
19
+
20
+ public UserInfo() {
21
+
22
+ }
23
+
24
+ public String getLoginName(){
25
+ return (String)this.get("userName");
26
+ }
27
+ public String getProfileId() {
28
+ // TODO Auto-generated method stub
29
+ return (String)this.get("profileId");
30
+ }
31
+ public void setBinding(String bind){
32
+ this.binding = bind;
33
+ this.put("binding",bind);
34
+ }
35
+ public String getBinding(){
36
+ if (this.binding == null){
37
+ return (String)this.get("binding");
38
+ } else {
39
+ return this.binding;
40
+ }
41
+ }
42
+ public String getUserName() {
43
+ return (String)this.get("name");
44
+ }
45
+ }
package/core.zip ADDED
Binary file
package/package.json CHANGED
@@ -1,35 +1,35 @@
1
- {
2
- "name": "cloudcc-cli",
3
- "version": "1.6.4",
4
- "description": "cloudcc-cli",
5
- "keywords": [
6
- "cloudcc",
7
- "cloudcc-cli"
8
- ],
9
- "main": "./bin",
10
- "author": "cloudcc",
11
- "license": "ISC",
12
- "bin": {
13
- "cloudccCreate": "bin/project.js",
14
- "cloudccBuild": "bin/plugin.js",
15
- "cc": "bin/cc.js"
16
- },
17
- "scripts": {
18
- "cc-pull": "git fetch --tags -f && git pull",
19
- "publish-lib": "npm publish --registry https://registry.npmjs.org && curl https://npmmirror.com/sync/cloudcc-cli"
20
- },
21
- "dependencies": {
22
- "axios": "^0.21.4",
23
- "boxen": "^4.0.0",
24
- "chalk": "^2.4.2",
25
- "crypto-js": "^4.1.1",
26
- "dayjs": "^1.10.7",
27
- "fs-extra": "^11.2.0",
28
- "inquirer": "^8.1.0",
29
- "marked": "^5.0.1",
30
- "mem-fs": "^2.2.1",
31
- "mem-fs-editor": "^9.0.1",
32
- "vue-custom-element": "^3.3.0",
33
- "vue-template-compiler": "^2.6.14"
34
- }
1
+ {
2
+ "name": "cloudcc-cli",
3
+ "version": "1.6.6",
4
+ "description": "cloudcc-cli",
5
+ "keywords": [
6
+ "cloudcc",
7
+ "cloudcc-cli"
8
+ ],
9
+ "main": "./bin",
10
+ "author": "cloudcc",
11
+ "license": "ISC",
12
+ "bin": {
13
+ "cloudccCreate": "bin/project.js",
14
+ "cloudccBuild": "bin/plugin.js",
15
+ "cc": "bin/cc.js"
16
+ },
17
+ "scripts": {
18
+ "cc-pull": "git fetch --tags -f && git pull",
19
+ "publish-lib": "npm publish --registry https://registry.npmjs.org && curl https://npmmirror.com/sync/cloudcc-cli"
20
+ },
21
+ "dependencies": {
22
+ "axios": "^0.21.4",
23
+ "boxen": "^4.0.0",
24
+ "chalk": "^2.4.2",
25
+ "crypto-js": "^4.1.1",
26
+ "dayjs": "^1.10.7",
27
+ "fs-extra": "^11.2.0",
28
+ "inquirer": "^8.1.0",
29
+ "marked": "^5.0.1",
30
+ "mem-fs": "^2.2.1",
31
+ "mem-fs-editor": "^9.0.1",
32
+ "vue-custom-element": "^3.3.0",
33
+ "vue-template-compiler": "^2.6.14"
34
+ }
35
35
  }
@@ -1,43 +1,40 @@
1
- const { checkUpdate } = require("../../utils/checkVersion")
2
- const fs = require("fs");
3
- const path = require("path")
4
- const chalk = require("chalk")
5
- /**
6
- * 创建文件
7
- * @param {string} name 文件名称
8
- */
9
- async function create(name) {
10
- let res = await checkUpdate();
11
- if (!res) {
12
- const classesPath = path.join(process.cwd(), "classes/" + name);
13
- try {
14
- fs.mkdirSync(classesPath, { recursive: true })
15
- const javaTmp = `
16
- public class ${name}{
17
- private UserInfo userInfo;
18
-
19
- public ${name}(UserInfo userInfo){
20
- this.userInfo = userInfo;
21
- }
22
-
23
-
24
- public String demo(String str){
25
- str = "demo";
26
- return str;
27
- }
28
- }
29
- `
30
- fs.writeFileSync(path.join(classesPath, name + ".java"), javaTmp)
31
- fs.writeFileSync(path.join(classesPath, "config.json"), `{"name":"${name}","version":"3"}`)
32
- console.log()
33
- console.log(chalk.green("创建成功:" + name))
34
- console.log()
35
- } catch (e) {
36
- console.log()
37
- console.log(chalk.red("创建失败:" + e))
38
- console.log()
39
- }
40
- }
41
- }
42
-
43
- module.exports = create;
1
+ const { checkUpdate } = require("../../utils/checkVersion")
2
+ const fs = require("fs");
3
+ const path = require("path")
4
+ const chalk = require("chalk")
5
+
6
+ async function create(name) {
7
+ let res = await checkUpdate();
8
+ if (!res) {
9
+ const classesPath = path.join(process.cwd(), "classes/" + name);
10
+ try {
11
+ fs.mkdirSync(classesPath, { recursive: true })
12
+ const javaTmp =
13
+ `public class ${name}{
14
+ private UserInfo userInfo;
15
+
16
+ public ${name}(UserInfo userInfo){
17
+ this.userInfo = userInfo;
18
+ }
19
+
20
+
21
+ public String demo(String str){
22
+ str = "demo";
23
+ return str;
24
+ }
25
+ }
26
+ `
27
+ fs.writeFileSync(path.join(classesPath, name + ".java"), javaTmp)
28
+ fs.writeFileSync(path.join(classesPath, "config.json"), `{"name":"${name}","version":"3"}`)
29
+ console.log()
30
+ console.log(chalk.green("Successfully Created:" + name))
31
+ console.log()
32
+ } catch (e) {
33
+ console.log()
34
+ console.log(chalk.red("Creation Failed:" + e))
35
+ console.log()
36
+ }
37
+ }
38
+ }
39
+
40
+ module.exports = create;
@@ -1,8 +1,8 @@
1
- const cc = {}
2
- cc.create = require("./create")
3
- cc.publish = require("./publish")
4
- function Classes(action, argvs) {
5
- cc[action](argvs[2])
6
- }
7
-
8
- module.exports = Classes;
1
+ const cc = {}
2
+ cc.create = require("./create")
3
+ cc.publish = require("./publish")
4
+ function Classes(action, argvs) {
5
+ cc[action](argvs[2])
6
+ }
7
+
8
+ module.exports = Classes;
@@ -1,47 +1,43 @@
1
- // 检查cli版本更新功能
2
- const { checkUpdate } = require("../../utils/checkVersion")
3
- const fs = require("fs");
4
- const path = require("path")
5
- const chalk = require("chalk")
6
- const { postNormal } = require("../../utils/http")
7
-
8
- const { getBusToken } = require("../../utils/utils")
9
- /**
10
- * 发布文件
11
- * @param {string} name 文件名称
12
- */
13
- async function publish(name) {
14
- let res = await checkUpdate();
15
- if (!res) {
16
- console.log();
17
- console.log(chalk.green('发布中,请稍后...'));
18
- console.log();
19
- const classPath = path.join(process.cwd(), `classes/${name}/`);
20
- let classContent = fs.readFileSync(classPath + `${name}.java`, 'utf8');
21
- let configContent = JSON.parse(fs.readFileSync(classPath + "config.json", 'utf8'));
22
- // 获取token成功后,发布内容
23
- if (await getBusToken()) {
24
- let body = {
25
- "id": configContent.id,
26
- "name": name,
27
- "version": configContent.version,
28
- "source": encodeURI(classContent),
29
- "folderId": "wgd"
30
- }
31
- let url = new URL(global.baseUrl).origin
32
- let res = await postNormal(url + "/setup/api/ccfag/save", body)
33
- if (res.result) {
34
- console.log(chalk.green('发布成功!'));
35
- console.log();
36
- // 组件发布成功后,判断下配置文件是否有id,如果没有,那么将id存储到配置中
37
- if (!configContent.id) {
38
- configContent.id = res.data
39
- fs.writeFileSync(path.join(classPath, "config.json"), JSON.stringify(configContent))
40
- }
41
- } else {
42
- console.log(chalk.red('发布失败:' + res.returnInfo));
43
- }
44
- }
45
- }
46
- }
47
- module.exports = publish;
1
+
2
+ const { checkUpdate } = require("../../utils/checkVersion")
3
+ const fs = require("fs");
4
+ const path = require("path")
5
+ const chalk = require("chalk")
6
+ const { postNormal } = require("../../utils/http")
7
+
8
+ const { getBusToken } = require("../../utils/utils")
9
+
10
+ async function publish(name) {
11
+ let res = await checkUpdate();
12
+ if (!res) {
13
+ console.log();
14
+ console.log(chalk.green('Posting, please wait...'));
15
+ console.log();
16
+ const classPath = path.join(process.cwd(), `classes/${name}/`);
17
+ let classContent = fs.readFileSync(classPath + `${name}.java`, 'utf8');
18
+ let configContent = JSON.parse(fs.readFileSync(classPath + "config.json", 'utf8'));
19
+
20
+ if (await getBusToken()) {
21
+ let body = {
22
+ "id": configContent.id,
23
+ "name": name,
24
+ "version": configContent.version,
25
+ "source": encodeURI(classContent),
26
+ "folderId": "wgd"
27
+ }
28
+ let res = await postNormal(global.setupSvc + "/api/ccfag/save", body)
29
+ if (res.result) {
30
+ console.log(chalk.green('Success!'));
31
+ console.log();
32
+
33
+ if (!configContent.id) {
34
+ configContent.id = res.data
35
+ fs.writeFileSync(path.join(classPath, "config.json"), JSON.stringify(configContent))
36
+ }
37
+ } else {
38
+ console.log(chalk.red('Fail:' + res.returnInfo));
39
+ }
40
+ }
41
+ }
42
+ }
43
+ module.exports = publish;
package/src/config/get.js CHANGED
@@ -1,22 +1,20 @@
1
-
2
- const chalk = require("chalk")
3
- const path = require("path")
4
- /**
5
- * 获取token
6
- */
7
- async function get(projectPath = process.cwd()) {
8
- let config = require(path.join(projectPath, "cloudcc-cli.config.js"))
9
- if (config) {
10
- console.log();
11
- Object.keys(config).map((item) => {
12
- if (item == config.use) {
13
- console.log(chalk.green(`*${item}`));
14
- } else if ("use" != item) {
15
- console.log(item);
16
- }
17
- })
18
- console.log();
19
- }
20
- }
21
-
22
- module.exports = get;
1
+
2
+ const chalk = require("chalk")
3
+ const path = require("path")
4
+
5
+ async function get(projectPath = process.cwd()) {
6
+ let config = require(path.join(projectPath, "cloudcc-cli.config.js"))
7
+ if (config) {
8
+ console.log();
9
+ Object.keys(config).map((item) => {
10
+ if (item == config.use) {
11
+ console.log(chalk.green(`*${item}`));
12
+ } else if ("use" != item) {
13
+ console.log(item);
14
+ }
15
+ })
16
+ console.log();
17
+ }
18
+ }
19
+
20
+ module.exports = get;
@@ -1,8 +1,8 @@
1
- const cc = {}
2
- cc.use = require("./use")
3
- cc.get = require("./get")
4
- function main(action, argvs) {
5
- cc[action](argvs[2], argvs[3])
6
- }
7
-
8
- module.exports = main;
1
+ const cc = {}
2
+ cc.use = require("./use")
3
+ cc.get = require("./get")
4
+ function main(action, argvs) {
5
+ cc[action](argvs[2], argvs[3])
6
+ }
7
+
8
+ module.exports = main;
package/src/config/use.js CHANGED
@@ -1,16 +1,14 @@
1
- const path = require("path")
2
- const fs = require("fs")
3
- /**
4
- * 获取token
5
- */
6
- function use(env, projectPath = process.cwd()) {
7
- let config = require(path.join(projectPath, "cloudcc-cli.config.js"));
8
- config.use = env;
9
- fs.writeFileSync(path.join(projectPath, "cloudcc-cli.config.js"),
10
- `module.exports =
11
- ${JSON.stringify(config)}
12
- `
13
- , 'utf8');
14
- }
15
-
16
- module.exports = use;
1
+ const path = require("path")
2
+ const fs = require("fs")
3
+
4
+ function use(env, projectPath = process.cwd()) {
5
+ let config = require(path.join(projectPath, "cloudcc-cli.config.js"));
6
+ config.use = env;
7
+ fs.writeFileSync(path.join(projectPath, "cloudcc-cli.config.js"),
8
+ `module.exports =
9
+ ${JSON.stringify(config)}
10
+ `
11
+ , 'utf8');
12
+ }
13
+
14
+ module.exports = use;