uc-dev 1.0.7 → 1.0.8

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.
package/README.md CHANGED
@@ -41,15 +41,26 @@ Launches interactive setup menu.
41
41
  ```bash
42
42
  uc-dev setup
43
43
  ```
44
+
45
+ if you fire `uc-dev setup` in blank directory than it will ask you project name and
46
+ will create the initial startup project for you. :-)
47
+
48
+ OR
49
+
50
+ will show
44
51
  📋 MAIN MENU
45
52
  ```bash
46
53
  --M A I N - M E N U-----------
47
- P = Parameters
48
- B = Build Designers
54
+ P = Perameters
55
+ B = Build Designers and Resource File
49
56
  G = Generate
57
+ D = Dependancy
58
+ S = Quick Startup
50
59
  Q = Quit
51
60
  What to Do Now ? (q):
52
61
  ```
62
+ *note (`Quit` not work in some menus)
63
+
53
64
  ### 🔹 P = Parameters
54
65
  Configure project directories and related settings:
55
66
  src directory
@@ -59,9 +70,10 @@ designer directory
59
70
  other setup-related paths
60
71
  These values are later used when generating files.
61
72
 
62
- ### 🔹 B = Build Designers
63
-
73
+ ### 🔹 B = Build Designers and Resource File
64
74
  Shortcut for: `uc-dev build`
75
+
76
+
65
77
  ### 🔹 G = Generate
66
78
  Opens Generate Submenu
