@nu-art/build-and-install 0.300.8 → 0.400.0
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/build-and-install-v3.d.ts +29 -0
- package/build-and-install-v3.js +132 -0
- package/build-and-install-v3.js.map +1 -0
- package/build-and-install.js +18 -24
- package/build-and-install.js.map +1 -0
- package/core/consts.d.ts +7 -2
- package/core/consts.js +12 -9
- package/core/consts.js.map +1 -0
- package/core/exceptions/PhaseAggregatedException.d.ts +5 -0
- package/core/exceptions/PhaseAggregatedException.js +9 -0
- package/core/exceptions/PhaseAggregatedException.js.map +1 -0
- package/core/package/consts.d.ts +1 -1
- package/core/package/consts.js +7 -9
- package/core/package/consts.js.map +1 -0
- package/core/params/params.d.ts +18 -19
- package/core/params/params.js +142 -178
- package/core/params/params.js.map +1 -0
- package/core/types/configs/firebasejson.js +2 -2
- package/core/types/configs/firebasejson.js.map +1 -0
- package/core/types/configs/firebaserc.js +2 -2
- package/core/types/configs/firebaserc.js.map +1 -0
- package/core/types/configs/index.d.ts +3 -3
- package/core/types/configs/index.js +4 -19
- package/core/types/configs/index.js.map +1 -0
- package/core/types/configs/package-json.d.ts +2 -1
- package/core/types/configs/package-json.js +2 -2
- package/core/types/configs/package-json.js.map +1 -0
- package/core/types/core.js +2 -2
- package/core/types/core.js.map +1 -0
- package/core/types/index.d.ts +4 -4
- package/core/types/index.js +5 -20
- package/core/types/index.js.map +1 -0
- package/core/types/package/index.d.ts +2 -2
- package/core/types/package/index.js +3 -18
- package/core/types/package/index.js.map +1 -0
- package/core/types/package/package.d.ts +10 -14
- package/core/types/package/package.js +15 -12
- package/core/types/package/package.js.map +1 -0
- package/core/types/package/runtime-package.d.ts +2 -2
- package/core/types/package/runtime-package.js +2 -2
- package/core/types/package/runtime-package.js.map +1 -0
- package/core/types/project-config.d.ts +31 -2
- package/core/types/project-config.js +2 -2
- package/core/types/project-config.js.map +1 -0
- package/defaults/backend-proxy/proxy._ts +3 -1
- package/defaults/consts.d.ts +0 -7
- package/defaults/consts.js +10 -10
- package/defaults/consts.js.map +1 -0
- package/{v2/phase-runner → old}/PhaseRunnerDispatcher.d.ts +4 -4
- package/old/PhaseRunnerDispatcher.js +33 -0
- package/old/PhaseRunnerDispatcher.js.map +1 -0
- package/{v2/unit → old}/runner-dispatchers.d.ts +3 -3
- package/old/runner-dispatchers.js +4 -0
- package/old/runner-dispatchers.js.map +1 -0
- package/package.json +20 -15
- package/v3/PhaseManager.d.ts +26 -0
- package/v3/PhaseManager.js +144 -0
- package/v3/PhaseManager.js.map +1 -0
- package/v3/RunningStatusHandler.d.ts +16 -0
- package/v3/RunningStatusHandler.js +57 -0
- package/v3/RunningStatusHandler.js.map +1 -0
- package/v3/UnitsDependencyMapper/UnitsDependencyMapper.d.ts +52 -0
- package/v3/UnitsDependencyMapper/UnitsDependencyMapper.js +287 -0
- package/v3/UnitsDependencyMapper/UnitsDependencyMapper.js.map +1 -0
- package/v3/UnitsMapper/UnitsMapper.d.ts +21 -0
- package/v3/UnitsMapper/UnitsMapper.js +60 -0
- package/v3/UnitsMapper/UnitsMapper.js.map +1 -0
- package/v3/UnitsMapper/resolvers/UnitMapper_Base.d.ts +23 -0
- package/v3/UnitsMapper/resolvers/UnitMapper_Base.js +17 -0
- package/v3/UnitsMapper/resolvers/UnitMapper_Base.js.map +1 -0
- package/v3/UnitsMapper/resolvers/UnitMapper_FirebaseFunction.d.ts +62 -0
- package/v3/UnitsMapper/resolvers/UnitMapper_FirebaseFunction.js +56 -0
- package/v3/UnitsMapper/resolvers/UnitMapper_FirebaseFunction.js.map +1 -0
- package/v3/UnitsMapper/resolvers/UnitMapper_FirebaseHosting.d.ts +38 -0
- package/v3/UnitsMapper/resolvers/UnitMapper_FirebaseHosting.js +49 -0
- package/v3/UnitsMapper/resolvers/UnitMapper_FirebaseHosting.js.map +1 -0
- package/v3/UnitsMapper/resolvers/UnitMapper_Node.d.ts +30 -0
- package/v3/UnitsMapper/resolvers/UnitMapper_Node.js +59 -0
- package/v3/UnitsMapper/resolvers/UnitMapper_Node.js.map +1 -0
- package/v3/UnitsMapper/resolvers/UnitMapper_NodeLib.d.ts +25 -0
- package/v3/UnitsMapper/resolvers/UnitMapper_NodeLib.js +29 -0
- package/v3/UnitsMapper/resolvers/UnitMapper_NodeLib.js.map +1 -0
- package/v3/UnitsMapper/resolvers/UnitMapper_NodeProject.d.ts +24 -0
- package/v3/UnitsMapper/resolvers/UnitMapper_NodeProject.js +23 -0
- package/v3/UnitsMapper/resolvers/UnitMapper_NodeProject.js.map +1 -0
- package/v3/UnitsMapper/resolvers/index.d.ts +4 -0
- package/v3/UnitsMapper/resolvers/index.js +5 -0
- package/v3/UnitsMapper/resolvers/index.js.map +1 -0
- package/v3/UnitsMapper/types.d.ts +24 -0
- package/v3/UnitsMapper/types.js +2 -0
- package/v3/UnitsMapper/types.js.map +1 -0
- package/v3/core/FileSystemUtils.d.ts +34 -0
- package/v3/core/FileSystemUtils.js +152 -0
- package/v3/core/FileSystemUtils.js.map +1 -0
- package/v3/core/FilesCache.d.ts +7 -0
- package/v3/core/FilesCache.js +34 -0
- package/v3/core/FilesCache.js.map +1 -0
- package/v3/core/Unit_HelpPrinter.d.ts +16 -0
- package/v3/core/Unit_HelpPrinter.js +48 -0
- package/v3/core/Unit_HelpPrinter.js.map +1 -0
- package/v3/core/types.d.ts +17 -0
- package/v3/core/types.js +6 -0
- package/v3/core/types.js.map +1 -0
- package/v3/phase/consts.d.ts +52 -0
- package/v3/phase/consts.js +127 -0
- package/v3/phase/consts.js.map +1 -0
- package/v3/phase/index.d.ts +2 -0
- package/v3/phase/index.js +3 -0
- package/v3/phase/index.js.map +1 -0
- package/v3/phase/types.d.ts +9 -0
- package/v3/phase/types.js +2 -0
- package/v3/phase/types.js.map +1 -0
- package/v3/units/BaseUnit.d.ts +46 -0
- package/v3/units/BaseUnit.js +120 -0
- package/v3/units/BaseUnit.js.map +1 -0
- package/v3/units/ProjectUnit.d.ts +18 -0
- package/v3/units/ProjectUnit.js +12 -0
- package/v3/units/ProjectUnit.js.map +1 -0
- package/v3/units/Unit_NodeProject.d.ts +32 -0
- package/v3/units/Unit_NodeProject.js +244 -0
- package/v3/units/Unit_NodeProject.js.map +1 -0
- package/v3/units/Unit_PackageJson.d.ts +19 -0
- package/v3/units/Unit_PackageJson.js +42 -0
- package/v3/units/Unit_PackageJson.js.map +1 -0
- package/v3/units/Unit_TypescriptLib.d.ts +45 -0
- package/v3/units/Unit_TypescriptLib.js +373 -0
- package/v3/units/Unit_TypescriptLib.js.map +1 -0
- package/v3/units/firebase/Unit_FirebaseFunctionsApp.d.ts +62 -0
- package/v3/units/firebase/Unit_FirebaseFunctionsApp.js +281 -0
- package/v3/units/firebase/Unit_FirebaseFunctionsApp.js.map +1 -0
- package/v3/units/firebase/Unit_FirebaseHostingApp.d.ts +49 -0
- package/v3/units/firebase/Unit_FirebaseHostingApp.js +100 -0
- package/v3/units/firebase/Unit_FirebaseHostingApp.js.map +1 -0
- package/v3/units/index.d.ts +5 -0
- package/v3/units/index.js +6 -0
- package/v3/units/index.js.map +1 -0
- package/core/params/types.d.ts +0 -51
- package/core/params/types.js +0 -2
- package/tsconfig.json +0 -23
- package/v2/phase/consts.d.ts +0 -53
- package/v2/phase/consts.js +0 -151
- package/v2/phase/index.d.ts +0 -2
- package/v2/phase/index.js +0 -18
- package/v2/phase/types.d.ts +0 -12
- package/v2/phase/types.js +0 -2
- package/v2/phase-runner/PhaseRunner.d.ts +0 -69
- package/v2/phase-runner/PhaseRunner.js +0 -472
- package/v2/phase-runner/PhaseRunnerDispatcher.js +0 -37
- package/v2/phase-runner/RunnerParams.d.ts +0 -12
- package/v2/phase-runner/RunnerParams.js +0 -9
- package/v2/phase-runner/consts.d.ts +0 -7
- package/v2/phase-runner/consts.js +0 -9
- package/v2/phase-runner/kaki.d.ts +0 -0
- package/v2/phase-runner/kaki.js +0 -1
- package/v2/phase-runner/types.d.ts +0 -13
- package/v2/phase-runner/types.js +0 -6
- package/v2/project/types.d.ts +0 -8
- package/v2/project/types.js +0 -2
- package/v2/screens/BAIScreen.d.ts +0 -22
- package/v2/screens/BAIScreen.js +0 -82
- package/v2/screens/BAIScreenManager.d.ts +0 -28
- package/v2/screens/BAIScreenManager.js +0 -77
- package/v2/screens/BAIScreen_Launch.d.ts +0 -28
- package/v2/screens/BAIScreen_Launch.js +0 -173
- package/v2/screens/BAIScreen_UnitList.d.ts +0 -36
- package/v2/screens/BAIScreen_UnitList.js +0 -203
- package/v2/unit/consts.d.ts +0 -6
- package/v2/unit/consts.js +0 -8
- package/v2/unit/core/BaseUnit.d.ts +0 -39
- package/v2/unit/core/BaseUnit.js +0 -138
- package/v2/unit/core/Unit_Python.d.ts +0 -16
- package/v2/unit/core/Unit_Python.js +0 -26
- package/v2/unit/core/Unit_Typescript.d.ts +0 -49
- package/v2/unit/core/Unit_Typescript.js +0 -143
- package/v2/unit/core/Unit_TypescriptLib.d.ts +0 -48
- package/v2/unit/core/Unit_TypescriptLib.js +0 -226
- package/v2/unit/core/Unit_TypescriptProject.d.ts +0 -31
- package/v2/unit/core/Unit_TypescriptProject.js +0 -194
- package/v2/unit/core/index.d.ts +0 -5
- package/v2/unit/core/index.js +0 -21
- package/v2/unit/firebase-units/Unit_FirebaseFunctionsApp.d.ts +0 -35
- package/v2/unit/firebase-units/Unit_FirebaseFunctionsApp.js +0 -309
- package/v2/unit/firebase-units/Unit_FirebaseHostingApp.d.ts +0 -24
- package/v2/unit/firebase-units/Unit_FirebaseHostingApp.js +0 -138
- package/v2/unit/firebase-units/consts.d.ts +0 -2
- package/v2/unit/firebase-units/consts.js +0 -9
- package/v2/unit/firebase-units/index.d.ts +0 -2
- package/v2/unit/firebase-units/index.js +0 -18
- package/v2/unit/runner-dispatchers.js +0 -6
- package/v2/unit/thunderstorm.d.ts +0 -171
- package/v2/unit/thunderstorm.js +0 -199
- package/v2/unit/tools/tools.d.ts +0 -2
- package/v2/unit/tools/tools.js +0 -15
- package/v2/unit/types.d.ts +0 -8
- package/v2/unit/types.js +0 -2
|
@@ -0,0 +1,373 @@
|
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
import { copyFileSync, existsSync, promises as _fs, readdirSync, statSync } from 'fs';
|
|
3
|
+
import { __stringify, BadImplementationException, ImplementationMissingException, LogLevel, NotImplementedYetException } from '@nu-art/ts-common';
|
|
4
|
+
import { CONST_BaiConfig, CONST_FirebaseJSON, CONST_FirebaseRC, CONST_NodeModules, CONST_PackageJSON, CONST_TS_CONFIG } from '../../core/consts.js';
|
|
5
|
+
import { CommandoException } from '@nu-art/commando/shell/core/CliError';
|
|
6
|
+
import { Commando_NVM } from '@nu-art/commando/shell/plugins/nvm';
|
|
7
|
+
import { Commando_Basic } from '@nu-art/commando/shell/plugins/basic';
|
|
8
|
+
import { resolve, resolve as pathResolve } from 'path';
|
|
9
|
+
import { Unit_PackageJson } from './Unit_PackageJson.js';
|
|
10
|
+
import { DEFAULT_OLD_TEMPLATE_PATTERN, DEFAULT_TEMPLATE_PATTERN, FileSystemUtils } from '../core/FileSystemUtils.js';
|
|
11
|
+
import { glob } from 'node:fs/promises';
|
|
12
|
+
import { TestTypes } from '../../core/params/params.js';
|
|
13
|
+
const assetExtensions = [
|
|
14
|
+
'json',
|
|
15
|
+
'scss',
|
|
16
|
+
'svg',
|
|
17
|
+
'png',
|
|
18
|
+
'jpg',
|
|
19
|
+
'jpeg',
|
|
20
|
+
'rules',
|
|
21
|
+
'_ts',
|
|
22
|
+
'gif',
|
|
23
|
+
'csv',
|
|
24
|
+
];
|
|
25
|
+
const defaultTestPatterns = {
|
|
26
|
+
pure: '**/*.test.ts',
|
|
27
|
+
firebase: '**/*.test.firebase.ts',
|
|
28
|
+
ui: '**/*.test.ui.ts',
|
|
29
|
+
mobile: '**/*.test.mobile.ts'
|
|
30
|
+
};
|
|
31
|
+
const CONST_ESM_PREFIX = 'export NODE_OPTIONS=\'--import data:text/javascript,import%20%7B%20register%20%7D%20from%20%22node%3Amodule%22%3B%20import%20%7B%20pathToFileURL%20%7D%20from%20%22node%3Aurl%22%3B%20register%28%22ts-node%2Fesm%22%2C%20pathToFileURL%28%22.%2F%22%29%29%3B\'';
|
|
32
|
+
const TestsCommandComposer = {
|
|
33
|
+
pure: async (config, runtimeContext) => {
|
|
34
|
+
const command = resolve(runtimeContext.parentUnit.config.fullPath, 'node_modules/.bin/ts-mocha');
|
|
35
|
+
const testFile = runtimeContext.runtimeParams.testFiles;
|
|
36
|
+
const grep = testFile?.length ? ` '${testFile.join('\' \'')}'` : ` '${defaultTestPatterns.pure}'`;
|
|
37
|
+
return `${CONST_ESM_PREFIX} && ${command} -p src/test/${CONST_TS_CONFIG} --timeout 0 ${grep}`;
|
|
38
|
+
},
|
|
39
|
+
firebase: async (config, runtimeContext) => {
|
|
40
|
+
const command = resolve(runtimeContext.parentUnit.config.fullPath, 'node_modules/.bin/ts-mocha');
|
|
41
|
+
const files = runtimeContext.runtimeParams.testFiles ?? [`src/test/${defaultTestPatterns.firebase}`].map(file => `'${file}'`);
|
|
42
|
+
const testCases = runtimeContext.runtimeParams.testCases;
|
|
43
|
+
const cli_testFiles = ` ${files.join(' ')}`;
|
|
44
|
+
const cli_testCases = testCases ? ` --grep '${testCases.join('|')}'` : '';
|
|
45
|
+
const cli_watchFiles = files.map(file => `-watch-files ${file}`).join(' ');
|
|
46
|
+
const debugPort = runtimeContext.runtimeParams.testDebugPort;
|
|
47
|
+
const cli_debug = debugPort ? ` --inspect=${debugPort} -w ${cli_watchFiles}` : '';
|
|
48
|
+
// const pah = 'ts-mocha --timeout 0 --inspect=8107 --watch-files \'src/test/**/*.test.ts\' src/test/**/*.test.ts';
|
|
49
|
+
const functionContextCommand = `${CONST_ESM_PREFIX} && ${command} -p src/test/${CONST_TS_CONFIG} --timeout 0 ${cli_debug}${cli_testFiles}${cli_testCases}`;
|
|
50
|
+
return `firebase emulators:exec "${functionContextCommand}"`;
|
|
51
|
+
},
|
|
52
|
+
ui: async () => {
|
|
53
|
+
throw new NotImplementedYetException('UI tests not implemented yet');
|
|
54
|
+
},
|
|
55
|
+
mobile: async () => {
|
|
56
|
+
throw new NotImplementedYetException('Mobile tests not implemented yet');
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
export class Unit_TypescriptLib extends Unit_PackageJson {
|
|
60
|
+
TestTypeWorkspaceSetup = {
|
|
61
|
+
pure: async (config, runtimeContext) => {
|
|
62
|
+
},
|
|
63
|
+
firebase: async (config, runtimeContext) => {
|
|
64
|
+
const pathToTestsFirebaseJson = runtimeContext.baiConfig.files?.tests?.firebase?.[CONST_FirebaseJSON];
|
|
65
|
+
if (!pathToTestsFirebaseJson)
|
|
66
|
+
throw new ImplementationMissingException('Missing default firebase.json file in tests.firebase');
|
|
67
|
+
const pathToTestsFirebaseRC = runtimeContext.baiConfig.files?.tests?.firebase?.[CONST_FirebaseRC];
|
|
68
|
+
if (!pathToTestsFirebaseRC)
|
|
69
|
+
throw new ImplementationMissingException('Missing default .firebaserc file in tests.firebase');
|
|
70
|
+
const pathToProjectRoot = runtimeContext.parentUnit.config.fullPath;
|
|
71
|
+
await FileSystemUtils.file.copy(resolve(pathToProjectRoot, pathToTestsFirebaseRC), resolve(config.fullPath, CONST_FirebaseRC));
|
|
72
|
+
const ports = [
|
|
73
|
+
`${(runtimeContext.baiConfig.files?.tests?.firebase?.baseEmulationPort ?? 8000) + 1}`,
|
|
74
|
+
`${(runtimeContext.baiConfig.files?.tests?.firebase?.baseEmulationPort ?? 8000) + 2}`,
|
|
75
|
+
`${(runtimeContext.baiConfig.files?.tests?.firebase?.baseEmulationPort ?? 8000) + 3}`
|
|
76
|
+
];
|
|
77
|
+
if (runtimeContext.runtimeParams.testDebugPort)
|
|
78
|
+
ports.push(`${runtimeContext.runtimeParams.testDebugPort}`);
|
|
79
|
+
const firebaseConfigFiles = runtimeContext.baiConfig.files?.firebase;
|
|
80
|
+
if (!firebaseConfigFiles)
|
|
81
|
+
throw new ImplementationMissingException(`Missing firebase config files in ${CONST_BaiConfig}`);
|
|
82
|
+
await FileSystemUtils.file.template.copy(resolve(pathToProjectRoot, pathToTestsFirebaseJson), resolve(config.fullPath, CONST_FirebaseJSON), {
|
|
83
|
+
FIREBASE_RTDB_PORT: ports[0],
|
|
84
|
+
FIRESTORE_PORT: ports[1],
|
|
85
|
+
FIRESTORE_WEBSOCKET_PORT: ports[2],
|
|
86
|
+
FIREBASE_DATABASE_RULES: resolve(pathToProjectRoot, firebaseConfigFiles.databaseRules),
|
|
87
|
+
FIREBASE_FIRESTORE_RULES: resolve(pathToProjectRoot, firebaseConfigFiles.firestoreRules),
|
|
88
|
+
FIREBASE_FIRESTORE_INDICES: resolve(pathToProjectRoot, firebaseConfigFiles.firestoreIndexesRules),
|
|
89
|
+
}, DEFAULT_TEMPLATE_PATTERN);
|
|
90
|
+
await this.releasePorts(ports);
|
|
91
|
+
},
|
|
92
|
+
ui: async () => {
|
|
93
|
+
throw new NotImplementedYetException('UI tests not implemented yet');
|
|
94
|
+
},
|
|
95
|
+
mobile: async () => {
|
|
96
|
+
throw new NotImplementedYetException('Mobile tests not implemented yet');
|
|
97
|
+
},
|
|
98
|
+
};
|
|
99
|
+
async runTests() {
|
|
100
|
+
const testsFolder = resolve(this.config.fullPath, 'src/test');
|
|
101
|
+
if (!await FileSystemUtils.file.exists(testsFolder))
|
|
102
|
+
return this.logWarning('NO TESTS FOR PACKAGE!');
|
|
103
|
+
const testTypes = this.runtimeContext.runtimeParams.testType;
|
|
104
|
+
for (const testType of TestTypes) {
|
|
105
|
+
if (testTypes?.length && !testTypes.includes(testType)) {
|
|
106
|
+
this.logVerbose(`Test type (${testType}) not selected, skipping`);
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
109
|
+
const pattern = `${resolve(testsFolder, defaultTestPatterns[testType])}`;
|
|
110
|
+
const fileIterator = glob(pattern, {});
|
|
111
|
+
const files = [];
|
|
112
|
+
for await (const file of fileIterator)
|
|
113
|
+
files.push(file);
|
|
114
|
+
if (files.length === 0) {
|
|
115
|
+
this.logDebug(`No tests found for test type: ${testType} using pattern: ${pattern}`);
|
|
116
|
+
continue;
|
|
117
|
+
}
|
|
118
|
+
await this.TestTypeWorkspaceSetup[testType](this.config, this.runtimeContext);
|
|
119
|
+
const commando = this.allocateCommando(Commando_NVM)
|
|
120
|
+
.cd(this.config.fullPath);
|
|
121
|
+
const testCommand = await TestsCommandComposer[testType](this.config, this.runtimeContext);
|
|
122
|
+
await this.executeAsyncCommando(commando, testCommand, (stdout, stderr, exitCode) => {
|
|
123
|
+
if (exitCode !== 0)
|
|
124
|
+
throw new CommandoException(`Error running tests`, stdout, stderr, exitCode);
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
constructor(config) {
|
|
129
|
+
super(config);
|
|
130
|
+
this.addToClassStack(Unit_TypescriptLib);
|
|
131
|
+
}
|
|
132
|
+
//######################### Internal Logic #########################
|
|
133
|
+
async clearOutputDir() {
|
|
134
|
+
if (!this.runtimeContext.runtimeParams.clean)
|
|
135
|
+
return;
|
|
136
|
+
await this.clearOutputDirImpl();
|
|
137
|
+
}
|
|
138
|
+
async clearOutputDirImpl() {
|
|
139
|
+
await FileSystemUtils.folder.empty(this.config.output, false);
|
|
140
|
+
await FileSystemUtils.folder.create(this.config.output);
|
|
141
|
+
}
|
|
142
|
+
async prepare() {
|
|
143
|
+
await super.prepare();
|
|
144
|
+
await FileSystemUtils.folder.create(this.config.output);
|
|
145
|
+
if (this.config.packageJson.private) {
|
|
146
|
+
// @ts-ignore
|
|
147
|
+
this.publish = undefined;
|
|
148
|
+
// @ts-ignore
|
|
149
|
+
this.publishDryRun = undefined;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
async compileImpl() {
|
|
153
|
+
const pathToCompile = `${this.config.fullPath}/src/main`;
|
|
154
|
+
const pathToTSConfig = `${pathToCompile}/${CONST_TS_CONFIG}`;
|
|
155
|
+
const commando = this.allocateCommando(Commando_NVM, Commando_Basic)
|
|
156
|
+
.cd(this.config.fullPath)
|
|
157
|
+
.setLogLevelFilter((log, std) => {
|
|
158
|
+
return LogLevel.Error;
|
|
159
|
+
})
|
|
160
|
+
.addLogProcessor((log) => !log.includes('Now using node') && !log.includes('.nvmrc\' with version'));
|
|
161
|
+
const command = resolve(this.runtimeContext.parentUnit.config.fullPath, CONST_NodeModules, 'typescript', 'bin', 'tsc');
|
|
162
|
+
await this.executeAsyncCommando(commando, `${command} -p "${pathToTSConfig}" --rootDir "${pathToCompile}" --outDir "${this.config.output}"`, (stdout, stderr, exitCode) => {
|
|
163
|
+
if (stderr.length)
|
|
164
|
+
this.logError(stderr);
|
|
165
|
+
if (exitCode > 0)
|
|
166
|
+
throw new CommandoException(`Error compiling`, stdout, stderr, exitCode);
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
async copyAssetsToOutput() {
|
|
170
|
+
const command = `find . \\( -name ${assetExtensions.map(suffix => `'*.${suffix}'`)
|
|
171
|
+
.join(' -o -name ')} \\) | cpio -pdmuv "${this.config.output}" > /dev/null 2>&1`;
|
|
172
|
+
await this.allocateCommando(Commando_Basic)
|
|
173
|
+
.cd(`${this.config.fullPath}/src/main`)
|
|
174
|
+
// .setStdErrorValidator(stderr => {
|
|
175
|
+
// return !stderr.match(/\d+\sblock/);
|
|
176
|
+
// })
|
|
177
|
+
.append(command)
|
|
178
|
+
.execute();
|
|
179
|
+
await FileSystemUtils.file.delete(resolve(this.config.output, CONST_TS_CONFIG));
|
|
180
|
+
}
|
|
181
|
+
ignoreWatchFiles() {
|
|
182
|
+
return [`${this.config.fullPath}/.*?/${CONST_TS_CONFIG}`];
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Watch compile actions, use this to perform all necessary compile actions for watch.
|
|
186
|
+
* watch compile is a subset of the general watch action
|
|
187
|
+
*/
|
|
188
|
+
async watchCompile() {
|
|
189
|
+
await this.compileImpl();
|
|
190
|
+
await this.copyAssetsToOutput();
|
|
191
|
+
await this.copyPackageJSONToOutput();
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Remove the deleted file/folder from the dist folder on watch remove file event
|
|
195
|
+
* @param path The path of the currently removed file/folder
|
|
196
|
+
* @private
|
|
197
|
+
*/
|
|
198
|
+
async removeSpecificFileFromDist(path) {
|
|
199
|
+
this.setStatus('Removing files from dist', 'start');
|
|
200
|
+
const distPathBase = path.replace('src/main', 'dist').replace(/\.ts$/, '');
|
|
201
|
+
const pathsToDelete = [
|
|
202
|
+
`${distPathBase}.js`,
|
|
203
|
+
`${distPathBase}.d.ts`,
|
|
204
|
+
`${distPathBase}.js.map`,
|
|
205
|
+
distPathBase // in case it's a directory
|
|
206
|
+
];
|
|
207
|
+
// try to remove all path options from dist
|
|
208
|
+
for (const path of pathsToDelete) {
|
|
209
|
+
if (!fs.existsSync(path)) {
|
|
210
|
+
this.logDebug(`no file in path ${path}`);
|
|
211
|
+
continue;
|
|
212
|
+
}
|
|
213
|
+
await _fs.rm(path, { recursive: true, force: true });
|
|
214
|
+
}
|
|
215
|
+
this.setStatus('Files Removed and watching', 'end');
|
|
216
|
+
}
|
|
217
|
+
//######################### Phase Implementations #########################
|
|
218
|
+
async preCompile() {
|
|
219
|
+
const srcFolder = pathResolve(this.config.fullPath, 'src');
|
|
220
|
+
const entries = readdirSync(srcFolder);
|
|
221
|
+
for (const entry of entries) {
|
|
222
|
+
await this.resolveTSConfig(srcFolder, entry);
|
|
223
|
+
}
|
|
224
|
+
if (!fs.existsSync(`${this.config.fullPath}/prebuild.sh`))
|
|
225
|
+
return;
|
|
226
|
+
await this.allocateCommando(Commando_Basic)
|
|
227
|
+
.cd(this.config.fullPath)
|
|
228
|
+
.append('bash prebuild.sh')
|
|
229
|
+
.execute();
|
|
230
|
+
}
|
|
231
|
+
async compile() {
|
|
232
|
+
await this.clearOutputDirImpl();
|
|
233
|
+
await this.compileImpl();
|
|
234
|
+
await this.copyAssetsToOutput();
|
|
235
|
+
await this.copyPackageJSONToOutput();
|
|
236
|
+
await this.postCompile();
|
|
237
|
+
}
|
|
238
|
+
async postCompile() {
|
|
239
|
+
}
|
|
240
|
+
async copyPackageJSONToOutput() {
|
|
241
|
+
const targetPath = resolve(this.config.output, CONST_PackageJSON);
|
|
242
|
+
await FileSystemUtils.file.template.write(targetPath, __stringify(this.config.packageJson, true), this.deriveDistDependencies(), DEFAULT_OLD_TEMPLATE_PATTERN);
|
|
243
|
+
}
|
|
244
|
+
async purge() {
|
|
245
|
+
await FileSystemUtils.folder.delete(this.config.output);
|
|
246
|
+
return super.purge();
|
|
247
|
+
}
|
|
248
|
+
async printDependencyTree() {
|
|
249
|
+
const CONST_RunningRoot = process.cwd();
|
|
250
|
+
this.logDebug(`Generating Dependency Tree - ${this.config.label}`);
|
|
251
|
+
await this.allocateCommando(Commando_Basic)
|
|
252
|
+
.cd(this.config.fullPath)
|
|
253
|
+
.append(`mkdir -p ${CONST_RunningRoot}/.trash/dependencies`)
|
|
254
|
+
.append(`pnpm list --depth 1000 > "${CONST_RunningRoot}/.trash/dependencies/${this.config.key}.txt"`)
|
|
255
|
+
.execute();
|
|
256
|
+
}
|
|
257
|
+
async checkCyclicImports() {
|
|
258
|
+
this.logDebug(`Checking Cyclic Imports - ${this.config.label}`);
|
|
259
|
+
await this.allocateCommando(Commando_Basic)
|
|
260
|
+
.cd(this.config.fullPath)
|
|
261
|
+
// .setStdErrorValidator(stderr => {
|
|
262
|
+
// return !stderr.includes('Finding files') && !stderr.includes('Image created');
|
|
263
|
+
// })
|
|
264
|
+
.append(`npx madge --no-spinner --image "./imports-${this.config.key}.svg" --circular ${this.config.output}`)
|
|
265
|
+
.append('echo $?')
|
|
266
|
+
.execute();
|
|
267
|
+
}
|
|
268
|
+
async lint() {
|
|
269
|
+
// need to move the copy of the default eslint rules to here
|
|
270
|
+
const pathToLint = pathResolve(this.config.fullPath, `src/main`);
|
|
271
|
+
// const extensions = extensionsToLint.map(ext => `--ext ${ext}`).join(' ');
|
|
272
|
+
this.resolveESLintConfig();
|
|
273
|
+
return new Promise(async (resolve, reject) => {
|
|
274
|
+
return this.allocateCommando(Commando_NVM)
|
|
275
|
+
.cd(this.runtimeContext.parentUnit.config.fullPath)
|
|
276
|
+
.pwd()
|
|
277
|
+
.append(`./node_modules/.bin/eslint ${pathToLint}`)
|
|
278
|
+
.execute((stdout, stderr, exitCode) => {
|
|
279
|
+
if (exitCode > 0)
|
|
280
|
+
return reject(new CommandoException(`Linting failed`, stdout, stderr, exitCode));
|
|
281
|
+
resolve();
|
|
282
|
+
});
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
resolveESLintConfig() {
|
|
286
|
+
// Handle ESLint config setup
|
|
287
|
+
const eslintConfigPath = pathResolve(this.config.fullPath, '.eslintrc.json');
|
|
288
|
+
if (this.config.customESLintConfig) {
|
|
289
|
+
if (!existsSync(eslintConfigPath))
|
|
290
|
+
throw new BadImplementationException(`Expected custom eslint.rc\n${__stringify({
|
|
291
|
+
unit: this.config.key,
|
|
292
|
+
})}`);
|
|
293
|
+
this.logVerbose(`eslintrc.json is defined custom`);
|
|
294
|
+
return;
|
|
295
|
+
}
|
|
296
|
+
// const defaultEslint = pathResolve(baiDefaultsPath, '.eslintrc.json');
|
|
297
|
+
// if (!existsSync(defaultEslint)) {
|
|
298
|
+
// this.logError(`Missing default eslint configuration at path: ${defaultEslint}`);
|
|
299
|
+
// throw new BadImplementationException(`Missing default eslint configuration at ${defaultEslint}\n${__stringify({
|
|
300
|
+
// unit: this.config.key,
|
|
301
|
+
// defaultPath: defaultEslint
|
|
302
|
+
// })}`,);
|
|
303
|
+
// }
|
|
304
|
+
const projectDefaultEslint = pathResolve(this.runtimeContext.parentUnit.config.fullPath, this.runtimeContext.baiConfig.files?.typescript?.eslintConfig ?? `eslint.config.mjs`);
|
|
305
|
+
if (existsSync(projectDefaultEslint)) {
|
|
306
|
+
this.logDebug(`Copying project-level default eslint config..`);
|
|
307
|
+
copyFileSync(projectDefaultEslint, eslintConfigPath);
|
|
308
|
+
return;
|
|
309
|
+
}
|
|
310
|
+
// this.logDebug(`Copying default eslint configuration for unit: ${this.config.key}`);
|
|
311
|
+
// copyFileSync(defaultEslint, eslintConfigPath);
|
|
312
|
+
}
|
|
313
|
+
deriveTSConfigPaths() {
|
|
314
|
+
const unitKeys = this.runtimeContext.unitsMapper.getTransitiveDependencies([this.config.key]);
|
|
315
|
+
const dependencyPaths = this.runtimeContext.unitsResolver(unitKeys, Unit_TypescriptLib);
|
|
316
|
+
return dependencyPaths.reduce((dependencies, unit) => {
|
|
317
|
+
dependencies[unit.config.key] = [`${unit.config.fullPath}/src/main`];
|
|
318
|
+
return dependencies;
|
|
319
|
+
}, {});
|
|
320
|
+
}
|
|
321
|
+
async resolveTSConfig(srcFolder, sourceFolderType) {
|
|
322
|
+
const entryPath = pathResolve(srcFolder, sourceFolderType);
|
|
323
|
+
if (!statSync(entryPath).isDirectory()) {
|
|
324
|
+
return this.logError(`Unexpected non-directory entry in src/: ${sourceFolderType}`);
|
|
325
|
+
}
|
|
326
|
+
const tsConfigPath = pathResolve(entryPath, CONST_TS_CONFIG);
|
|
327
|
+
if (this.config.customTSConfig) {
|
|
328
|
+
if (!existsSync(tsConfigPath))
|
|
329
|
+
throw new BadImplementationException(`Expected custom tsconfig in folder for source folder: ${entryPath}`);
|
|
330
|
+
this.logVerbose(`${CONST_TS_CONFIG} is defined custom for source: ${sourceFolderType}, skipping copy.`);
|
|
331
|
+
return;
|
|
332
|
+
}
|
|
333
|
+
// const defaultTsConfigTemplate = pathResolve(baiDefaultsPath, `tsconfig-${entry}.json`);
|
|
334
|
+
const projectDefaultTsConfig = pathResolve(this.runtimeContext.parentUnit.config.fullPath, this.runtimeContext.baiConfig.files?.typescript?.tsConfig?.[sourceFolderType] ?? `tsconfig-${sourceFolderType}.json`);
|
|
335
|
+
if (existsSync(projectDefaultTsConfig)) {
|
|
336
|
+
this.logDebug(`Copying project-level default tsconfig for source: ${sourceFolderType}`);
|
|
337
|
+
const dependencyPaths = {}; //this.deriveTSConfigPaths();
|
|
338
|
+
await FileSystemUtils.file.template.copy(projectDefaultTsConfig, tsConfigPath, { SOURCE_ROOT: entryPath, PATHS: __stringify(dependencyPaths, true) });
|
|
339
|
+
return;
|
|
340
|
+
}
|
|
341
|
+
// if (existsSync(defaultTsConfigTemplate)) {
|
|
342
|
+
// this.logDebug(`Copying default tsconfig for source: ${entry}`);
|
|
343
|
+
// copyFileSync(defaultTsConfigTemplate, tsConfigPath);
|
|
344
|
+
// continue;
|
|
345
|
+
// }
|
|
346
|
+
this.logError(`Missing tsconfig templates for source folder: ${sourceFolderType}`);
|
|
347
|
+
throw new ImplementationMissingException(`Missing tsconfig template for source folder: ${sourceFolderType}`);
|
|
348
|
+
}
|
|
349
|
+
async publishDryRun() {
|
|
350
|
+
if (this.config.packageJson.private)
|
|
351
|
+
return this.logWarning(`Not publishing a private package`);
|
|
352
|
+
this.logDebug(`Creating NPM Package`);
|
|
353
|
+
await this.allocateCommando(Commando_Basic)
|
|
354
|
+
.cd(this.config.output)
|
|
355
|
+
.append('npm pack --pack-destination ./..')
|
|
356
|
+
.execute();
|
|
357
|
+
this.logDebug(`Publishing Dry Run`);
|
|
358
|
+
await this.allocateCommando(Commando_Basic)
|
|
359
|
+
.cd(this.config.output)
|
|
360
|
+
.append('npm publish --dry-run')
|
|
361
|
+
.execute();
|
|
362
|
+
}
|
|
363
|
+
async publish() {
|
|
364
|
+
if (this.config.packageJson.private)
|
|
365
|
+
return this.logInfo(`Not publishing a private package`);
|
|
366
|
+
this.logDebug(`Publishing Package - For REAL`);
|
|
367
|
+
await this.allocateCommando(Commando_Basic)
|
|
368
|
+
.cd(this.config.output)
|
|
369
|
+
.append('npm publish --access public')
|
|
370
|
+
.execute();
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
//# sourceMappingURL=Unit_TypescriptLib.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Unit_TypescriptLib.js","sourceRoot":"/Users/tacb0ss/dev/nu-art/beamz/_thunderstorm/build-and-install/src/main/","sources":["v3/units/Unit_TypescriptLib.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { Unit_TypescriptLib, Unit_TypescriptLib_Config } from '../index.js';
|
|
2
|
+
import { UnitPhaseImplementor } from '../../core/types.js';
|
|
3
|
+
import { FirebasePackageConfig } from '../../../core/types/index.js';
|
|
4
|
+
import { Phase_Deploy, Phase_Launch } from '../../phase/index.js';
|
|
5
|
+
export declare const firebaseFunctionEmulator_ErrorStrings: string[];
|
|
6
|
+
export declare const firebaseFunctionEmulator_WarningStrings: string[];
|
|
7
|
+
type EnvConfig = {
|
|
8
|
+
defaultConfig?: string;
|
|
9
|
+
envConfig?: string;
|
|
10
|
+
projectId: string;
|
|
11
|
+
isLocal?: boolean;
|
|
12
|
+
};
|
|
13
|
+
export type Unit_FirebaseFunctionsApp_Config = Unit_TypescriptLib_Config & {
|
|
14
|
+
firebaseConfig?: FirebasePackageConfig;
|
|
15
|
+
pathToFirebaseConfig: string;
|
|
16
|
+
envConfig: EnvConfig;
|
|
17
|
+
ignore?: string[];
|
|
18
|
+
debugPort: number;
|
|
19
|
+
basePort: number;
|
|
20
|
+
sslKey: string;
|
|
21
|
+
sslCert: string;
|
|
22
|
+
pathToEmulatorData: string;
|
|
23
|
+
sources?: string[];
|
|
24
|
+
};
|
|
25
|
+
export declare class Unit_FirebaseFunctionsApp<C extends Unit_FirebaseFunctionsApp_Config = Unit_FirebaseFunctionsApp_Config> extends Unit_TypescriptLib<C> implements UnitPhaseImplementor<[Phase_Launch, Phase_Deploy]> {
|
|
26
|
+
static staggerCount: number;
|
|
27
|
+
static DefaultConfig_FirebaseFunction: {
|
|
28
|
+
pathToFirebaseConfig: string;
|
|
29
|
+
debugPort: number;
|
|
30
|
+
basePort: number;
|
|
31
|
+
sslKey: string;
|
|
32
|
+
sslCert: string;
|
|
33
|
+
output: string;
|
|
34
|
+
pathToEmulatorData: string;
|
|
35
|
+
};
|
|
36
|
+
readonly emulatorLogStrings: {
|
|
37
|
+
error: string[];
|
|
38
|
+
warning: string[];
|
|
39
|
+
};
|
|
40
|
+
constructor(config: Unit_FirebaseFunctionsApp<C>['config']);
|
|
41
|
+
protected copyPackageJSONToOutput(): Promise<void>;
|
|
42
|
+
prepare(): Promise<void>;
|
|
43
|
+
resolveConfigs(): Promise<void>;
|
|
44
|
+
postCompile(): Promise<void>;
|
|
45
|
+
launch(): Promise<void>;
|
|
46
|
+
releaseEmulatorPorts(): Promise<void>;
|
|
47
|
+
deploy(): Promise<void>;
|
|
48
|
+
private getEnvConfig;
|
|
49
|
+
private resolveFunctionsRC;
|
|
50
|
+
private resolveProxyFile;
|
|
51
|
+
private resolveConfigDir;
|
|
52
|
+
private resolveFunctionsJSON;
|
|
53
|
+
private resolveFunctionsRuntimeConfig;
|
|
54
|
+
private createAppVersionFile;
|
|
55
|
+
protected deriveDistDependencies(): {
|
|
56
|
+
[s: string]: string;
|
|
57
|
+
};
|
|
58
|
+
private createDependenciesDir;
|
|
59
|
+
private runProxy;
|
|
60
|
+
private runEmulator;
|
|
61
|
+
}
|
|
62
|
+
export {};
|