@eui/tools 6.1.0 → 6.1.2

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.
@@ -10,20 +10,34 @@ const configUtils = require('../config/config-utils');
10
10
  const metadataUtils = require('../metadata/metadata-utils');
11
11
 
12
12
  // FETCH ARGS
13
- const { dryRun, skipInstall, registry, remotesImport, skipLocalPackagesDeps } = tools.getArgs();
13
+ const { dryRun, skipInstall, registry, skipLocalPackagesDeps } = tools.getArgs();
14
14
 
15
15
 
16
+ const getInstallRegistry = () => {
17
+ const NPM_REGISTRY_INSTALL = configUtils.global.getConfigOptions().NPM_REGISTRY_INSTALL;
18
+
19
+ // check if registry has been passed as argument
20
+ var installRegistry;
21
+ if (registry) {
22
+ installRegistry = registry;
23
+ } else {
24
+ installRegistry = NPM_REGISTRY_INSTALL;
25
+ }
26
+
27
+ return installRegistry;
28
+ }
29
+
16
30
 
17
- const installDeps = (deps) => {
31
+ module.exports.installDeps = (deps) => {
18
32
 
19
33
  return Promise.resolve()
20
- // Install dependencies
21
- .then(() => {
22
- tools.logTitle('Package dependencies to install : ');
34
+ // Install dependencies
35
+ .then(() => {
36
+ tools.logTitle('Package dependencies to install : ');
23
37
 
24
- const rootFolder = process.cwd();
25
- const pkgJsonFile = path.resolve(rootFolder, 'package.json');
26
- const pkgJson = require(pkgJsonFile);
38
+ const rootFolder = process.cwd();
39
+ const pkgJsonFile = path.resolve(rootFolder, 'package.json');
40
+ const pkgJson = require(pkgJsonFile);
27
41
 
28
42
  pkgJson.dependencies = deps;
29
43
 
@@ -43,21 +57,7 @@ const installDeps = (deps) => {
43
57
  }
44
58
 
45
59
 
46
- const getInstallRegistry = () => {
47
- const NPM_REGISTRY_INSTALL = configUtils.global.getConfigOptions().NPM_REGISTRY_INSTALL;
48
-
49
- // check if registry has been passed as argument
50
- var installRegistry;
51
- if (registry) {
52
- installRegistry = registry;
53
- } else {
54
- installRegistry = NPM_REGISTRY_INSTALL;
55
- }
56
-
57
- return installRegistry;
58
- }
59
-
60
- const executeInstall = (cwdPath) => {
60
+ const executeInstall = module.exports.executeInstall = (cwdPath) => {
61
61
  return Promise.resolve()
62
62
  .then(() => {
63
63
  const installRegistry = getInstallRegistry();
@@ -74,7 +74,7 @@ const executeInstall = (cwdPath) => {
74
74
  }
75
75
 
76
76
 
77
- const executeInstallPackage = (cwdPath, npmPkg) => {
77
+ module.exports.executeInstallPackage = (cwdPath, npmPkg) => {
78
78
  return Promise.resolve()
79
79
  .then(() => {
80
80
  const installRegistry = getInstallRegistry();
@@ -91,7 +91,7 @@ const executeInstallPackage = (cwdPath, npmPkg) => {
91
91
  }
92
92
 
93
93
 
94
- const getRemappedDeps = (pkgDeps, pkgDefaultDeps, isMaster) => {
94
+ module.exports.getRemappedDeps = (pkgDeps, pkgDefaultDeps, isMaster) => {
95
95
  tools.logTitle('Remapping major version carret declared dependencies');
96
96
 
97
97
  return Promise.resolve()
@@ -150,7 +150,7 @@ const getRemappedDeps = (pkgDeps, pkgDefaultDeps, isMaster) => {
150
150
 
151
151
 
152
152
 
153
- const getResolvedCarretDeps = (deps, isMaster) => {
153
+ const getResolvedCarretDeps = module.exports.getResolvedCarretDeps = (deps, isMaster) => {
154
154
  tools.logTitle('Resolving carret versions for prev or next version packages');
155
155
 
156
156
  tools.logInfo('processing dependencies : ');
@@ -195,368 +195,3 @@ const getResolvedCarretDeps = (deps, isMaster) => {
195
195
  })
196
196
  }
197
197
 
198
-
199
-
200
-
201
- const getLocalPackageDeps = (pkg) => {
202
- let pkgJsonFile;
203
-
204
- if (pkg.parent) {
205
- return {};
206
- } else {
207
- if (pkg.child) {
208
- pkgJsonFile = path.join(process.cwd(), 'packages', pkg.parentPkg, 'packages', pkg.folder || pkg.name, 'package.json');
209
- } else {
210
- pkgJsonFile = path.join(process.cwd(), 'packages', pkg.name, 'package.json');
211
- }
212
- }
213
-
214
- return tools.getJsonFileContent(pkgJsonFile).dependencies || {};
215
- }
216
-
217
-
218
- const getLocalPackagesDeps = () => {
219
- const packages = configUtils.packages.getPackages();
220
- let deps = {};
221
-
222
- packages.forEach(p => {
223
- const pkgDeps = getLocalPackageDeps(p);
224
-
225
- tools.logInfo(`Getting local dependencies for ${p.name}`);
226
- console.log(JSON.stringify(pkgDeps, null, 2));
227
-
228
- const pdeps = Object.keys(pkgDeps)
229
- .reduce((acc, k) => {
230
- if (k.indexOf('@eui') !== -1 ) {
231
- if (k.indexOf('@eui/ecl') !== -1 ||
232
- k.indexOf('@eui/styles-base') !== -1
233
- ) {
234
- acc[k] = pkgDeps[k];
235
- }
236
- } else {
237
- acc[k] = pkgDeps[k];
238
- }
239
- return acc;
240
- }, {});
241
-
242
- deps = { ...deps, ...pdeps };
243
- })
244
-
245
- return deps;
246
- }
247
-
248
-
249
- const getLocalPackageCompositeDeps = (pkg) => {
250
- let pkgJsonFile;
251
-
252
- if (!skipLocalPackagesDeps) {
253
- if (pkg.child) {
254
- pkgJsonFile = path.join(process.cwd(), 'packages', pkg.parentPkg, 'packages', pkg.folder || pkg.name, 'dependencies-composite.json');
255
- } else {
256
- pkgJsonFile = path.join(process.cwd(), 'packages', pkg.name, 'dependencies-composite.json');
257
- }
258
-
259
- if (tools.isFileExists(pkgJsonFile)) {
260
- tools.logInfo(`found ${pkgJsonFile}, parsing...`);
261
- }
262
-
263
- return tools.getJsonFileContent(pkgJsonFile) || {};
264
-
265
- } else {
266
- tools.logInfo('Skipping gathering local packages composite deps');
267
-
268
- return {};
269
- }
270
- }
271
-
272
-
273
- const getLocalPackagesCompositeDeps = () => {
274
- tools.logTitle('Parsing composite deps for local packages');
275
-
276
- let deps = {};
277
-
278
- // getting locally mounted packages, don't take into account remotely installed packages (elements remote)
279
- const packages = configUtils.packages.getPackages().filter((p) => {
280
- return !p.paths.remoteNodeModules;
281
- });
282
-
283
- packages.forEach(p => {
284
- tools.logInfo(`Parsing package : ${p.name}`);
285
-
286
- // getting the package composite if any
287
- const compositeDeps = getLocalPackageCompositeDeps(p);
288
-
289
- deps = { ...deps, ...compositeDeps };
290
-
291
- tools.logInfo('Deps found : ');
292
- console.log(deps);
293
- })
294
-
295
- return deps;
296
- }
297
-
298
-
299
- const getLocalPackageBaseDeps = (pkg) => {
300
- let pkgJsonFile;
301
-
302
- if (!skipLocalPackagesDeps) {
303
- if (pkg.child) {
304
- pkgJsonFile = path.join(process.cwd(), 'packages', pkg.parentPkg, 'packages', pkg.folder || pkg.name, 'dependencies-base.json');
305
- } else {
306
- pkgJsonFile = path.join(process.cwd(), 'packages', pkg.name, 'dependencies-base.json');
307
- }
308
-
309
- if (tools.isFileExists(pkgJsonFile)) {
310
- tools.logInfo(`found ${pkgJsonFile}, parsing...`);
311
- }
312
-
313
- return tools.getJsonFileContent(pkgJsonFile) || {};
314
-
315
- } else {
316
- tools.logInfo('Skipping gathering local packages base deps');
317
-
318
- return {};
319
- }
320
- }
321
-
322
-
323
-
324
- const getLocalPackagesBaseDeps = () => {
325
- tools.logTitle('Parsing base deps for local packages');
326
-
327
- let deps = {};
328
-
329
- // getting locally mounted packages, don't take into account remotely installed packages (elements remote)
330
- const packages = configUtils.packages.getPackages().filter((p) => {
331
- return !p.paths.remoteNodeModules;
332
- });
333
-
334
- packages.forEach(p => {
335
- tools.logInfo(`Parsing package : ${p.name}`);
336
-
337
- // getting the package base if any
338
- const baseDeps = getLocalPackageBaseDeps(p);
339
-
340
- deps = { ...deps, ...baseDeps };
341
-
342
- tools.logInfo('Deps found : ');
343
- console.log(deps);
344
- })
345
-
346
- return deps;
347
- }
348
-
349
-
350
- const getLocalPackagesCompositeDepsRemapped = () => {
351
- return Promise.resolve()
352
- .then(() => {
353
- return metadataUtils.package.getPackagesDeps('packages');
354
- })
355
-
356
- .then((depsMetadata) => {
357
- const compositeDeps = getLocalPackagesCompositeDeps();
358
-
359
- return getRemappedDeps(depsMetadata, compositeDeps, false);
360
- })
361
-
362
- .then((remappedDeps) => {
363
- tools.logInfo('Remapped deps : ');
364
-
365
- console.log(remappedDeps);
366
-
367
- return remappedDeps;
368
- })
369
-
370
- .catch((e) => {
371
- throw e;
372
- })
373
- }
374
-
375
-
376
- const getLocalProjectDeps = (prj, snapshotsMetadata) => {
377
- tools.logInfo(`Getting deps for ${prj.name}`);
378
-
379
- // check dependencies file - default
380
- const prjJsonFile = path.join(process.cwd(), prj.folder, 'dependencies-base.json');
381
- const prjDeps = tools.getJsonFileContent(prjJsonFile) || {};
382
-
383
- // check dependencies composite file - default
384
- const prjCompJsonFile = path.join(process.cwd(), prj.folder, 'dependencies-composite.json');
385
-
386
- const depsJson = tools.getJsonFileContent(prjCompJsonFile);
387
- let prjCompDeps;
388
- if (depsJson.dependencies) {
389
- prjCompDeps = depsJson.dependencies || {};
390
- } else {
391
- prjCompDeps = depsJson || {}
392
- }
393
-
394
- let remoteDeps = {};
395
- if (prj.initRemoteDependencies && remotesImport && snapshotsMetadata) {
396
-
397
- tools.logInfo('Importing remotes deps... this might take a while');
398
-
399
- const remotes = configUtils.packages.getCsdrRemotePackages()
400
- .filter((p) => {
401
- return p.active === true
402
- })
403
- .map((p) => {
404
- return { npmgPkg: p.npmPkg, version: snapshotsMetadata[p.npmPkg] }
405
- })
406
- .filter((dep) => {
407
- return dep.version !== undefined
408
- })
409
-
410
- remotes.forEach((r) => {
411
- remoteDeps[r.npmgPkg] = r.version;
412
- });
413
- }
414
-
415
- return { ...prjDeps, ...prjCompDeps, ...remoteDeps };
416
- }
417
-
418
-
419
- const getLocalProjectsDeps = (snapshotsMetadata) => {
420
- tools.logTitle('Getting project dependencies');
421
-
422
- const projects = configUtils.projects.getProjects();
423
- let deps = {};
424
-
425
- projects.forEach(p => {
426
- if (p) {
427
- const prjDeps = getLocalProjectDeps(p, snapshotsMetadata);
428
- deps = { ...deps, ...prjDeps };
429
- }
430
- })
431
-
432
- return deps;
433
- }
434
-
435
-
436
- const getLocalProjectFixedDeps = (prj) => {
437
- tools.logTitle('Getting project fixed dependencies - not part of the composite');
438
-
439
- return Promise.resolve()
440
- .then(() => {
441
- return metadataUtils.package.getPackagesDeps('packages');
442
- })
443
-
444
- // extracting the fixed deps versions from metadata
445
- .then((pkgDeps) => {
446
- let deps = {};
447
-
448
- if (prj.fixedDependencies) {
449
- tools.logInfo('Project fixed dependencies found...processing');
450
- console.log(prj.fixedDependencies);
451
-
452
- prj.fixedDependencies.forEach((dep) => {
453
- const newDep = { [dep]: pkgDeps[dep] };
454
- deps = { ...deps, ...newDep }
455
- })
456
- }
457
-
458
- tools.logInfo('Project fixed dependencies remapped : ');
459
- console.log(deps);
460
-
461
- return deps;
462
- })
463
-
464
- .catch((e) => {
465
- throw e;
466
- })
467
- }
468
-
469
-
470
- const getLocalProjectsFixedDeps = async _ => {
471
- const projects = configUtils.projects.getProjects();
472
- let deps = {};
473
-
474
- const promises = projects.map(async prj => {
475
- const prjDeps = await getLocalProjectFixedDeps(prj)
476
- deps = { ...deps, ...prjDeps};
477
- return deps;
478
- })
479
-
480
- await Promise.all(promises);
481
- return deps;
482
- }
483
-
484
-
485
- const importLocalProjectRemotes = (prj, deps) => {
486
- if (prj.initRemoteDependencies) {
487
- tools.logInfo(`Import remotes for project : ${prj.name}`);
488
-
489
- const remoteDeps = Object.keys(deps).filter((dep) => {
490
- return dep.indexOf('remote-el') !== -1;
491
- })
492
-
493
- if (remoteDeps.length === 0) {
494
- tools.logWarning('Remotes not found...skipping');
495
-
496
- } else {
497
- tools.logInfo(`Initializing ${remoteDeps.length} remotes`);
498
-
499
- remoteDeps.forEach((remoteNpmPkg) => {
500
- tools.logInfo(`Checking import for : ${remoteNpmPkg}`);
501
-
502
- // check if package has been installed locally
503
- const localPackage = configUtils.packages.getPackages().filter((p) => {
504
- return p.npmPkg === remoteNpmPkg
505
- })[0];
506
-
507
- if (localPackage) {
508
- tools.logInfo('remote is installed locally...skipping import');
509
-
510
- } else {
511
- const pkg = configUtils.packages.getPackageByNpmPkg(remoteNpmPkg, true);
512
- const projectElementsPath = path.join(process.cwd(), prj.folder, 'src', 'assets', 'elements', pkg.name, 'bundles');
513
-
514
- const npmPkgScope = remoteNpmPkg.substr(0, remoteNpmPkg.indexOf('/'));
515
- const npmPkgName = remoteNpmPkg.substr(remoteNpmPkg.indexOf('/') + 1);
516
- const remoteNmPath = path.join(process.cwd(), 'node_modules', npmPkgScope, npmPkgName, 'bundles');
517
-
518
- tools.logInfo(`${remoteNpmPkg} - injecting in ${projectElementsPath}`);
519
- tools.copydir(remoteNmPath, projectElementsPath);
520
- }
521
-
522
- });
523
- }
524
- }
525
- }
526
-
527
-
528
- const importLocalProjectsRemotes = (deps) => {
529
- const projects = configUtils.projects.getProjects();
530
-
531
- tools.logTitle('Importing local projects remotes');
532
-
533
- if (remotesImport) {
534
- projects.forEach(p => {
535
- if (p) {
536
- importLocalProjectRemotes(p, deps);
537
- }
538
- })
539
- }
540
- }
541
-
542
-
543
-
544
- module.exports = {
545
- installDeps,
546
- executeInstall,
547
- executeInstallPackage,
548
- getRemappedDeps,
549
- getLocalPackageDeps,
550
- getLocalPackagesDeps,
551
- getLocalPackageCompositeDeps,
552
- getLocalPackagesCompositeDeps,
553
- getLocalPackagesCompositeDepsRemapped,
554
- getLocalPackageBaseDeps,
555
- getLocalPackagesBaseDeps,
556
- getLocalProjectDeps,
557
- getLocalProjectsDeps,
558
- getLocalProjectFixedDeps,
559
- getLocalProjectsFixedDeps,
560
- importLocalProjectRemotes,
561
- importLocalProjectsRemotes
562
- }
@@ -1,9 +1,5 @@
1
1
  'use strict';
2
2
 
3
- // GLOBAL
4
- const execa = require('execa');
5
- const path = require('path');
6
-
7
3
  // LOCAL
8
4
  const tools = require('../../utils/tools');
9
5
  const configUtils = require('../config/config-utils');
@@ -12,72 +8,85 @@ const metadataUtils = require('../metadata/metadata-utils');
12
8
  // INNER MODULES
13
9
  const innerCommon = require('./common');
14
10
  const innerRemotes = require('./remotes');
11
+ const innerProjects = require('./projects');
12
+ const innerPackages = require('./packages');
15
13
 
16
- // FETCH ARGS
17
- const { dryRun, skipInstall } = tools.getArgs();
14
+ module.exports.installPackage = (pkgName) => {
18
15
 
16
+ const pkg = configUtils.packages.getPackage(pkgName, false, true);
19
17
 
18
+ return Promise.resolve()
19
+ .then(() => {
20
+ return metadataUtils.common.cloneMetadataRepo(true);
21
+ })
20
22
 
23
+ .then(() => {
24
+ if (pkg.remote) {
25
+ return innerRemotes.installDeps(pkg);
26
+ } else {
27
+ return innerPackages.installDeps(null, pkg);
28
+ }
29
+ })
30
+
31
+ .catch((e) => {
32
+ throw e;
33
+ })
34
+ }
21
35
 
22
- module.exports.install = (pkg) => {
23
- let packagesDeps, packagesCompositeDeps, projectsDeps, projectsFixedDeps, finalDeps, snapshotsMetadata;
24
36
 
25
- // specific if coming from init script and pkgOnly is provided, we only install the remote deps
26
- if (pkg && typeof(pkg) === 'string') {
27
- pkg = configUtils.packages.getPackage(pkg);
28
- }
37
+
38
+ module.exports.install = () => {
39
+ let finalDeps = {}, resolvedDeps = {}, remoteDeps = {};
29
40
 
30
41
  return Promise.resolve()
31
42
 
32
- // cloning devops metadata repo
33
43
  .then(() => {
34
44
  return metadataUtils.common.cloneMetadataRepo(true);
35
45
  })
36
46
 
37
- // getting packages snapshot deps metadata and storing
47
+ // getting internal packages deps - cloned locally
38
48
  .then(() => {
39
- return metadataUtils.package.getPackagesDeps('packages');
49
+ return innerPackages.getLocalPackagesDeps();
40
50
  })
41
- .then((depsMetadata) => {
42
- snapshotsMetadata = depsMetadata;
51
+ .then((deps) => {
52
+ resolvedDeps = {...resolvedDeps, ...deps};
43
53
  })
44
54
 
45
- // getting internal packages deps - cloned locally
55
+ // Getting internal packages deps - project cloned locally
46
56
  .then(() => {
47
- return innerCommon.getLocalPackagesDeps();
57
+ return innerPackages.getLocalPackagesCompositeDeps();
48
58
  })
49
-
50
-
51
-
52
- // Getting internal packages deps - project cloned locally
53
- .then((pkgDeps) => {
54
- // storing
55
- packagesDeps = pkgDeps;
56
-
57
- return innerCommon.getLocalPackagesCompositeDeps();
59
+ .then((deps) => {
60
+ resolvedDeps = {...resolvedDeps, ...deps};
58
61
  })
59
62
 
60
63
  // Getting internal packages deps - project cloned locally
61
- .then((pkgCompositeDeps) => {
62
- // storing
63
- packagesCompositeDeps = pkgCompositeDeps;
64
-
65
- return innerCommon.getLocalProjectsDeps(snapshotsMetadata);
64
+ .then(() => {
65
+ return innerProjects.getLocalProjectsDeps();
66
66
  })
67
- .then((prjDeps) => {
68
- projectsDeps = prjDeps;
67
+ .then((deps) => {
68
+ resolvedDeps = {...resolvedDeps, ...deps};
69
69
  })
70
70
 
71
-
72
71
  // getting internal projects fixed deps if any
73
72
  .then(() => {
74
- return innerCommon.getLocalProjectsFixedDeps();
73
+ return innerProjects.getLocalProjectsFixedDeps();
74
+ })
75
+ .then((deps) => {
76
+ resolvedDeps = {...resolvedDeps, ...deps};
77
+ })
78
+
79
+ // getting internal projects remotes deps if any
80
+ .then(() => {
81
+ return innerProjects.getLocalProjectsRemoteDeps();
75
82
  })
76
- .then((prjFixedDeps) => {
77
- projectsFixedDeps = prjFixedDeps;
83
+ .then((deps) => {
84
+ remoteDeps = deps; // storing for remote import usage
85
+ resolvedDeps = {...resolvedDeps, ...deps};
78
86
  })
79
87
 
80
88
 
89
+
81
90
  // Get last known working build dependencies from DEVOPS metadata, including snapshot releases
82
91
  .then(() => {
83
92
  return metadataUtils.package.getPackagesDeps('packages');
@@ -89,13 +98,10 @@ module.exports.install = (pkg) => {
89
98
 
90
99
  const fixedDeps = configUtils.global.getConfig().npm.fixedDependencies;
91
100
 
92
- const configDeps = { ...packagesDeps, ...packagesCompositeDeps, ...projectsDeps, ...projectsFixedDeps, ...fixedDeps };
101
+ const configDeps = { ...resolvedDeps, ...fixedDeps };
93
102
 
94
- tools.logInfo('Package deps found : ');
95
- console.log(packagesDeps);
96
-
97
- tools.logInfo('Packages composite deps found : ');
98
- console.log(packagesCompositeDeps);
103
+ tools.logInfo('Accumulated dependencies found : ');
104
+ console.log(configDeps);
99
105
 
100
106
  return innerCommon.getRemappedDeps(depsMetadata, configDeps, false);
101
107
  })
@@ -105,19 +111,17 @@ module.exports.install = (pkg) => {
105
111
  .then((updatedDeps) => {
106
112
  finalDeps = updatedDeps;
107
113
 
108
- if (!pkg) {
109
- return innerCommon.installDeps(updatedDeps);
110
- }
114
+ return innerCommon.installDeps(updatedDeps);
111
115
  })
112
116
 
113
117
  // Import remotes into local projects
114
118
  .then(() => {
115
- return innerCommon.importLocalProjectsRemotes(finalDeps);
119
+ return innerProjects.importLocalProjectsRemotes(remoteDeps);
116
120
  })
117
121
 
118
122
  // checking remotes
119
123
  .then(() => {
120
- return innerRemotes.installDeps(pkg);
124
+ return innerRemotes.installDeps();
121
125
  })
122
126
 
123
127
  .then(() => {