67
79
  ```bash
package/out/cli.js CHANGED
@@ -103,15 +103,15 @@ function GetProject(_path, projectsArray, url4) {
103
103
  callerFilePath = correctpath(callerFilePath);
104
104
  return projectsArray.find((proj) => callerFilePath.startsWith(proj.projectPath));
105
105
  }
106
- function GetPackage(projectdir, path7, fs3) {
106
+ function GetPackage(projectdir, path7, fs4) {
107
107
  let package_file_path = path7.join(projectdir, "package.json");
108
- if (fs3.existsSync(package_file_path)) {
109
- return JSON.parse(fs3.readFileSync(package_file_path, "binary"));
108
+ if (fs4.existsSync(package_file_path)) {
109
+ return JSON.parse(fs4.readFileSync(package_file_path, "binary"));
110
110
  }
111
111
  return void 0;
112
112
  }
113
- function GetProjectName(projectdir, path7, fs3) {
114
- let packageContent = GetPackage(projectdir, path7, fs3);
113
+ function GetProjectName(projectdir, path7, fs4) {
114
+ let packageContent = GetPackage(projectdir, path7, fs4);
115
115
  if (packageContent != void 0)
116
116
  return packageContent.name;
117
117
  }
@@ -715,8 +715,8 @@ var ucUtil = class _ucUtil {
715
715
  };
716
716
 
717
717
  // src/utils/cliMain.ts
718
- import { existsSync as existsSync12, readFileSync as readFileSync7 } from "fs";
719
- import path6, { join as join15 } from "path";
718
+ import { existsSync as existsSync13, readFileSync as readFileSync7 } from "fs";
719
+ import path6, { join as join16 } from "path";
720
720
 
721
721
  // src/utils/cliDependancyChecker.ts
722
722
  import { spawn } from "node:child_process";
@@ -1384,10 +1384,10 @@ function ask(question, def) {
1384
1384
  output: process.stdout
1385
1385
  });
1386
1386
  const hint = def ? ` (${def})` : "";
1387
- return new Promise((resolve13) => {
1387
+ return new Promise((resolve14) => {
1388
1388
  rl.question(`${question}${hint}: `, (ans) => {
1389
1389
  rl.close();
1390
- resolve13(ans.trim() || def || "");
1390
+ resolve14(ans.trim() || def || "");
1391
1391
  });
1392
1392
  });
1393
1393
  }
@@ -1455,13 +1455,13 @@ var cliDependancyChecker = class {
1455
1455
  const args2 = [...baseArgs, ...pkgs];
1456
1456
  console.log("Installing:", pkgs.join(", "));
1457
1457
  console.log(">", pm, args2.join(" "));
1458
- return new Promise((resolve13, reject) => {
1458
+ return new Promise((resolve14, reject) => {
1459
1459
  const child = spawn(pm, args2, {
1460
1460
  stdio: "inherit",
1461
1461
  shell: true
1462
1462
  });
1463
1463
  child.on("close", (code) => {
1464
- if (code === 0) resolve13();
1464
+ if (code === 0) resolve14();
1465
1465
  else reject(new Error(`Install failed with code ${code}`));
1466
1466
  });
1467
1467
  child.on("error", reject);
@@ -7323,11 +7323,8 @@ var BuildDesigner = class {
7323
7323
  htmlCode = this.common0(_row);
7324
7324
  if (htmlCode == void 0) return void 0;
7325
7325
  else if (htmlCode.trim() == "") {
7326
- htmlCode = `<WRAPPER x-caption="${finfo.name}">
7327
- <UCWINFRAME x-name="winFrame1" x-from="uc-runtime/controls/ucWinFrame.uc.html">
7328
-
7329
- </UCWINFRAME>
7330
- </WRAPPER>`;
7326
+ htmlCode = `<WRAPPER x-caption="${finfo.name}"></WRAPPER>`;
7327
+ writeFileSync3(finfo.allPathOf[pref.srcDec].html, htmlCode, "utf8");
7331
7328
  }
7332
7329
  if (!existsSync10(finfo.allPathOf[pref.srcDec].scss)) {
7333
7330
  writeFileSync3(finfo.allPathOf[pref.srcDec].scss, `&{
@@ -7974,6 +7971,27 @@ var cliSurveys = class {
7974
7971
  constructor(main2) {
7975
7972
  this.main = main2;
7976
7973
  }
7974
+ setDefault() {
7975
+ const cfg = this.main.config;
7976
+ const cli = cfg.cli;
7977
+ cli.useElectron = true;
7978
+ cli.useTypeScript = true;
7979
+ cli.srcDir = "src";
7980
+ cli.outDir = "out";
7981
+ cli.designerDir = "designerFiles";
7982
+ cli.codeFileExt = ".ts";
7983
+ cli.outputFileExt = ".js";
7984
+ cli.mainProcessFilePath = `main/index${cli.codeFileExt}`;
7985
+ cli.preloadScriptFilePath = `preload/index${cli.codeFileExt}`;
7986
+ cli.baseCodePath = `renderer/index${cli.codeFileExt}`;
7987
+ cli.devtools = true;
7988
+ cli.removeMenu = true;
7989
+ cli.baseCssPath = "styles.scss";
7990
+ cli.baseHtmlPath = "index.html";
7991
+ cli.ResourceStorageFile = `Resources${cli.codeFileExt}`;
7992
+ cli.filesToMove = ".jpg,.png,.html,.scss,.ico,.svg";
7993
+ cli.ignoreInBuild = `node_modules;.git;.vscode;${cli.outDir}`;
7994
+ }
7977
7995
  async inquiry() {
7978
7996
  const projectDir = this.main.projectDir;
7979
7997
  const cfg = this.main.config;
@@ -7997,7 +8015,6 @@ var cliSurveys = class {
7997
8015
  }
7998
8016
  cli.baseCssPath = await ask(`base css filepath (in project root) :`, cli.baseCssPath ?? "styles.scss");
7999
8017
  cli.baseHtmlPath = await ask(`base html filepath (in project root):`, cli.baseHtmlPath ?? "index.html");
8000
- const renderDir = dirname9(cli.baseCodePath);
8001
8018
  cli.ResourceStorageFile = await ask(
8002
8019
  `ResourceFile Path (in ${cli.srcDir} directory): `,
8003
8020
  cli.ResourceStorageFile ?? correctpath(join12(cli.designerDir, `Resources${cli.codeFileExt}`))
@@ -8085,18 +8102,26 @@ function _runTemplate_x(rel, row) {
8085
8102
  }
8086
8103
 
8087
8104
  // src/utils/inquiry/cli_menu_generate.ts
8088
- async function cli_menu_generate(main2, back_menu_callback = async () => {
8089
- }) {
8105
+ async function cli_menu_generate(back_menu_callback = async () => {
8106
+ }, defCommand) {
8090
8107
  let hasAddedSampleForm = false;
8091
- const cmd2 = await makeMenu("G E N E R A T E", `
8092
- E = Electron Stuffs
8093
- S = Sample Style1
8094
- V = '.vscode/settings.json' file
8095
- T = 'tsconfig.json' for project
8096
- A = Do All Above
8097
- Q = Quit
8098
- `, "q");
8099
- await _select(cmd2);
8108
+ const main2 = cliMain.ref;
8109
+ let cmdlist = "";
8110
+ if (defCommand == void 0) {
8111
+ cmdlist = await makeMenu("G E N E R A T E", `
8112
+ E = Electron Stuffs
8113
+ S = Sample Style1
8114
+ V = '.vscode/settings.json' file
8115
+ T = 'tsconfig.json' for project
8116
+ A = Do All Above
8117
+ Q = Quit
8118
+ `, "q");
8119
+ } else {
8120
+ cmdlist = defCommand;
8121
+ }
8122
+ for (let index = 0; index < cmdlist.length; index++) {
8123
+ await _select(cmdlist[index]);
8124
+ }
8100
8125
  async function _select(selectedOption) {
8101
8126
  switch (selectedOption.toLowerCase().trim()) {
8102
8127
  case "a":
@@ -8107,9 +8132,7 @@ async function cli_menu_generate(main2, back_menu_callback = async () => {
8107
8132
  await _select("e");
8108
8133
  await main2.startBuild();
8109
8134
  break;
8110
- case "p":
8111
- await main2._cliSurveys.inquiry();
8112
- break;
8135
+ //case 'p': await main._cliSurveys.inquiry(); break;
8113
8136
  case "s":
8114
8137
  await cli_sample_style1(main2);
8115
8138
  hasAddedSampleForm = true;
@@ -8128,7 +8151,6 @@ async function cli_menu_generate(main2, back_menu_callback = async () => {
8128
8151
  }),
8129
8152
  main2.cliOptions
8130
8153
  );
8131
- await cli_menu_generate(main2);
8132
8154
  break;
8133
8155
  case "v":
8134
8156
  await writeFileSafely(
@@ -8141,7 +8163,6 @@ async function cli_menu_generate(main2, back_menu_callback = async () => {
8141
8163
  await back_menu_callback(main2);
8142
8164
  return;
8143
8165
  }
8144
- await cli_menu_generate(main2);
8145
8166
  }
8146
8167
  }
8147
8168
  function _runTemplate5(rel, options) {
@@ -8149,18 +8170,24 @@ function _runTemplate5(rel, options) {
8149
8170
  }
8150
8171
 
8151
8172
  // src/utils/inquiry/cli_menu_dependancy.ts
8152
- async function cli_menu_dependancy(main2, back_menu_callback = async () => {
8153
- }) {
8173
+ async function cli_menu_dependancy(back_menu_callback = async () => {
8174
+ }, defCommand) {
8154
8175
  let hasAddedSampleForm = false;
8155
- const cmd2 = await makeMenu("D E P E N D A N C Y", `
8156
- E = Electron
8157
- T = Type Script
8158
- R = rimraf
8159
- U = uc-runtime
8160
- D = uc-dev
8161
- C = uc-controls
8162
- `, "etrudc");
8163
- await _select(cmd2);
8176
+ const main2 = cliMain.ref;
8177
+ let cmdlist = "";
8178
+ if (defCommand == void 0) {
8179
+ cmdlist = await makeMenu("D E P E N D A N C Y", `
8180
+ E = Electron
8181
+ T = Type Script
8182
+ R = rimraf
8183
+ U = uc-runtime
8184
+ D = uc-dev
8185
+ C = uc-controls
8186
+ `, "etruc");
8187
+ } else {
8188
+ cmdlist = defCommand;
8189
+ }
8190
+ await _select(cmdlist);
8164
8191
  async function _select(selectedOption) {
8165
8192
  const packages = [];
8166
8193
  if (selectedOption.includes("e")) packages.push("electron");
@@ -8175,6 +8202,43 @@ async function cli_menu_dependancy(main2, back_menu_callback = async () => {
8175
8202
  }
8176
8203
  }
8177
8204
 
8205
+ // src/utils/inquiry/cli_menu_quickStartup.ts
8206
+ import { existsSync as existsSync12 } from "node:fs";
8207
+ import { dirname as dirname12, join as join15, resolve as resolve13 } from "node:path";
8208
+ import { fileURLToPath as fileURLToPath13 } from "node:url";
8209
+ async function makesure_package_exist() {
8210
+ const projDir = process.cwd();
8211
+ const ppath = join15(projDir, "package.json");
8212
+ if (!existsSync12(ppath)) {
8213
+ const projectName = await ask(`Project Name : `, "sample-project");
8214
+ await writeFileSafely(
8215
+ resolve13("package.json"),
8216
+ _runTemplate6("templates/json.package", {
8217
+ projectName
8218
+ }),
8219
+ {}
8220
+ );
8221
+ cliMain.ref.projectDir = projDir;
8222
+ }
8223
+ }
8224
+ async function cli_menu_quickStartup(main2, back_menu_callback = async () => {
8225
+ }) {
8226
+ let hasAddedSampleForm = false;
8227
+ const cfg = main2.config;
8228
+ await makesure_package_exist();
8229
+ cliMain.ref._cliSurveys.setDefault();
8230
+ await main2._cliUcconfigInq.generateUcConfig();
8231
+ await cli_menu_generate(cli_menu_MainMenu, "vtse");
8232
+ await cli_menu_dependancy(cli_menu_MainMenu, "etruc");
8233
+ await main2.startBuild();
8234
+ console.log(`TO BUILD AND RUN PROJECT
8235
+ npm run rebuild:start`);
8236
+ process.exit();
8237
+ }
8238
+ function _runTemplate6(rel, options) {
8239
+ return runTemplate(join15(dirname12(fileURLToPath13(import.meta.url)), "utils/inquiry", rel), import.meta.url, options);
8240
+ }
8241
+
8178
8242
  // src/utils/inquiry/cli_menu_MainMenu.ts
8179
8243
  async function cli_menu_MainMenu(main2, back_menu_callback = async () => {
8180
8244
  }) {
@@ -8183,6 +8247,7 @@ async function cli_menu_MainMenu(main2, back_menu_callback = async () => {
8183
8247
  B = Build Designers and Resource File
8184
8248
  G = Generate
8185
8249
  D = Dependancy
8250
+ S = Quick Startup
8186
8251
  Q = Quit
8187
8252
  `, "q");
8188
8253
  switch (cmd2.toLowerCase().trim()) {
@@ -8190,14 +8255,18 @@ async function cli_menu_MainMenu(main2, back_menu_callback = async () => {
8190
8255
  await main2.startBuild();
8191
8256
  break;
8192
8257
  case "d":
8193
- await cli_menu_dependancy(main2, cli_menu_MainMenu);
8258
+ await cli_menu_dependancy(cli_menu_MainMenu);
8194
8259
  break;
8195
8260
  case "p":
8196
8261
  await main2._cliSurveys.inquiry();
8197
8262
  await cli_menu_MainMenu(main2);
8198
8263
  break;
8199
8264
  case "g":
8200
- await cli_menu_generate(main2, cli_menu_MainMenu);
8265
+ await cli_menu_generate(cli_menu_MainMenu);
8266
+ break;
8267
+ case "s":
8268
+ await cli_menu_quickStartup(main2, cli_menu_MainMenu);
8269
+ await cli_menu_MainMenu(main2);
8201
8270
  break;
8202
8271
  case "q":
8203
8272
  return;
@@ -8211,6 +8280,7 @@ var cliOptions = class {
8211
8280
  force = false;
8212
8281
  };
8213
8282
  var cliMain = class {
8283
+ static ref;
8214
8284
  cliOptions = new cliOptions();
8215
8285
  config = new UserUCConfig();
8216
8286
  menu;
@@ -8239,8 +8309,8 @@ var cliMain = class {
8239
8309
  }
8240
8310
  readConfig = async () => {
8241
8311
  try {
8242
- const cfgPath = join15(this.projectDir, "ucconfig.js");
8243
- if (existsSync12(cfgPath)) {
8312
+ const cfgPath = join16(this.projectDir, "ucconfig.js");
8313
+ if (existsSync13(cfgPath)) {
8244
8314
  this.config = await ImportUserConfig(cfgPath);
8245
8315
  if (this.config != void 0) {
8246
8316
  const x = extractPathConfig(this.config);
@@ -8338,7 +8408,11 @@ Sub Directory Path (inside source directory) : `, fdec.subDirPath ?? "");
8338
8408
  async checkBasicNeed(inquiry = true) {
8339
8409
  this.projectDir = getProjectDir(process.cwd());
8340
8410
  if (this.projectDir == null) {
8341
- throw Error("NO PROJECT FOUND");
8411
+ await makesure_package_exist();
8412
+ this.projectDir = getProjectDir(process.cwd());
8413
+ if (this.projectDir == null) {
8414
+ throw Error("NO PROJECT FOUND");
8415
+ }
8342
8416
  }
8343
8417
  this.dependancyChecker = new cliDependancyChecker(this);
8344
8418
  await this.updateDependancies();
@@ -8356,7 +8430,7 @@ Sub Directory Path (inside source directory) : `, fdec.subDirPath ?? "");
8356
8430
  }
8357
8431
  listProjectDependencies() {
8358
8432
  const pkgPath = path6.resolve(this.projectDir, "package.json");
8359
- if (!existsSync12(pkgPath)) {
8433
+ if (!existsSync13(pkgPath)) {
8360
8434
  throw new Error("package.json not found in project directory");
8361
8435
  }
8362
8436
  const pkgJson = JSON.parse(
@@ -8379,9 +8453,11 @@ Sub Directory Path (inside source directory) : `, fdec.subDirPath ?? "");
8379
8453
  };
8380
8454
 
8381
8455
  // src/cli.ts
8456
+ import fs3 from "fs";
8382
8457
  var args = process.argv.slice(2);
8383
8458
  var cmd = args[0];
8384
8459
  var main = new cliMain();
8460
+ cliMain.ref = main;
8385
8461
  await main.readConfig();
8386
8462
  var copt = main.cliOptions;
8387
8463
  copt.force = args.includes("--force");
@@ -8395,8 +8471,14 @@ switch (cmd) {
8395
8471
  await main.startBuild();
8396
8472
  break;
8397
8473
  case "setup":
8398
- if (!ignreq)
8399
- await main.checkBasicNeed(false);
8474
+ if (isDirEmpty(main.projectDir)) {
8475
+ if (!ignreq)
8476
+ await main.checkBasicNeed(false);
8477
+ await cli_menu_quickStartup(main, cli_menu_MainMenu);
8478
+ } else {
8479
+ if (!ignreq)
8480
+ await main.checkBasicNeed(false);
8481
+ }
8400
8482
  await cli_menu_MainMenu(main);
8401
8483
  break;
8402
8484
  case "--help":
@@ -8409,3 +8491,7 @@ Commands:
8409
8491
  `);
8410
8492
  break;
8411
8493
  }
8494
+ function isDirEmpty(path7) {
8495
+ const files = fs3.readdirSync(path7);
8496
+ return files.length === 0;
8497
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "name": "<?= projectName ?>",
3
+ "version": "1.0.0",
4
+ "description": "",
5
+ "license": "ISC",
6
+ "author": "",
7
+ "type": "module",
8
+ "main": "out/main/index.js",
9
+ "scripts": {
10
+ "clean": "rimraf out",
11
+ "start": "electron .",
12
+ "build:dts": "tsc --emitDeclarationOnly",
13
+ "build": "tsc",
14
+ "rebuild": "npm run clean && npm run build && npm run build:dts",
15
+ "rebuild:start": "npm run rebuild && npm run start"
16
+ }
17
+ }
package/package.json CHANGED
@@ -13,7 +13,7 @@
13
13
  "designer-build",
14
14
  "electron-tools"
15
15
  ],
16
- "version": "1.0.7",
16
+ "version": "1.0.8",
17
17
  "description": "Electron CLI project builder for uc-runtime apps",
18
18
  "license": "ISC",
19
19
  "author": "AP",