@nu-art/build-and-install 0.203.117 → 0.203.119
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/core/package/generate.js +1 -1
- package/core/params/params.d.ts +3 -2
- package/core/params/params.js +9 -1
- package/core/types/configs/package-json.d.ts +2 -2
- package/core/types/project-config.d.ts +1 -1
- package/logic/ProjectManager.d.ts +5 -5
- package/logic/ProjectManager.js +100 -97
- package/package.json +3 -3
- package/phases/phases.js +2 -1
package/core/package/generate.js
CHANGED
|
@@ -60,7 +60,7 @@ function createFirebaseFunctionsJSON(pkg, env) {
|
|
|
60
60
|
}
|
|
61
61
|
return {
|
|
62
62
|
functions: {
|
|
63
|
-
source: pkg.output.replace(pkg.path
|
|
63
|
+
source: pkg.output.replace(`${pkg.path}/`, ''),
|
|
64
64
|
ignore: (_b = pkg.envConfig.functions) === null || _b === void 0 ? void 0 : _b.ignore
|
|
65
65
|
}
|
|
66
66
|
};
|
package/core/params/params.d.ts
CHANGED
|
@@ -20,6 +20,7 @@ export declare const BaiParam_Link: BaseCliParam<'link', boolean>;
|
|
|
20
20
|
export declare const BaiParam_GenerateDocs: BaseCliParam<'generateDocs', boolean>;
|
|
21
21
|
export declare const BaiParam_LinkOnly: BaseCliParam<'linkOnly', boolean>;
|
|
22
22
|
export declare const BaiParam_NoBuild: BaseCliParam<'noBuild', boolean>;
|
|
23
|
+
export declare const BaiParam_DryRun: BaseCliParam<'dryRun', boolean>;
|
|
23
24
|
export declare const BaiParam_ThunderstormHome: BaseCliParam<'thunderstormHome', boolean>;
|
|
24
25
|
export declare const BaiParam_NoThunderstorm: BaseCliParam<'noThunderstorm', boolean>;
|
|
25
26
|
export declare const BaiParam_Lint: BaseCliParam<'lint', boolean>;
|
|
@@ -46,5 +47,5 @@ export declare const BaiParam_Log: BaseCliParam<'setLogLevel', string>;
|
|
|
46
47
|
export declare const BaiParam_QuickDeploy: BaseCliParam<'quickDeploy', boolean>;
|
|
47
48
|
export declare const BaiParam_Publish: BaseCliParam<'publish', string>;
|
|
48
49
|
export declare const BaiParam_QuickPublish: BaseCliParam<'quickPublish', boolean>;
|
|
49
|
-
export declare const AllBaiParams: (BaseCliParam<"help", boolean> | BaseCliParam<"dependencyTree", boolean> | BaseCliParam<"checkCyclicImports", boolean> | BaseCliParam<"printEnv", boolean> | BaseCliParam<"purge", boolean> | BaseCliParam<"clean", boolean> | BaseCliParam<"continue", boolean> | BaseCliParam<"usePackage", string> | BaseCliParam<"projectLibs", boolean> | BaseCliParam<"setEnv", string> | BaseCliParam<"fallbackEnv", string> | BaseCliParam<"setup", boolean> | BaseCliParam<"install", boolean> | BaseCliParam<"installPackages", boolean> | BaseCliParam<"installGlobals", boolean> | BaseCliParam<"generate", boolean> | BaseCliParam<"cleanEnv", boolean> | BaseCliParam<"link", boolean> | BaseCliParam<"generateDocs", boolean> | BaseCliParam<"linkOnly", boolean> | BaseCliParam<"noBuild", boolean> | BaseCliParam<"thunderstormHome", boolean> | BaseCliParam<"noThunderstorm", boolean> | BaseCliParam<"lint", boolean> | BaseCliParam<"outputDir", string> | BaseCliParam<"checkImports", boolean> | BaseCliParam<"watch", boolean> | BaseCliParam<"test", string> | BaseCliParam<"account", string> | BaseCliParam<"outputTestDir", string> | BaseCliParam<"launch", string> | BaseCliParam<"fileToLaunch", string> | BaseCliParam<"launchFrontend", boolean> | BaseCliParam<"launchBackend", boolean> | BaseCliParam<"debugBackend", boolean> | BaseCliParam<"deploy", string> | BaseCliParam<"deployBackend", boolean> | BaseCliParam<"deployFrontend", boolean> | BaseCliParam<"setVersion", string> | BaseCliParam<"noGit", boolean> | BaseCliParam<"debugTranspiler", boolean> | BaseCliParam<"debug", boolean> | BaseCliParam<"debugger", boolean> | BaseCliParam<"setLogLevel", string> | BaseCliParam<"quickDeploy", boolean> | BaseCliParam<"publish", string> | BaseCliParam<"quickPublish", boolean>)[];
|
|
50
|
-
export declare const RuntimeParams: import("@nu-art/commando/cli/cli-params").CliParams<(BaseCliParam<"help", boolean> | BaseCliParam<"dependencyTree", boolean> | BaseCliParam<"checkCyclicImports", boolean> | BaseCliParam<"printEnv", boolean> | BaseCliParam<"purge", boolean> | BaseCliParam<"clean", boolean> | BaseCliParam<"continue", boolean> | BaseCliParam<"usePackage", string> | BaseCliParam<"projectLibs", boolean> | BaseCliParam<"setEnv", string> | BaseCliParam<"fallbackEnv", string> | BaseCliParam<"setup", boolean> | BaseCliParam<"install", boolean> | BaseCliParam<"installPackages", boolean> | BaseCliParam<"installGlobals", boolean> | BaseCliParam<"generate", boolean> | BaseCliParam<"cleanEnv", boolean> | BaseCliParam<"link", boolean> | BaseCliParam<"generateDocs", boolean> | BaseCliParam<"linkOnly", boolean> | BaseCliParam<"noBuild", boolean> | BaseCliParam<"thunderstormHome", boolean> | BaseCliParam<"noThunderstorm", boolean> | BaseCliParam<"lint", boolean> | BaseCliParam<"outputDir", string> | BaseCliParam<"checkImports", boolean> | BaseCliParam<"watch", boolean> | BaseCliParam<"test", string> | BaseCliParam<"account", string> | BaseCliParam<"outputTestDir", string> | BaseCliParam<"launch", string> | BaseCliParam<"fileToLaunch", string> | BaseCliParam<"launchFrontend", boolean> | BaseCliParam<"launchBackend", boolean> | BaseCliParam<"debugBackend", boolean> | BaseCliParam<"deploy", string> | BaseCliParam<"deployBackend", boolean> | BaseCliParam<"deployFrontend", boolean> | BaseCliParam<"setVersion", string> | BaseCliParam<"noGit", boolean> | BaseCliParam<"debugTranspiler", boolean> | BaseCliParam<"debug", boolean> | BaseCliParam<"debugger", boolean> | BaseCliParam<"setLogLevel", string> | BaseCliParam<"quickDeploy", boolean> | BaseCliParam<"publish", string> | BaseCliParam<"quickPublish", boolean>)[]>;
|
|
50
|
+
export declare const AllBaiParams: (BaseCliParam<"help", boolean> | BaseCliParam<"dependencyTree", boolean> | BaseCliParam<"checkCyclicImports", boolean> | BaseCliParam<"printEnv", boolean> | BaseCliParam<"purge", boolean> | BaseCliParam<"clean", boolean> | BaseCliParam<"continue", boolean> | BaseCliParam<"usePackage", string> | BaseCliParam<"projectLibs", boolean> | BaseCliParam<"setEnv", string> | BaseCliParam<"fallbackEnv", string> | BaseCliParam<"setup", boolean> | BaseCliParam<"install", boolean> | BaseCliParam<"installPackages", boolean> | BaseCliParam<"installGlobals", boolean> | BaseCliParam<"generate", boolean> | BaseCliParam<"cleanEnv", boolean> | BaseCliParam<"link", boolean> | BaseCliParam<"generateDocs", boolean> | BaseCliParam<"linkOnly", boolean> | BaseCliParam<"noBuild", boolean> | BaseCliParam<"dryRun", boolean> | BaseCliParam<"thunderstormHome", boolean> | BaseCliParam<"noThunderstorm", boolean> | BaseCliParam<"lint", boolean> | BaseCliParam<"outputDir", string> | BaseCliParam<"checkImports", boolean> | BaseCliParam<"watch", boolean> | BaseCliParam<"test", string> | BaseCliParam<"account", string> | BaseCliParam<"outputTestDir", string> | BaseCliParam<"launch", string> | BaseCliParam<"fileToLaunch", string> | BaseCliParam<"launchFrontend", boolean> | BaseCliParam<"launchBackend", boolean> | BaseCliParam<"debugBackend", boolean> | BaseCliParam<"deploy", string> | BaseCliParam<"deployBackend", boolean> | BaseCliParam<"deployFrontend", boolean> | BaseCliParam<"setVersion", string> | BaseCliParam<"noGit", boolean> | BaseCliParam<"debugTranspiler", boolean> | BaseCliParam<"debug", boolean> | BaseCliParam<"debugger", boolean> | BaseCliParam<"setLogLevel", string> | BaseCliParam<"quickDeploy", boolean> | BaseCliParam<"publish", string> | BaseCliParam<"quickPublish", boolean>)[];
|
|
51
|
+
export declare const RuntimeParams: import("@nu-art/commando/cli/cli-params").CliParams<(BaseCliParam<"help", boolean> | BaseCliParam<"dependencyTree", boolean> | BaseCliParam<"checkCyclicImports", boolean> | BaseCliParam<"printEnv", boolean> | BaseCliParam<"purge", boolean> | BaseCliParam<"clean", boolean> | BaseCliParam<"continue", boolean> | BaseCliParam<"usePackage", string> | BaseCliParam<"projectLibs", boolean> | BaseCliParam<"setEnv", string> | BaseCliParam<"fallbackEnv", string> | BaseCliParam<"setup", boolean> | BaseCliParam<"install", boolean> | BaseCliParam<"installPackages", boolean> | BaseCliParam<"installGlobals", boolean> | BaseCliParam<"generate", boolean> | BaseCliParam<"cleanEnv", boolean> | BaseCliParam<"link", boolean> | BaseCliParam<"generateDocs", boolean> | BaseCliParam<"linkOnly", boolean> | BaseCliParam<"noBuild", boolean> | BaseCliParam<"dryRun", boolean> | BaseCliParam<"thunderstormHome", boolean> | BaseCliParam<"noThunderstorm", boolean> | BaseCliParam<"lint", boolean> | BaseCliParam<"outputDir", string> | BaseCliParam<"checkImports", boolean> | BaseCliParam<"watch", boolean> | BaseCliParam<"test", string> | BaseCliParam<"account", string> | BaseCliParam<"outputTestDir", string> | BaseCliParam<"launch", string> | BaseCliParam<"fileToLaunch", string> | BaseCliParam<"launchFrontend", boolean> | BaseCliParam<"launchBackend", boolean> | BaseCliParam<"debugBackend", boolean> | BaseCliParam<"deploy", string> | BaseCliParam<"deployBackend", boolean> | BaseCliParam<"deployFrontend", boolean> | BaseCliParam<"setVersion", string> | BaseCliParam<"noGit", boolean> | BaseCliParam<"debugTranspiler", boolean> | BaseCliParam<"debug", boolean> | BaseCliParam<"debugger", boolean> | BaseCliParam<"setLogLevel", string> | BaseCliParam<"quickDeploy", boolean> | BaseCliParam<"publish", string> | BaseCliParam<"quickPublish", boolean>)[]>;
|
package/core/params/params.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RuntimeParams = exports.AllBaiParams = exports.BaiParam_QuickPublish = exports.BaiParam_Publish = exports.BaiParam_QuickDeploy = exports.BaiParam_Log = exports.BaiParam_Debugger = exports.BaiParam_Debug = exports.BaiParam_DebugTranspiler = exports.BaiParam_NoGit = exports.BaiParam_SetVersion = exports.BaiParam_DeployFrontend = exports.BaiParam_DeployBackend = exports.BaiParam_Deploy = exports.BaiParam_DebugBackend = exports.BaiParam_LaunchBackend = exports.BaiParam_LaunchFrontend = exports.BaiParam_FileToLaunch = exports.BaiParam_Launch = exports.BaiParam_OutputTestDir = exports.BaiParam_Account = exports.BaiParam_Test = exports.BaiParam_Watch = exports.BaiParam_CheckImports = exports.BaiParam_OutputDir = exports.BaiParam_Lint = exports.BaiParam_NoThunderstorm = exports.BaiParam_ThunderstormHome = exports.BaiParam_NoBuild = exports.BaiParam_LinkOnly = exports.BaiParam_GenerateDocs = exports.BaiParam_Link = exports.BaiParam_CleanEnv = exports.BaiParam_Generate = exports.BaiParam_InstallGlobals = exports.BaiParam_InstallPackages = exports.BaiParam_Install = exports.BaiParam_Setup = exports.BaiParam_FallbackEnv = exports.BaiParam_SetEnv = exports.BaiParam_ProjectLibs = exports.BaiParam_UsePackage = exports.BaiParam_continue = exports.BaiParam_Clean = exports.BaiParam_Purge = exports.BaiParam_PrintEnv = exports.BaiParam_CheckCyclicImports = exports.BaiParam_DependencyTree = exports.BaiParam_Help = void 0;
|
|
3
|
+
exports.RuntimeParams = exports.AllBaiParams = exports.BaiParam_QuickPublish = exports.BaiParam_Publish = exports.BaiParam_QuickDeploy = exports.BaiParam_Log = exports.BaiParam_Debugger = exports.BaiParam_Debug = exports.BaiParam_DebugTranspiler = exports.BaiParam_NoGit = exports.BaiParam_SetVersion = exports.BaiParam_DeployFrontend = exports.BaiParam_DeployBackend = exports.BaiParam_Deploy = exports.BaiParam_DebugBackend = exports.BaiParam_LaunchBackend = exports.BaiParam_LaunchFrontend = exports.BaiParam_FileToLaunch = exports.BaiParam_Launch = exports.BaiParam_OutputTestDir = exports.BaiParam_Account = exports.BaiParam_Test = exports.BaiParam_Watch = exports.BaiParam_CheckImports = exports.BaiParam_OutputDir = exports.BaiParam_Lint = exports.BaiParam_NoThunderstorm = exports.BaiParam_ThunderstormHome = exports.BaiParam_DryRun = exports.BaiParam_NoBuild = exports.BaiParam_LinkOnly = exports.BaiParam_GenerateDocs = exports.BaiParam_Link = exports.BaiParam_CleanEnv = exports.BaiParam_Generate = exports.BaiParam_InstallGlobals = exports.BaiParam_InstallPackages = exports.BaiParam_Install = exports.BaiParam_Setup = exports.BaiParam_FallbackEnv = exports.BaiParam_SetEnv = exports.BaiParam_ProjectLibs = exports.BaiParam_UsePackage = exports.BaiParam_continue = exports.BaiParam_Clean = exports.BaiParam_Purge = exports.BaiParam_PrintEnv = exports.BaiParam_CheckCyclicImports = exports.BaiParam_DependencyTree = exports.BaiParam_Help = void 0;
|
|
4
4
|
const cli_params_1 = require("@nu-art/commando/cli/cli-params");
|
|
5
5
|
exports.BaiParam_Help = {
|
|
6
6
|
keys: ['--help', '-h'],
|
|
@@ -150,6 +150,13 @@ exports.BaiParam_NoBuild = {
|
|
|
150
150
|
type: 'boolean',
|
|
151
151
|
description: 'Skip the build and link steps'
|
|
152
152
|
};
|
|
153
|
+
exports.BaiParam_DryRun = {
|
|
154
|
+
keys: ['--dry-run', '-dry'],
|
|
155
|
+
keyName: 'dryRun',
|
|
156
|
+
group: 'Other',
|
|
157
|
+
type: 'boolean',
|
|
158
|
+
description: 'Do not perform any phase impl, only log the process'
|
|
159
|
+
};
|
|
153
160
|
exports.BaiParam_ThunderstormHome = {
|
|
154
161
|
keys: ['--thunderstorm-home', '-th'],
|
|
155
162
|
keyName: 'thunderstormHome',
|
|
@@ -359,6 +366,7 @@ exports.AllBaiParams = [
|
|
|
359
366
|
exports.BaiParam_GenerateDocs,
|
|
360
367
|
exports.BaiParam_LinkOnly,
|
|
361
368
|
exports.BaiParam_NoBuild,
|
|
369
|
+
exports.BaiParam_DryRun,
|
|
362
370
|
exports.BaiParam_ThunderstormHome,
|
|
363
371
|
exports.BaiParam_NoThunderstorm,
|
|
364
372
|
exports.BaiParam_Lint,
|
|
@@ -9,8 +9,8 @@ export type PackageJson = JSONVersion & {
|
|
|
9
9
|
};
|
|
10
10
|
'license'?: 'Apache-2.0' | string;
|
|
11
11
|
'author'?: string;
|
|
12
|
-
'main'
|
|
13
|
-
'types'
|
|
12
|
+
'main': string;
|
|
13
|
+
'types': string;
|
|
14
14
|
'scripts'?: StringMap;
|
|
15
15
|
'dependencies'?: StringMap;
|
|
16
16
|
'_moduleAliases'?: StringMap;
|
|
@@ -7,7 +7,7 @@ export type ProjectConfig = {
|
|
|
7
7
|
export type RuntimeProjectConfig = {
|
|
8
8
|
packages: Package[];
|
|
9
9
|
params: StringMap;
|
|
10
|
-
packagesDependency
|
|
10
|
+
packagesDependency: RuntimePackage[][];
|
|
11
11
|
packageMap?: {
|
|
12
12
|
[packageName: string]: RuntimePackage;
|
|
13
13
|
};
|
|
@@ -27,12 +27,12 @@ export type BuildPhase = BuildPhase_Package | BuildPhase_PackageWithOutput | Bui
|
|
|
27
27
|
export declare class ProjectManager extends Logger {
|
|
28
28
|
private phases;
|
|
29
29
|
private config;
|
|
30
|
+
private dryRun;
|
|
31
|
+
private terminate;
|
|
30
32
|
constructor(config: ProjectConfig);
|
|
31
33
|
registerPhase(phase: BuildPhase): void;
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
private getPackagesForPhaseType;
|
|
36
|
-
private runPhase;
|
|
34
|
+
prepare(phases?: BuildPhase[], index?: number): Promise<(() => Promise<void>) | undefined>;
|
|
35
|
+
execute(): Promise<void>;
|
|
36
|
+
executePhase(phaseKey: string): Promise<void>;
|
|
37
37
|
}
|
|
38
38
|
export {};
|
package/logic/ProjectManager.js
CHANGED
|
@@ -1,34 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ProjectManager = exports.PackageBuildPhaseType_Project = exports.PackageBuildPhaseType_PackageWithOutput = exports.PackageBuildPhaseType_Package = void 0;
|
|
4
|
-
const types_1 = require("../core/types");
|
|
5
4
|
const ts_common_1 = require("@nu-art/ts-common");
|
|
5
|
+
const params_1 = require("../core/params/params");
|
|
6
6
|
exports.PackageBuildPhaseType_Package = 'package';
|
|
7
7
|
exports.PackageBuildPhaseType_PackageWithOutput = 'package-with-output';
|
|
8
8
|
exports.PackageBuildPhaseType_Project = 'project';
|
|
9
|
-
const
|
|
9
|
+
const mapToName = (item) => item.name;
|
|
10
|
+
function resolveAllMandatoryPhases(phase) {
|
|
11
|
+
let result = [phase];
|
|
12
|
+
if (phase.mandatoryPhases) {
|
|
13
|
+
for (const childPhase of phase.mandatoryPhases) {
|
|
14
|
+
result = result.concat(resolveAllMandatoryPhases(childPhase));
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
return (0, ts_common_1.filterDuplicates)(result, result => result.name);
|
|
18
|
+
}
|
|
10
19
|
class ProjectManager extends ts_common_1.Logger {
|
|
11
20
|
constructor(config) {
|
|
12
21
|
super();
|
|
13
22
|
this.phases = [];
|
|
14
|
-
this.
|
|
15
|
-
|
|
16
|
-
const allRuntimePackages = [];
|
|
17
|
-
(_a = this.config.packagesDependency) === null || _a === void 0 ? void 0 : _a.forEach(dependency => dependency.forEach(_package => allRuntimePackages.push(_package)));
|
|
18
|
-
switch (phaseType) {
|
|
19
|
-
case exports.PackageBuildPhaseType_Project:
|
|
20
|
-
return [];
|
|
21
|
-
case exports.PackageBuildPhaseType_Package:
|
|
22
|
-
return allRuntimePackages;
|
|
23
|
-
case exports.PackageBuildPhaseType_PackageWithOutput:
|
|
24
|
-
return allRuntimePackages.filter(_package => {
|
|
25
|
-
const packageType = _package.type;
|
|
26
|
-
return types_1.PackageTypesWithOutput.includes(packageType);
|
|
27
|
-
});
|
|
28
|
-
default:
|
|
29
|
-
return allRuntimePackages;
|
|
30
|
-
}
|
|
31
|
-
};
|
|
23
|
+
this.dryRun = params_1.RuntimeParams.dryRun;
|
|
24
|
+
this.terminate = false;
|
|
32
25
|
this.config = config;
|
|
33
26
|
ts_common_1.BeLogged.addClient(ts_common_1.LogClient_Terminal);
|
|
34
27
|
this.setMinLevel(ts_common_1.LogLevel.Verbose);
|
|
@@ -36,90 +29,100 @@ class ProjectManager extends ts_common_1.Logger {
|
|
|
36
29
|
registerPhase(phase) {
|
|
37
30
|
this.phases.push(phase);
|
|
38
31
|
}
|
|
39
|
-
async
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
32
|
+
async prepare(phases = this.phases, index = 0) {
|
|
33
|
+
var _a;
|
|
34
|
+
const phasesToRun = [];
|
|
35
|
+
let i = index;
|
|
36
|
+
for (; i < phases.length; i++) {
|
|
37
|
+
const phase = phases[i];
|
|
38
|
+
const isNotSamePackageType = phasesToRun[0] && phase.type !== phasesToRun[0].type;
|
|
39
|
+
const isNextPhaseANoneValidProjectPackage = phase.type === 'project' && (phase.filter && !(await phase.filter()));
|
|
40
|
+
if (isNotSamePackageType) {
|
|
41
|
+
if (isNextPhaseANoneValidProjectPackage)
|
|
42
|
+
continue;
|
|
43
|
+
else
|
|
44
|
+
break;
|
|
45
|
+
}
|
|
46
|
+
if (phase.type !== 'project' || (!phase.filter || await ((_a = phase.filter) === null || _a === void 0 ? void 0 : _a.call(phase))))
|
|
47
|
+
phasesToRun.push(phase);
|
|
48
|
+
if (phasesToRun.length > 0 && phase.terminatingPhase) {
|
|
49
|
+
i++;
|
|
44
50
|
break;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
resolveAllMandatoryPhases(phase) {
|
|
48
|
-
let result = [phase];
|
|
49
|
-
if (phase.mandatoryPhases) {
|
|
50
|
-
for (const childPhase of phase.mandatoryPhases) {
|
|
51
|
-
result = result.concat(this.resolveAllMandatoryPhases(childPhase));
|
|
52
51
|
}
|
|
53
52
|
}
|
|
54
|
-
|
|
55
|
-
}
|
|
56
|
-
async runPhaseByKey(phaseKey) {
|
|
57
|
-
const phase = this.phases.find(phase => phase.name === phaseKey);
|
|
58
|
-
if (!phase)
|
|
53
|
+
if (!phasesToRun.length)
|
|
59
54
|
return;
|
|
60
|
-
const
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
const relevantPackages = this.getPackagesForPhaseType(phase.type);
|
|
75
|
-
if (relevantPackages.length === 0)
|
|
76
|
-
return false;
|
|
77
|
-
let didPrint = false;
|
|
78
|
-
let didRun = false;
|
|
79
|
-
for (const packages of (_a = this.config.packagesDependency) !== null && _a !== void 0 ? _a : []) {
|
|
80
|
-
const packagesToCheck = packages.filter(pkg => relevantPackages.includes(pkg));
|
|
81
|
-
const filteredPackages = (0, ts_common_1.filterInstances)(await Promise.all(packagesToCheck.map(async (pkg) => {
|
|
82
|
-
if (!phase.filter || await phase.filter(pkg))
|
|
83
|
-
return pkg;
|
|
84
|
-
})));
|
|
85
|
-
const finalPackages = filteredPackages.filter(pkg => pkg);
|
|
86
|
-
if (finalPackages.length === 0)
|
|
87
|
-
continue;
|
|
88
|
-
if (!didPrint) {
|
|
89
|
-
this.logInfo(`Running phase: ${phase.name}`);
|
|
90
|
-
didPrint = true;
|
|
91
|
-
}
|
|
92
|
-
if (finalPackages.length === 1)
|
|
93
|
-
this.logDebug(` Package: ${packagesToCheck.map(pkg => pkg.name)[0]}`);
|
|
94
|
-
else
|
|
95
|
-
this.logDebug(` Packages: ${JSON.stringify(packagesToCheck.map(pkg => pkg.name))}`);
|
|
96
|
-
const errors = await Promise.all(finalPackages.map(async (pkg) => {
|
|
97
|
-
try {
|
|
98
|
-
await phase.action(pkg);
|
|
55
|
+
const nextAction = await this.prepare(phases, i);
|
|
56
|
+
this.logDebug('Scheduling phases: ', phasesToRun.map(mapToName));
|
|
57
|
+
if (phasesToRun[0].type === 'project')
|
|
58
|
+
return async () => {
|
|
59
|
+
if (this.terminate)
|
|
60
|
+
return this.logInfo(`Skipping project phases:`, phasesToRun.map(mapToName));
|
|
61
|
+
let didRun = false;
|
|
62
|
+
for (const phase of phasesToRun) {
|
|
63
|
+
this.logInfo(`Running project phase: ${phase.name}`);
|
|
64
|
+
if (this.dryRun) {
|
|
65
|
+
await (0, ts_common_1.sleep)(1000);
|
|
66
|
+
}
|
|
67
|
+
else
|
|
68
|
+
await phase.action();
|
|
99
69
|
didRun = true;
|
|
100
70
|
}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
71
|
+
if (didRun && (0, ts_common_1.lastElement)(phasesToRun).terminatingPhase)
|
|
72
|
+
this.terminate = true;
|
|
73
|
+
await (nextAction === null || nextAction === void 0 ? void 0 : nextAction());
|
|
74
|
+
};
|
|
75
|
+
return async () => {
|
|
76
|
+
let didRun = false;
|
|
77
|
+
let didPrintPhase = false;
|
|
78
|
+
const toRunPackages = this.config.packagesDependency.map(packages => {
|
|
79
|
+
return async () => {
|
|
80
|
+
let didPrintPackages = false;
|
|
81
|
+
const values = (0, ts_common_1.flatArray)(packages.map(async (pkg) => {
|
|
82
|
+
for (const phase of phasesToRun) {
|
|
83
|
+
if (!(!phase.filter || await phase.filter(pkg)))
|
|
84
|
+
continue;
|
|
85
|
+
if (!didPrintPhase) {
|
|
86
|
+
this.logInfo(`Running package phase: ${(0, ts_common_1.__stringify)(phasesToRun.map(mapToName))}`);
|
|
87
|
+
didPrintPhase = true;
|
|
88
|
+
}
|
|
89
|
+
if (!didPrintPackages) {
|
|
90
|
+
this.logVerbose(` - on packages: ${(0, ts_common_1.__stringify)(packages.map(mapToName))}`);
|
|
91
|
+
didPrintPackages = true;
|
|
92
|
+
}
|
|
93
|
+
didRun = true;
|
|
94
|
+
this.logDebug(` - ${pkg.name}:${phase.name}`);
|
|
95
|
+
if (this.dryRun) {
|
|
96
|
+
await (0, ts_common_1.sleep)(1000);
|
|
97
|
+
}
|
|
98
|
+
else
|
|
99
|
+
await phase.action(pkg);
|
|
100
|
+
}
|
|
101
|
+
}));
|
|
102
|
+
await Promise.all(values);
|
|
103
|
+
};
|
|
104
|
+
});
|
|
105
|
+
if (this.terminate)
|
|
106
|
+
return this.logInfo(`Skipping packages phases:`, phasesToRun.map(mapToName));
|
|
107
|
+
for (const toRunPackage of toRunPackages) {
|
|
108
|
+
await toRunPackage();
|
|
119
109
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
110
|
+
if (didRun && (0, ts_common_1.lastElement)(phasesToRun).terminatingPhase)
|
|
111
|
+
this.terminate = true;
|
|
112
|
+
await (nextAction === null || nextAction === void 0 ? void 0 : nextAction());
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
async execute() {
|
|
116
|
+
var _a;
|
|
117
|
+
await ((_a = (await this.prepare())) === null || _a === void 0 ? void 0 : _a());
|
|
118
|
+
}
|
|
119
|
+
async executePhase(phaseKey) {
|
|
120
|
+
var _a;
|
|
121
|
+
const phase = this.phases.find(phase => phase.name === phaseKey);
|
|
122
|
+
if (!phase)
|
|
123
|
+
throw new ts_common_1.BadImplementationException(`No Such Phase: ${phaseKey}`);
|
|
124
|
+
const finalPhasesToRun = resolveAllMandatoryPhases(phase).reverse();
|
|
125
|
+
await ((_a = (await this.prepare(finalPhasesToRun))) === null || _a === void 0 ? void 0 : _a());
|
|
123
126
|
}
|
|
124
127
|
}
|
|
125
128
|
exports.ProjectManager = ProjectManager;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nu-art/build-and-install",
|
|
3
|
-
"version": "0.203.
|
|
3
|
+
"version": "0.203.119",
|
|
4
4
|
"description": "",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"TacB0sS",
|
|
@@ -32,8 +32,8 @@
|
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"chokidar": "^3.6.0",
|
|
35
|
-
"@nu-art/ts-common": "0.203.
|
|
36
|
-
"@nu-art/commando": "0.203.
|
|
35
|
+
"@nu-art/ts-common": "0.203.119",
|
|
36
|
+
"@nu-art/commando": "0.203.119"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@types/node": "^18.0.0"
|
package/phases/phases.js
CHANGED
|
@@ -324,6 +324,8 @@ exports.Phase_Compile = {
|
|
|
324
324
|
// --- HERE ---
|
|
325
325
|
await fs_1.promises.writeFile(`${pkg.output}/${consts_1.CONST_PackageJSON}`, JSON.stringify(pkg.packageJsonOutput, null, 2), { encoding: 'utf-8' });
|
|
326
326
|
if (pkg.type == 'firebase-functions-app') {
|
|
327
|
+
pkg.packageJsonRuntime.main = pkg.packageJsonRuntime.main.replace('dist/', '');
|
|
328
|
+
pkg.packageJsonRuntime.types = pkg.packageJsonRuntime.types.replace('dist/', '');
|
|
327
329
|
await fs_1.promises.writeFile(`${pkg.output}/${consts_1.CONST_PackageJSON}`, JSON.stringify(pkg.packageJsonRuntime, null, 2), { encoding: 'utf-8' });
|
|
328
330
|
const runTimePackages = (0, ts_common_1.filterDuplicates)((_a = exports.projectPackages.packagesDependency) === null || _a === void 0 ? void 0 : _a.flat().filter(_pkg => {
|
|
329
331
|
var _a, _b;
|
|
@@ -430,7 +432,6 @@ exports.Phase_DeployFrontend = {
|
|
|
430
432
|
mandatoryPhases: [exports.Phase_ResolveEnv],
|
|
431
433
|
filter: async (pkg) => {
|
|
432
434
|
var _a;
|
|
433
|
-
console.log(`deploy flag(${pkg.name}): ${params_1.RuntimeParams.deploy}`);
|
|
434
435
|
return !!((_a = pkg.name.match(new RegExp(params_1.RuntimeParams.deploy))) === null || _a === void 0 ? void 0 : _a[0]) && pkg.type === 'firebase-hosting-app';
|
|
435
436
|
},
|
|
436
437
|
action: async (pkg) => {
|