@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.
@@ -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
  };
@@ -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>)[]>;
@@ -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'?: 'index.js' | string;
13
- 'types'?: 'index.d.ts' | string;
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?: RuntimePackage[][];
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
- execute(phasesToRun?: BuildPhase[]): Promise<void>;
33
- private resolveAllMandatoryPhases;
34
- runPhaseByKey(phaseKey: string): Promise<void>;
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 {};
@@ -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 PackageBuildPhaseTypes = [exports.PackageBuildPhaseType_Package, exports.PackageBuildPhaseType_PackageWithOutput, exports.PackageBuildPhaseType_Project];
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.getPackagesForPhaseType = (phaseType) => {
15
- var _a;
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 execute(phasesToRun) {
40
- for (const phase of (phasesToRun !== null && phasesToRun !== void 0 ? phasesToRun : this.phases)) {
41
- const didRun = await this.runPhase(phase);
42
- //terminate execution if phase is terminating
43
- if (didRun && phase.terminatingPhase)
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
- return (0, ts_common_1.filterDuplicates)(result, result => result.name);
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 finalPhasesToRun = this.resolveAllMandatoryPhases(phase).reverse();
61
- return this.execute(finalPhasesToRun);
62
- }
63
- async runPhase(phase) {
64
- var _a;
65
- if (phase.type === exports.PackageBuildPhaseType_Project) {
66
- if (!phase.filter || await phase.filter()) {
67
- this.logInfo(`Running project phase: ${phase.name}`);
68
- await phase.action();
69
- return true;
70
- }
71
- this.logVerbose(`Skipping project phase: ${phase.name}`);
72
- return false;
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
- catch (e) {
102
- return e;
103
- }
104
- }));
105
- if ((0, ts_common_1.filterInstances)(errors).length > 0) {
106
- errors.forEach((error, index) => {
107
- var _a, _b, _c, _d;
108
- if (!error)
109
- return;
110
- this.logError(`\nError in package: ${(_a = packages[index].packageJsonTemplate) === null || _a === void 0 ? void 0 : _a.name}`);
111
- if ((_b = error.stdout) === null || _b === void 0 ? void 0 : _b.length)
112
- this.logVerbose(error.stdout);
113
- if ((_c = error.stderr) === null || _c === void 0 ? void 0 : _c.length)
114
- this.logVerboseBold(error.stderr);
115
- else if ((_d = error.message) === null || _d === void 0 ? void 0 : _d.length)
116
- this.logError(error.message);
117
- });
118
- throw new Error(`${(0, ts_common_1.filterInstances)(errors).length} Errors in phase "${phase.name}"`);
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
- return didRun;
122
- // throw new Error(`Unknown phase type '${JSON.stringify(phase)}'`);
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.117",
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.117",
36
- "@nu-art/commando": "0.203.117"
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) => {