uc-dev 1.0.6 → 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 =
|
|
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,
|
|
106
|
+
function GetPackage(projectdir, path7, fs4) {
|
|
107
107
|
let package_file_path = path7.join(projectdir, "package.json");
|
|
108
|
-
if (
|
|
109
|
-
return JSON.parse(
|
|
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,
|
|
114
|
-
let packageContent = GetPackage(projectdir, path7,
|
|
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
|
|
719
|
-
import path6, { join as
|
|
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((
|
|
1387
|
+
return new Promise((resolve14) => {
|
|
1388
1388
|
rl.question(`${question}${hint}: `, (ans) => {
|
|
1389
1389
|
rl.close();
|
|
1390
|
-
|
|
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((
|
|
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)
|
|
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
|
-
|
|
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(
|
|
8089
|
-
}) {
|
|
8105
|
+
async function cli_menu_generate(back_menu_callback = async () => {
|
|
8106
|
+
}, defCommand) {
|
|
8090
8107
|
let hasAddedSampleForm = false;
|
|
8091
|
-
const
|
|
8092
|
-
|
|
8093
|
-
|
|
8094
|
-
|
|
8095
|
-
|
|
8096
|
-
|
|
8097
|
-
|
|
8098
|
-
|
|
8099
|
-
|
|
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
|
|
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(
|
|
8153
|
-
}) {
|
|
8173
|
+
async function cli_menu_dependancy(back_menu_callback = async () => {
|
|
8174
|
+
}, defCommand) {
|
|
8154
8175
|
let hasAddedSampleForm = false;
|
|
8155
|
-
const
|
|
8156
|
-
|
|
8157
|
-
|
|
8158
|
-
|
|
8159
|
-
|
|
8160
|
-
|
|
8161
|
-
|
|
8162
|
-
|
|
8163
|
-
|
|
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(
|
|
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(
|
|
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 =
|
|
8243
|
-
if (
|
|
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
|
-
|
|
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 (!
|
|
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 (
|
|
8399
|
-
|
|
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
|
+
}
|
|
@@ -9,10 +9,9 @@
|
|
|
9
9
|
"compileOnSave": true,
|
|
10
10
|
"compilerOptions": {
|
|
11
11
|
"module": "ESNext",
|
|
12
|
-
"moduleResolution": "
|
|
12
|
+
"moduleResolution": "bundler",
|
|
13
13
|
"target": "ESNext",
|
|
14
14
|
"strict": true,
|
|
15
|
-
"baseUrl": ".",
|
|
16
15
|
"outDir": "./<?= outDir ?>",
|
|
17
16
|
"rootDir": "./<?= srcDir ?>",
|
|
18
17
|
"declaration": true,
|