@commercetools-frontend/create-mc-app 21.21.0 → 21.21.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.
- package/CHANGELOG.md +10 -0
- package/dist/commercetools-frontend-create-mc-app.cjs.dev.js +83 -47
- package/dist/commercetools-frontend-create-mc-app.cjs.prod.js +83 -42
- package/dist/commercetools-frontend-create-mc-app.esm.js +75 -47
- package/dist/declarations/src/get-latest-release-version.d.ts +2 -0
- package/dist/declarations/src/hint-outdated-version.d.ts +1 -1
- package/dist/declarations/src/tasks/update-package-json.d.ts +1 -1
- package/package.json +1 -1
- package/src/cli.ts +5 -2
- package/src/get-latest-release-version.ts +15 -0
- package/src/hint-outdated-version.ts +10 -30
- package/src/tasks/update-package-json.ts +31 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# @commercetools-frontend/create-mc-app
|
|
2
2
|
|
|
3
|
+
## 21.21.2
|
|
4
|
+
|
|
5
|
+
## 21.21.1
|
|
6
|
+
|
|
7
|
+
### Patch Changes
|
|
8
|
+
|
|
9
|
+
- [#2881](https://github.com/commercetools/merchant-center-application-kit/pull/2881) [`e3ffe6c11`](https://github.com/commercetools/merchant-center-application-kit/commit/e3ffe6c11ff993296028219ab8c45562dc294963) Thanks [@emmenko](https://github.com/emmenko)! - Ensure the latest App Kit release is used in the template projects.
|
|
10
|
+
|
|
11
|
+
- [#2881](https://github.com/commercetools/merchant-center-application-kit/pull/2881) [`e3ffe6c11`](https://github.com/commercetools/merchant-center-application-kit/commit/e3ffe6c11ff993296028219ab8c45562dc294963) Thanks [@emmenko](https://github.com/emmenko)! - Use `workspace:` version syntax for link workspace packages
|
|
12
|
+
|
|
3
13
|
## 21.21.0
|
|
4
14
|
|
|
5
15
|
## 21.20.5
|
|
@@ -18,6 +18,16 @@ var _Object$keys = require('@babel/runtime-corejs3/core-js-stable/object/keys');
|
|
|
18
18
|
var semver = require('semver');
|
|
19
19
|
var _sliceInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/slice');
|
|
20
20
|
var _findInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/find');
|
|
21
|
+
var _Object$getOwnPropertySymbols = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols');
|
|
22
|
+
var _Object$getOwnPropertyDescriptor = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor');
|
|
23
|
+
var _forEachInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/for-each');
|
|
24
|
+
var _Object$getOwnPropertyDescriptors = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors');
|
|
25
|
+
var _Object$defineProperties = require('@babel/runtime-corejs3/core-js-stable/object/define-properties');
|
|
26
|
+
var _Object$defineProperty = require('@babel/runtime-corejs3/core-js-stable/object/define-property');
|
|
27
|
+
var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty');
|
|
28
|
+
var _slicedToArray = require('@babel/runtime-corejs3/helpers/slicedToArray');
|
|
29
|
+
var _reduceInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/reduce');
|
|
30
|
+
var _Object$entries = require('@babel/runtime-corejs3/core-js-stable/object/entries');
|
|
21
31
|
var _Object$assign = require('@babel/runtime-corejs3/core-js-stable/object/assign');
|
|
22
32
|
var _JSON$stringify = require('@babel/runtime-corejs3/core-js-stable/json/stringify');
|
|
23
33
|
var rcfile = require('rcfile');
|
|
@@ -43,6 +53,14 @@ var _Object$keys__default = /*#__PURE__*/_interopDefault(_Object$keys);
|
|
|
43
53
|
var semver__default = /*#__PURE__*/_interopDefault(semver);
|
|
44
54
|
var _sliceInstanceProperty__default = /*#__PURE__*/_interopDefault(_sliceInstanceProperty);
|
|
45
55
|
var _findInstanceProperty__default = /*#__PURE__*/_interopDefault(_findInstanceProperty);
|
|
56
|
+
var _Object$getOwnPropertySymbols__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertySymbols);
|
|
57
|
+
var _Object$getOwnPropertyDescriptor__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptor);
|
|
58
|
+
var _forEachInstanceProperty__default = /*#__PURE__*/_interopDefault(_forEachInstanceProperty);
|
|
59
|
+
var _Object$getOwnPropertyDescriptors__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptors);
|
|
60
|
+
var _Object$defineProperties__default = /*#__PURE__*/_interopDefault(_Object$defineProperties);
|
|
61
|
+
var _Object$defineProperty__default = /*#__PURE__*/_interopDefault(_Object$defineProperty);
|
|
62
|
+
var _reduceInstanceProperty__default = /*#__PURE__*/_interopDefault(_reduceInstanceProperty);
|
|
63
|
+
var _Object$entries__default = /*#__PURE__*/_interopDefault(_Object$entries);
|
|
46
64
|
var _Object$assign__default = /*#__PURE__*/_interopDefault(_Object$assign);
|
|
47
65
|
var _JSON$stringify__default = /*#__PURE__*/_interopDefault(_JSON$stringify);
|
|
48
66
|
var rcfile__default = /*#__PURE__*/_interopDefault(rcfile);
|
|
@@ -337,7 +355,25 @@ function installDependencies(options) {
|
|
|
337
355
|
};
|
|
338
356
|
}
|
|
339
357
|
|
|
340
|
-
function
|
|
358
|
+
function ownKeys(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
359
|
+
|
|
360
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context2, _context3; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context2 = ownKeys(Object(source), !0)).call(_context2, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context3 = ownKeys(Object(source))).call(_context3, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
|
|
361
|
+
|
|
362
|
+
var replaceApplicationKitPackageVersionWith = function replaceApplicationKitPackageVersionWith(releaseVersion) {
|
|
363
|
+
var _context;
|
|
364
|
+
|
|
365
|
+
var dependencies = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
366
|
+
return _reduceInstanceProperty__default["default"](_context = _Object$entries__default["default"](dependencies)).call(_context, function (updatedDependencies, _ref) {
|
|
367
|
+
var _ref2 = _slicedToArray(_ref, 2),
|
|
368
|
+
dependencyName = _ref2[0],
|
|
369
|
+
dependencyVersion = _ref2[1];
|
|
370
|
+
|
|
371
|
+
var updatedVersion = dependencyVersion === 'workspace:*' ? releaseVersion : dependencyVersion;
|
|
372
|
+
return _objectSpread(_objectSpread({}, updatedDependencies), {}, _defineProperty({}, dependencyName, updatedVersion));
|
|
373
|
+
}, {});
|
|
374
|
+
};
|
|
375
|
+
|
|
376
|
+
function updatePackageJson(options, releaseVersion) {
|
|
341
377
|
return {
|
|
342
378
|
title: 'Updating package.json',
|
|
343
379
|
task: function task() {
|
|
@@ -353,7 +389,10 @@ function updatePackageJson(options) {
|
|
|
353
389
|
// The `projectDirectoryName` should not have restrictions (e.g. no `_`)
|
|
354
390
|
// as a result the package name potentially needs to be altered when derived.
|
|
355
391
|
name: slugify(options.projectDirectoryName),
|
|
356
|
-
description: ''
|
|
392
|
+
description: '',
|
|
393
|
+
// Replace the package versions with the `workspace:` syntax to the real version.
|
|
394
|
+
dependencies: replaceApplicationKitPackageVersionWith(releaseVersion, appPackageJson.dependencies),
|
|
395
|
+
devDependencies: replaceApplicationKitPackageVersionWith(releaseVersion, appPackageJson.devDependencies)
|
|
357
396
|
});
|
|
358
397
|
|
|
359
398
|
fs__default["default"].writeFileSync(packageJsonPath, _JSON$stringify__default["default"](updatedAppPackageJson, null, 2) + os__default["default"].EOL, {
|
|
@@ -460,56 +499,51 @@ function updateApplicationConstants(options) {
|
|
|
460
499
|
};
|
|
461
500
|
}
|
|
462
501
|
|
|
463
|
-
function
|
|
464
|
-
return
|
|
502
|
+
function getLatestReleaseVersion() {
|
|
503
|
+
return _getLatestReleaseVersion.apply(this, arguments);
|
|
465
504
|
}
|
|
466
505
|
|
|
467
|
-
function
|
|
468
|
-
|
|
469
|
-
var
|
|
470
|
-
|
|
471
|
-
return _regeneratorRuntime__default["default"].wrap(function _callee$(_context3) {
|
|
506
|
+
function _getLatestReleaseVersion() {
|
|
507
|
+
_getLatestReleaseVersion = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee() {
|
|
508
|
+
var commandResult, packageInfoForTagLatest;
|
|
509
|
+
return _regeneratorRuntime__default["default"].wrap(function _callee$(_context) {
|
|
472
510
|
while (1) {
|
|
473
|
-
switch (
|
|
511
|
+
switch (_context.prev = _context.next) {
|
|
474
512
|
case 0:
|
|
475
|
-
|
|
476
|
-
_context3.next = 3;
|
|
513
|
+
_context.next = 2;
|
|
477
514
|
return execa__default["default"].command('npm view @commercetools-frontend/create-mc-app --json', {
|
|
478
515
|
encoding: 'utf-8'
|
|
479
516
|
});
|
|
480
517
|
|
|
481
|
-
case
|
|
482
|
-
commandResult =
|
|
518
|
+
case 2:
|
|
519
|
+
commandResult = _context.sent;
|
|
483
520
|
packageInfoForTagLatest = JSON.parse(commandResult.stdout);
|
|
484
|
-
|
|
485
|
-
hintNewerVersions = _filterInstanceProperty__default["default"](_context = [hasBeenReleastedInLatestTag && "".concat(packageInfoForTagLatest.version)]).call(_context, Boolean).join(', ');
|
|
486
|
-
|
|
487
|
-
if (hintNewerVersions.length > 0) {
|
|
488
|
-
console.log('');
|
|
489
|
-
console.log(_concatInstanceProperty__default["default"](_context2 = "New version available! ".concat(currentVersion, " -> ")).call(_context2, hintNewerVersions));
|
|
490
|
-
console.log('');
|
|
491
|
-
}
|
|
492
|
-
|
|
493
|
-
_context3.next = 13;
|
|
494
|
-
break;
|
|
521
|
+
return _context.abrupt("return", packageInfoForTagLatest.version);
|
|
495
522
|
|
|
496
|
-
case
|
|
497
|
-
_context3.prev = 10;
|
|
498
|
-
_context3.t0 = _context3["catch"](0);
|
|
499
|
-
|
|
500
|
-
// Ignore errors, as this function should not affect the exit code of the command
|
|
501
|
-
if (process.env.NODE_ENV === 'test') {
|
|
502
|
-
console.error(_context3.t0);
|
|
503
|
-
}
|
|
504
|
-
|
|
505
|
-
case 13:
|
|
523
|
+
case 5:
|
|
506
524
|
case "end":
|
|
507
|
-
return
|
|
525
|
+
return _context.stop();
|
|
508
526
|
}
|
|
509
527
|
}
|
|
510
|
-
}, _callee
|
|
528
|
+
}, _callee);
|
|
511
529
|
}));
|
|
512
|
-
return
|
|
530
|
+
return _getLatestReleaseVersion.apply(this, arguments);
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
function hintOutdatedVersion(currentVersion, releaseVersion) {
|
|
534
|
+
var _context;
|
|
535
|
+
|
|
536
|
+
var hasBeenReleastedInLatestTag = semver__default["default"].gt(releaseVersion, currentVersion);
|
|
537
|
+
|
|
538
|
+
var hintNewerVersions = _filterInstanceProperty__default["default"](_context = [hasBeenReleastedInLatestTag && "".concat(releaseVersion)]).call(_context, Boolean).join(', ');
|
|
539
|
+
|
|
540
|
+
if (hintNewerVersions.length > 0) {
|
|
541
|
+
var _context2;
|
|
542
|
+
|
|
543
|
+
console.log('');
|
|
544
|
+
console.log(_concatInstanceProperty__default["default"](_context2 = "New version available! ".concat(currentVersion, " -> ")).call(_context2, hintNewerVersions));
|
|
545
|
+
console.log('');
|
|
546
|
+
}
|
|
513
547
|
}
|
|
514
548
|
|
|
515
549
|
var question = function question(rl, value) {
|
|
@@ -665,7 +699,7 @@ function _processOptions() {
|
|
|
665
699
|
|
|
666
700
|
var pkgJson = {
|
|
667
701
|
name: "@commercetools-frontend/create-mc-app",
|
|
668
|
-
version: "21.21.
|
|
702
|
+
version: "21.21.2",
|
|
669
703
|
description: "Create Merchant Center applications to quickly get up and running",
|
|
670
704
|
bugs: "https://github.com/commercetools/merchant-center-application-kit/issues",
|
|
671
705
|
repository: {
|
|
@@ -726,7 +760,7 @@ var run = function run() {
|
|
|
726
760
|
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee(projectDirectory, options) {
|
|
727
761
|
var _context;
|
|
728
762
|
|
|
729
|
-
var taskOptions, taskList, useYarn;
|
|
763
|
+
var releaseVersion, taskOptions, taskList, useYarn;
|
|
730
764
|
return _regeneratorRuntime__default["default"].wrap(function _callee$(_context2) {
|
|
731
765
|
while (1) {
|
|
732
766
|
switch (_context2.prev = _context2.next) {
|
|
@@ -741,22 +775,24 @@ var run = function run() {
|
|
|
741
775
|
|
|
742
776
|
case 3:
|
|
743
777
|
_context2.next = 5;
|
|
744
|
-
return
|
|
778
|
+
return getLatestReleaseVersion();
|
|
745
779
|
|
|
746
780
|
case 5:
|
|
781
|
+
releaseVersion = _context2.sent;
|
|
782
|
+
hintOutdatedVersion(pkgJson.version, releaseVersion);
|
|
747
783
|
console.log('');
|
|
748
784
|
console.log("Documentation available at https://docs.commercetools.com/custom-applications");
|
|
749
785
|
console.log('');
|
|
750
|
-
_context2.next =
|
|
786
|
+
_context2.next = 12;
|
|
751
787
|
return processOptions(projectDirectory, options);
|
|
752
788
|
|
|
753
|
-
case
|
|
789
|
+
case 12:
|
|
754
790
|
taskOptions = _context2.sent;
|
|
755
|
-
taskList = new listr2.Listr(_filterInstanceProperty__default["default"](_context = [downloadTemplate(taskOptions), updatePackageJson(taskOptions), updateCustomApplicationConfig(taskOptions), updateApplicationConstants(taskOptions), !options.skipInstall && installDependencies(taskOptions)]).call(_context, Boolean));
|
|
756
|
-
_context2.next =
|
|
791
|
+
taskList = new listr2.Listr(_filterInstanceProperty__default["default"](_context = [downloadTemplate(taskOptions), updatePackageJson(taskOptions, releaseVersion), updateCustomApplicationConfig(taskOptions), updateApplicationConstants(taskOptions), !options.skipInstall && installDependencies(taskOptions)]).call(_context, Boolean));
|
|
792
|
+
_context2.next = 16;
|
|
757
793
|
return taskList.run();
|
|
758
794
|
|
|
759
|
-
case
|
|
795
|
+
case 16:
|
|
760
796
|
useYarn = shouldUseYarn();
|
|
761
797
|
console.log('');
|
|
762
798
|
console.log("\uD83C\uDF89 \uD83C\uDF89 \uD83C\uDF89 The Custom Application has been created in the \"".concat(taskOptions.projectDirectoryName, "\" folder."));
|
|
@@ -772,7 +808,7 @@ var run = function run() {
|
|
|
772
808
|
console.log('');
|
|
773
809
|
console.log("Visit https://docs.commercetools.com/custom-applications for more info about developing Custom Applications. Enjoy \uD83D\uDE80");
|
|
774
810
|
|
|
775
|
-
case
|
|
811
|
+
case 26:
|
|
776
812
|
case "end":
|
|
777
813
|
return _context2.stop();
|
|
778
814
|
}
|
|
@@ -18,6 +18,16 @@ var _Object$keys = require('@babel/runtime-corejs3/core-js-stable/object/keys');
|
|
|
18
18
|
var semver = require('semver');
|
|
19
19
|
var _sliceInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/slice');
|
|
20
20
|
var _findInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/find');
|
|
21
|
+
var _Object$getOwnPropertySymbols = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols');
|
|
22
|
+
var _Object$getOwnPropertyDescriptor = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor');
|
|
23
|
+
var _forEachInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/for-each');
|
|
24
|
+
var _Object$getOwnPropertyDescriptors = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors');
|
|
25
|
+
var _Object$defineProperties = require('@babel/runtime-corejs3/core-js-stable/object/define-properties');
|
|
26
|
+
var _Object$defineProperty = require('@babel/runtime-corejs3/core-js-stable/object/define-property');
|
|
27
|
+
var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty');
|
|
28
|
+
var _slicedToArray = require('@babel/runtime-corejs3/helpers/slicedToArray');
|
|
29
|
+
var _reduceInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/reduce');
|
|
30
|
+
var _Object$entries = require('@babel/runtime-corejs3/core-js-stable/object/entries');
|
|
21
31
|
var _Object$assign = require('@babel/runtime-corejs3/core-js-stable/object/assign');
|
|
22
32
|
var _JSON$stringify = require('@babel/runtime-corejs3/core-js-stable/json/stringify');
|
|
23
33
|
var rcfile = require('rcfile');
|
|
@@ -43,6 +53,14 @@ var _Object$keys__default = /*#__PURE__*/_interopDefault(_Object$keys);
|
|
|
43
53
|
var semver__default = /*#__PURE__*/_interopDefault(semver);
|
|
44
54
|
var _sliceInstanceProperty__default = /*#__PURE__*/_interopDefault(_sliceInstanceProperty);
|
|
45
55
|
var _findInstanceProperty__default = /*#__PURE__*/_interopDefault(_findInstanceProperty);
|
|
56
|
+
var _Object$getOwnPropertySymbols__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertySymbols);
|
|
57
|
+
var _Object$getOwnPropertyDescriptor__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptor);
|
|
58
|
+
var _forEachInstanceProperty__default = /*#__PURE__*/_interopDefault(_forEachInstanceProperty);
|
|
59
|
+
var _Object$getOwnPropertyDescriptors__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptors);
|
|
60
|
+
var _Object$defineProperties__default = /*#__PURE__*/_interopDefault(_Object$defineProperties);
|
|
61
|
+
var _Object$defineProperty__default = /*#__PURE__*/_interopDefault(_Object$defineProperty);
|
|
62
|
+
var _reduceInstanceProperty__default = /*#__PURE__*/_interopDefault(_reduceInstanceProperty);
|
|
63
|
+
var _Object$entries__default = /*#__PURE__*/_interopDefault(_Object$entries);
|
|
46
64
|
var _Object$assign__default = /*#__PURE__*/_interopDefault(_Object$assign);
|
|
47
65
|
var _JSON$stringify__default = /*#__PURE__*/_interopDefault(_JSON$stringify);
|
|
48
66
|
var rcfile__default = /*#__PURE__*/_interopDefault(rcfile);
|
|
@@ -337,7 +355,25 @@ function installDependencies(options) {
|
|
|
337
355
|
};
|
|
338
356
|
}
|
|
339
357
|
|
|
340
|
-
function
|
|
358
|
+
function ownKeys(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
359
|
+
|
|
360
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context2, _context3; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context2 = ownKeys(Object(source), !0)).call(_context2, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context3 = ownKeys(Object(source))).call(_context3, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
|
|
361
|
+
|
|
362
|
+
var replaceApplicationKitPackageVersionWith = function replaceApplicationKitPackageVersionWith(releaseVersion) {
|
|
363
|
+
var _context;
|
|
364
|
+
|
|
365
|
+
var dependencies = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
366
|
+
return _reduceInstanceProperty__default["default"](_context = _Object$entries__default["default"](dependencies)).call(_context, function (updatedDependencies, _ref) {
|
|
367
|
+
var _ref2 = _slicedToArray(_ref, 2),
|
|
368
|
+
dependencyName = _ref2[0],
|
|
369
|
+
dependencyVersion = _ref2[1];
|
|
370
|
+
|
|
371
|
+
var updatedVersion = dependencyVersion === 'workspace:*' ? releaseVersion : dependencyVersion;
|
|
372
|
+
return _objectSpread(_objectSpread({}, updatedDependencies), {}, _defineProperty({}, dependencyName, updatedVersion));
|
|
373
|
+
}, {});
|
|
374
|
+
};
|
|
375
|
+
|
|
376
|
+
function updatePackageJson(options, releaseVersion) {
|
|
341
377
|
return {
|
|
342
378
|
title: 'Updating package.json',
|
|
343
379
|
task: function task() {
|
|
@@ -353,7 +389,10 @@ function updatePackageJson(options) {
|
|
|
353
389
|
// The `projectDirectoryName` should not have restrictions (e.g. no `_`)
|
|
354
390
|
// as a result the package name potentially needs to be altered when derived.
|
|
355
391
|
name: slugify(options.projectDirectoryName),
|
|
356
|
-
description: ''
|
|
392
|
+
description: '',
|
|
393
|
+
// Replace the package versions with the `workspace:` syntax to the real version.
|
|
394
|
+
dependencies: replaceApplicationKitPackageVersionWith(releaseVersion, appPackageJson.dependencies),
|
|
395
|
+
devDependencies: replaceApplicationKitPackageVersionWith(releaseVersion, appPackageJson.devDependencies)
|
|
357
396
|
});
|
|
358
397
|
|
|
359
398
|
fs__default["default"].writeFileSync(packageJsonPath, _JSON$stringify__default["default"](updatedAppPackageJson, null, 2) + os__default["default"].EOL, {
|
|
@@ -460,51 +499,51 @@ function updateApplicationConstants(options) {
|
|
|
460
499
|
};
|
|
461
500
|
}
|
|
462
501
|
|
|
463
|
-
function
|
|
464
|
-
return
|
|
502
|
+
function getLatestReleaseVersion() {
|
|
503
|
+
return _getLatestReleaseVersion.apply(this, arguments);
|
|
465
504
|
}
|
|
466
505
|
|
|
467
|
-
function
|
|
468
|
-
|
|
469
|
-
var
|
|
470
|
-
|
|
471
|
-
return _regeneratorRuntime__default["default"].wrap(function _callee$(_context3) {
|
|
506
|
+
function _getLatestReleaseVersion() {
|
|
507
|
+
_getLatestReleaseVersion = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee() {
|
|
508
|
+
var commandResult, packageInfoForTagLatest;
|
|
509
|
+
return _regeneratorRuntime__default["default"].wrap(function _callee$(_context) {
|
|
472
510
|
while (1) {
|
|
473
|
-
switch (
|
|
511
|
+
switch (_context.prev = _context.next) {
|
|
474
512
|
case 0:
|
|
475
|
-
|
|
476
|
-
_context3.next = 3;
|
|
513
|
+
_context.next = 2;
|
|
477
514
|
return execa__default["default"].command('npm view @commercetools-frontend/create-mc-app --json', {
|
|
478
515
|
encoding: 'utf-8'
|
|
479
516
|
});
|
|
480
517
|
|
|
481
|
-
case
|
|
482
|
-
commandResult =
|
|
518
|
+
case 2:
|
|
519
|
+
commandResult = _context.sent;
|
|
483
520
|
packageInfoForTagLatest = JSON.parse(commandResult.stdout);
|
|
484
|
-
|
|
485
|
-
hintNewerVersions = _filterInstanceProperty__default["default"](_context = [hasBeenReleastedInLatestTag && "".concat(packageInfoForTagLatest.version)]).call(_context, Boolean).join(', ');
|
|
486
|
-
|
|
487
|
-
if (hintNewerVersions.length > 0) {
|
|
488
|
-
console.log('');
|
|
489
|
-
console.log(_concatInstanceProperty__default["default"](_context2 = "New version available! ".concat(currentVersion, " -> ")).call(_context2, hintNewerVersions));
|
|
490
|
-
console.log('');
|
|
491
|
-
}
|
|
521
|
+
return _context.abrupt("return", packageInfoForTagLatest.version);
|
|
492
522
|
|
|
493
|
-
|
|
494
|
-
break;
|
|
495
|
-
|
|
496
|
-
case 10:
|
|
497
|
-
_context3.prev = 10;
|
|
498
|
-
_context3.t0 = _context3["catch"](0);
|
|
499
|
-
|
|
500
|
-
case 13:
|
|
523
|
+
case 5:
|
|
501
524
|
case "end":
|
|
502
|
-
return
|
|
525
|
+
return _context.stop();
|
|
503
526
|
}
|
|
504
527
|
}
|
|
505
|
-
}, _callee
|
|
528
|
+
}, _callee);
|
|
506
529
|
}));
|
|
507
|
-
return
|
|
530
|
+
return _getLatestReleaseVersion.apply(this, arguments);
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
function hintOutdatedVersion(currentVersion, releaseVersion) {
|
|
534
|
+
var _context;
|
|
535
|
+
|
|
536
|
+
var hasBeenReleastedInLatestTag = semver__default["default"].gt(releaseVersion, currentVersion);
|
|
537
|
+
|
|
538
|
+
var hintNewerVersions = _filterInstanceProperty__default["default"](_context = [hasBeenReleastedInLatestTag && "".concat(releaseVersion)]).call(_context, Boolean).join(', ');
|
|
539
|
+
|
|
540
|
+
if (hintNewerVersions.length > 0) {
|
|
541
|
+
var _context2;
|
|
542
|
+
|
|
543
|
+
console.log('');
|
|
544
|
+
console.log(_concatInstanceProperty__default["default"](_context2 = "New version available! ".concat(currentVersion, " -> ")).call(_context2, hintNewerVersions));
|
|
545
|
+
console.log('');
|
|
546
|
+
}
|
|
508
547
|
}
|
|
509
548
|
|
|
510
549
|
var question = function question(rl, value) {
|
|
@@ -660,7 +699,7 @@ function _processOptions() {
|
|
|
660
699
|
|
|
661
700
|
var pkgJson = {
|
|
662
701
|
name: "@commercetools-frontend/create-mc-app",
|
|
663
|
-
version: "21.21.
|
|
702
|
+
version: "21.21.2",
|
|
664
703
|
description: "Create Merchant Center applications to quickly get up and running",
|
|
665
704
|
bugs: "https://github.com/commercetools/merchant-center-application-kit/issues",
|
|
666
705
|
repository: {
|
|
@@ -721,7 +760,7 @@ var run = function run() {
|
|
|
721
760
|
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee(projectDirectory, options) {
|
|
722
761
|
var _context;
|
|
723
762
|
|
|
724
|
-
var taskOptions, taskList, useYarn;
|
|
763
|
+
var releaseVersion, taskOptions, taskList, useYarn;
|
|
725
764
|
return _regeneratorRuntime__default["default"].wrap(function _callee$(_context2) {
|
|
726
765
|
while (1) {
|
|
727
766
|
switch (_context2.prev = _context2.next) {
|
|
@@ -736,22 +775,24 @@ var run = function run() {
|
|
|
736
775
|
|
|
737
776
|
case 3:
|
|
738
777
|
_context2.next = 5;
|
|
739
|
-
return
|
|
778
|
+
return getLatestReleaseVersion();
|
|
740
779
|
|
|
741
780
|
case 5:
|
|
781
|
+
releaseVersion = _context2.sent;
|
|
782
|
+
hintOutdatedVersion(pkgJson.version, releaseVersion);
|
|
742
783
|
console.log('');
|
|
743
784
|
console.log("Documentation available at https://docs.commercetools.com/custom-applications");
|
|
744
785
|
console.log('');
|
|
745
|
-
_context2.next =
|
|
786
|
+
_context2.next = 12;
|
|
746
787
|
return processOptions(projectDirectory, options);
|
|
747
788
|
|
|
748
|
-
case
|
|
789
|
+
case 12:
|
|
749
790
|
taskOptions = _context2.sent;
|
|
750
|
-
taskList = new listr2.Listr(_filterInstanceProperty__default["default"](_context = [downloadTemplate(taskOptions), updatePackageJson(taskOptions), updateCustomApplicationConfig(taskOptions), updateApplicationConstants(taskOptions), !options.skipInstall && installDependencies(taskOptions)]).call(_context, Boolean));
|
|
751
|
-
_context2.next =
|
|
791
|
+
taskList = new listr2.Listr(_filterInstanceProperty__default["default"](_context = [downloadTemplate(taskOptions), updatePackageJson(taskOptions, releaseVersion), updateCustomApplicationConfig(taskOptions), updateApplicationConstants(taskOptions), !options.skipInstall && installDependencies(taskOptions)]).call(_context, Boolean));
|
|
792
|
+
_context2.next = 16;
|
|
752
793
|
return taskList.run();
|
|
753
794
|
|
|
754
|
-
case
|
|
795
|
+
case 16:
|
|
755
796
|
useYarn = shouldUseYarn();
|
|
756
797
|
console.log('');
|
|
757
798
|
console.log("\uD83C\uDF89 \uD83C\uDF89 \uD83C\uDF89 The Custom Application has been created in the \"".concat(taskOptions.projectDirectoryName, "\" folder."));
|
|
@@ -767,7 +808,7 @@ var run = function run() {
|
|
|
767
808
|
console.log('');
|
|
768
809
|
console.log("Visit https://docs.commercetools.com/custom-applications for more info about developing Custom Applications. Enjoy \uD83D\uDE80");
|
|
769
810
|
|
|
770
|
-
case
|
|
811
|
+
case 26:
|
|
771
812
|
case "end":
|
|
772
813
|
return _context2.stop();
|
|
773
814
|
}
|
|
@@ -14,6 +14,16 @@ import _Object$keys from '@babel/runtime-corejs3/core-js-stable/object/keys';
|
|
|
14
14
|
import semver from 'semver';
|
|
15
15
|
import _sliceInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/slice';
|
|
16
16
|
import _findInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/find';
|
|
17
|
+
import _Object$getOwnPropertySymbols from '@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols';
|
|
18
|
+
import _Object$getOwnPropertyDescriptor from '@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor';
|
|
19
|
+
import _forEachInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/for-each';
|
|
20
|
+
import _Object$getOwnPropertyDescriptors from '@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors';
|
|
21
|
+
import _Object$defineProperties from '@babel/runtime-corejs3/core-js-stable/object/define-properties';
|
|
22
|
+
import _Object$defineProperty from '@babel/runtime-corejs3/core-js-stable/object/define-property';
|
|
23
|
+
import _defineProperty from '@babel/runtime-corejs3/helpers/esm/defineProperty';
|
|
24
|
+
import _slicedToArray from '@babel/runtime-corejs3/helpers/esm/slicedToArray';
|
|
25
|
+
import _reduceInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/reduce';
|
|
26
|
+
import _Object$entries from '@babel/runtime-corejs3/core-js-stable/object/entries';
|
|
17
27
|
import _Object$assign from '@babel/runtime-corejs3/core-js-stable/object/assign';
|
|
18
28
|
import _JSON$stringify from '@babel/runtime-corejs3/core-js-stable/json/stringify';
|
|
19
29
|
import rcfile from 'rcfile';
|
|
@@ -309,7 +319,25 @@ function installDependencies(options) {
|
|
|
309
319
|
};
|
|
310
320
|
}
|
|
311
321
|
|
|
312
|
-
function
|
|
322
|
+
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
323
|
+
|
|
324
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context2, _context3; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context2 = ownKeys(Object(source), !0)).call(_context2, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context3 = ownKeys(Object(source))).call(_context3, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
325
|
+
|
|
326
|
+
var replaceApplicationKitPackageVersionWith = function replaceApplicationKitPackageVersionWith(releaseVersion) {
|
|
327
|
+
var _context;
|
|
328
|
+
|
|
329
|
+
var dependencies = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
330
|
+
return _reduceInstanceProperty(_context = _Object$entries(dependencies)).call(_context, function (updatedDependencies, _ref) {
|
|
331
|
+
var _ref2 = _slicedToArray(_ref, 2),
|
|
332
|
+
dependencyName = _ref2[0],
|
|
333
|
+
dependencyVersion = _ref2[1];
|
|
334
|
+
|
|
335
|
+
var updatedVersion = dependencyVersion === 'workspace:*' ? releaseVersion : dependencyVersion;
|
|
336
|
+
return _objectSpread(_objectSpread({}, updatedDependencies), {}, _defineProperty({}, dependencyName, updatedVersion));
|
|
337
|
+
}, {});
|
|
338
|
+
};
|
|
339
|
+
|
|
340
|
+
function updatePackageJson(options, releaseVersion) {
|
|
313
341
|
return {
|
|
314
342
|
title: 'Updating package.json',
|
|
315
343
|
task: function task() {
|
|
@@ -325,7 +353,10 @@ function updatePackageJson(options) {
|
|
|
325
353
|
// The `projectDirectoryName` should not have restrictions (e.g. no `_`)
|
|
326
354
|
// as a result the package name potentially needs to be altered when derived.
|
|
327
355
|
name: slugify(options.projectDirectoryName),
|
|
328
|
-
description: ''
|
|
356
|
+
description: '',
|
|
357
|
+
// Replace the package versions with the `workspace:` syntax to the real version.
|
|
358
|
+
dependencies: replaceApplicationKitPackageVersionWith(releaseVersion, appPackageJson.dependencies),
|
|
359
|
+
devDependencies: replaceApplicationKitPackageVersionWith(releaseVersion, appPackageJson.devDependencies)
|
|
329
360
|
});
|
|
330
361
|
|
|
331
362
|
fs.writeFileSync(packageJsonPath, _JSON$stringify(updatedAppPackageJson, null, 2) + os.EOL, {
|
|
@@ -432,56 +463,51 @@ function updateApplicationConstants(options) {
|
|
|
432
463
|
};
|
|
433
464
|
}
|
|
434
465
|
|
|
435
|
-
function
|
|
436
|
-
return
|
|
466
|
+
function getLatestReleaseVersion() {
|
|
467
|
+
return _getLatestReleaseVersion.apply(this, arguments);
|
|
437
468
|
}
|
|
438
469
|
|
|
439
|
-
function
|
|
440
|
-
|
|
441
|
-
var
|
|
442
|
-
|
|
443
|
-
return _regeneratorRuntime.wrap(function _callee$(_context3) {
|
|
470
|
+
function _getLatestReleaseVersion() {
|
|
471
|
+
_getLatestReleaseVersion = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
472
|
+
var commandResult, packageInfoForTagLatest;
|
|
473
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
444
474
|
while (1) {
|
|
445
|
-
switch (
|
|
475
|
+
switch (_context.prev = _context.next) {
|
|
446
476
|
case 0:
|
|
447
|
-
|
|
448
|
-
_context3.next = 3;
|
|
477
|
+
_context.next = 2;
|
|
449
478
|
return execa.command('npm view @commercetools-frontend/create-mc-app --json', {
|
|
450
479
|
encoding: 'utf-8'
|
|
451
480
|
});
|
|
452
481
|
|
|
453
|
-
case
|
|
454
|
-
commandResult =
|
|
482
|
+
case 2:
|
|
483
|
+
commandResult = _context.sent;
|
|
455
484
|
packageInfoForTagLatest = JSON.parse(commandResult.stdout);
|
|
456
|
-
|
|
457
|
-
hintNewerVersions = _filterInstanceProperty(_context = [hasBeenReleastedInLatestTag && "".concat(packageInfoForTagLatest.version)]).call(_context, Boolean).join(', ');
|
|
458
|
-
|
|
459
|
-
if (hintNewerVersions.length > 0) {
|
|
460
|
-
console.log('');
|
|
461
|
-
console.log(_concatInstanceProperty(_context2 = "New version available! ".concat(currentVersion, " -> ")).call(_context2, hintNewerVersions));
|
|
462
|
-
console.log('');
|
|
463
|
-
}
|
|
464
|
-
|
|
465
|
-
_context3.next = 13;
|
|
466
|
-
break;
|
|
485
|
+
return _context.abrupt("return", packageInfoForTagLatest.version);
|
|
467
486
|
|
|
468
|
-
case
|
|
469
|
-
_context3.prev = 10;
|
|
470
|
-
_context3.t0 = _context3["catch"](0);
|
|
471
|
-
|
|
472
|
-
// Ignore errors, as this function should not affect the exit code of the command
|
|
473
|
-
if (process.env.NODE_ENV === 'test') {
|
|
474
|
-
console.error(_context3.t0);
|
|
475
|
-
}
|
|
476
|
-
|
|
477
|
-
case 13:
|
|
487
|
+
case 5:
|
|
478
488
|
case "end":
|
|
479
|
-
return
|
|
489
|
+
return _context.stop();
|
|
480
490
|
}
|
|
481
491
|
}
|
|
482
|
-
}, _callee
|
|
492
|
+
}, _callee);
|
|
483
493
|
}));
|
|
484
|
-
return
|
|
494
|
+
return _getLatestReleaseVersion.apply(this, arguments);
|
|
495
|
+
}
|
|
496
|
+
|
|
497
|
+
function hintOutdatedVersion(currentVersion, releaseVersion) {
|
|
498
|
+
var _context;
|
|
499
|
+
|
|
500
|
+
var hasBeenReleastedInLatestTag = semver.gt(releaseVersion, currentVersion);
|
|
501
|
+
|
|
502
|
+
var hintNewerVersions = _filterInstanceProperty(_context = [hasBeenReleastedInLatestTag && "".concat(releaseVersion)]).call(_context, Boolean).join(', ');
|
|
503
|
+
|
|
504
|
+
if (hintNewerVersions.length > 0) {
|
|
505
|
+
var _context2;
|
|
506
|
+
|
|
507
|
+
console.log('');
|
|
508
|
+
console.log(_concatInstanceProperty(_context2 = "New version available! ".concat(currentVersion, " -> ")).call(_context2, hintNewerVersions));
|
|
509
|
+
console.log('');
|
|
510
|
+
}
|
|
485
511
|
}
|
|
486
512
|
|
|
487
513
|
var question = function question(rl, value) {
|
|
@@ -637,7 +663,7 @@ function _processOptions() {
|
|
|
637
663
|
|
|
638
664
|
var pkgJson = {
|
|
639
665
|
name: "@commercetools-frontend/create-mc-app",
|
|
640
|
-
version: "21.21.
|
|
666
|
+
version: "21.21.2",
|
|
641
667
|
description: "Create Merchant Center applications to quickly get up and running",
|
|
642
668
|
bugs: "https://github.com/commercetools/merchant-center-application-kit/issues",
|
|
643
669
|
repository: {
|
|
@@ -698,7 +724,7 @@ var run = function run() {
|
|
|
698
724
|
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(projectDirectory, options) {
|
|
699
725
|
var _context;
|
|
700
726
|
|
|
701
|
-
var taskOptions, taskList, useYarn;
|
|
727
|
+
var releaseVersion, taskOptions, taskList, useYarn;
|
|
702
728
|
return _regeneratorRuntime.wrap(function _callee$(_context2) {
|
|
703
729
|
while (1) {
|
|
704
730
|
switch (_context2.prev = _context2.next) {
|
|
@@ -713,22 +739,24 @@ var run = function run() {
|
|
|
713
739
|
|
|
714
740
|
case 3:
|
|
715
741
|
_context2.next = 5;
|
|
716
|
-
return
|
|
742
|
+
return getLatestReleaseVersion();
|
|
717
743
|
|
|
718
744
|
case 5:
|
|
745
|
+
releaseVersion = _context2.sent;
|
|
746
|
+
hintOutdatedVersion(pkgJson.version, releaseVersion);
|
|
719
747
|
console.log('');
|
|
720
748
|
console.log("Documentation available at https://docs.commercetools.com/custom-applications");
|
|
721
749
|
console.log('');
|
|
722
|
-
_context2.next =
|
|
750
|
+
_context2.next = 12;
|
|
723
751
|
return processOptions(projectDirectory, options);
|
|
724
752
|
|
|
725
|
-
case
|
|
753
|
+
case 12:
|
|
726
754
|
taskOptions = _context2.sent;
|
|
727
|
-
taskList = new Listr(_filterInstanceProperty(_context = [downloadTemplate(taskOptions), updatePackageJson(taskOptions), updateCustomApplicationConfig(taskOptions), updateApplicationConstants(taskOptions), !options.skipInstall && installDependencies(taskOptions)]).call(_context, Boolean));
|
|
728
|
-
_context2.next =
|
|
755
|
+
taskList = new Listr(_filterInstanceProperty(_context = [downloadTemplate(taskOptions), updatePackageJson(taskOptions, releaseVersion), updateCustomApplicationConfig(taskOptions), updateApplicationConstants(taskOptions), !options.skipInstall && installDependencies(taskOptions)]).call(_context, Boolean));
|
|
756
|
+
_context2.next = 16;
|
|
729
757
|
return taskList.run();
|
|
730
758
|
|
|
731
|
-
case
|
|
759
|
+
case 16:
|
|
732
760
|
useYarn = shouldUseYarn();
|
|
733
761
|
console.log('');
|
|
734
762
|
console.log("\uD83C\uDF89 \uD83C\uDF89 \uD83C\uDF89 The Custom Application has been created in the \"".concat(taskOptions.projectDirectoryName, "\" folder."));
|
|
@@ -744,7 +772,7 @@ var run = function run() {
|
|
|
744
772
|
console.log('');
|
|
745
773
|
console.log("Visit https://docs.commercetools.com/custom-applications for more info about developing Custom Applications. Enjoy \uD83D\uDE80");
|
|
746
774
|
|
|
747
|
-
case
|
|
775
|
+
case 26:
|
|
748
776
|
case "end":
|
|
749
777
|
return _context2.stop();
|
|
750
778
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare function hintOutdatedVersion(currentVersion: string):
|
|
1
|
+
declare function hintOutdatedVersion(currentVersion: string, releaseVersion: string): void;
|
|
2
2
|
export default hintOutdatedVersion;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { ListrTask } from 'listr2';
|
|
2
2
|
import type { TCliTaskOptions } from '../types';
|
|
3
|
-
declare function updatePackageJson(options: TCliTaskOptions): ListrTask;
|
|
3
|
+
declare function updatePackageJson(options: TCliTaskOptions, releaseVersion: string): ListrTask;
|
|
4
4
|
export default updatePackageJson;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@commercetools-frontend/create-mc-app",
|
|
3
|
-
"version": "21.21.
|
|
3
|
+
"version": "21.21.2",
|
|
4
4
|
"description": "Create Merchant Center applications to quickly get up and running",
|
|
5
5
|
"bugs": "https://github.com/commercetools/merchant-center-application-kit/issues",
|
|
6
6
|
"repository": {
|
package/src/cli.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { Listr, type ListrTask } from 'listr2';
|
|
|
3
3
|
import * as tasks from './tasks';
|
|
4
4
|
import { throwIfNodeVersionIsNotSupported } from './validations';
|
|
5
5
|
import { shouldUseYarn } from './utils';
|
|
6
|
+
import getLatestReleaseVersion from './get-latest-release-version';
|
|
6
7
|
import hintOutdatedVersion from './hint-outdated-version';
|
|
7
8
|
import processOptions from './process-options';
|
|
8
9
|
import type { TCliCommandOptions } from './types';
|
|
@@ -60,7 +61,9 @@ const run = () => {
|
|
|
60
61
|
return;
|
|
61
62
|
}
|
|
62
63
|
|
|
63
|
-
await
|
|
64
|
+
const releaseVersion = await getLatestReleaseVersion();
|
|
65
|
+
|
|
66
|
+
hintOutdatedVersion(pkgJson.version, releaseVersion);
|
|
64
67
|
|
|
65
68
|
console.log('');
|
|
66
69
|
console.log(
|
|
@@ -73,7 +76,7 @@ const run = () => {
|
|
|
73
76
|
const taskList = new Listr(
|
|
74
77
|
[
|
|
75
78
|
tasks.downloadTemplate(taskOptions),
|
|
76
|
-
tasks.updatePackageJson(taskOptions),
|
|
79
|
+
tasks.updatePackageJson(taskOptions, releaseVersion),
|
|
77
80
|
tasks.updateCustomApplicationConfig(taskOptions),
|
|
78
81
|
tasks.updateApplicationConstants(taskOptions),
|
|
79
82
|
!options.skipInstall && tasks.installDependencies(taskOptions),
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import execa from 'execa';
|
|
2
|
+
|
|
3
|
+
async function getLatestReleaseVersion() {
|
|
4
|
+
const commandResult = await execa.command(
|
|
5
|
+
'npm view @commercetools-frontend/create-mc-app --json',
|
|
6
|
+
{ encoding: 'utf-8' }
|
|
7
|
+
);
|
|
8
|
+
|
|
9
|
+
const packageInfoForTagLatest = JSON.parse(commandResult.stdout) as {
|
|
10
|
+
version: string;
|
|
11
|
+
};
|
|
12
|
+
return packageInfoForTagLatest.version;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export default getLatestReleaseVersion;
|
|
@@ -1,38 +1,18 @@
|
|
|
1
1
|
import semver from 'semver';
|
|
2
|
-
import execa from 'execa';
|
|
3
2
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const commandResult = await execa.command(
|
|
7
|
-
'npm view @commercetools-frontend/create-mc-app --json',
|
|
8
|
-
{ encoding: 'utf-8' }
|
|
9
|
-
);
|
|
3
|
+
function hintOutdatedVersion(currentVersion: string, releaseVersion: string) {
|
|
4
|
+
const hasBeenReleastedInLatestTag = semver.gt(releaseVersion, currentVersion);
|
|
10
5
|
|
|
11
|
-
|
|
6
|
+
const hintNewerVersions = [hasBeenReleastedInLatestTag && `${releaseVersion}`]
|
|
7
|
+
.filter(Boolean)
|
|
8
|
+
.join(', ');
|
|
12
9
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
if (hintNewerVersions.length > 0) {
|
|
11
|
+
console.log('');
|
|
12
|
+
console.log(
|
|
13
|
+
`New version available! ${currentVersion} -> ${hintNewerVersions}`
|
|
16
14
|
);
|
|
17
|
-
|
|
18
|
-
const hintNewerVersions = [
|
|
19
|
-
hasBeenReleastedInLatestTag && `${packageInfoForTagLatest.version}`,
|
|
20
|
-
]
|
|
21
|
-
.filter(Boolean)
|
|
22
|
-
.join(', ');
|
|
23
|
-
|
|
24
|
-
if (hintNewerVersions.length > 0) {
|
|
25
|
-
console.log('');
|
|
26
|
-
console.log(
|
|
27
|
-
`New version available! ${currentVersion} -> ${hintNewerVersions}`
|
|
28
|
-
);
|
|
29
|
-
console.log('');
|
|
30
|
-
}
|
|
31
|
-
} catch (error) {
|
|
32
|
-
// Ignore errors, as this function should not affect the exit code of the command
|
|
33
|
-
if (process.env.NODE_ENV === 'test') {
|
|
34
|
-
console.error(error);
|
|
35
|
-
}
|
|
15
|
+
console.log('');
|
|
36
16
|
}
|
|
37
17
|
}
|
|
38
18
|
|
|
@@ -5,7 +5,28 @@ import type { ListrTask } from 'listr2';
|
|
|
5
5
|
import { slugify } from '../utils';
|
|
6
6
|
import type { TCliTaskOptions } from '../types';
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
const replaceApplicationKitPackageVersionWith = (
|
|
9
|
+
releaseVersion: string,
|
|
10
|
+
dependencies: Record<string, string> = {}
|
|
11
|
+
) =>
|
|
12
|
+
Object.entries(dependencies).reduce(
|
|
13
|
+
(updatedDependencies, [dependencyName, dependencyVersion]) => {
|
|
14
|
+
const updatedVersion =
|
|
15
|
+
dependencyVersion === 'workspace:*'
|
|
16
|
+
? releaseVersion
|
|
17
|
+
: dependencyVersion;
|
|
18
|
+
return {
|
|
19
|
+
...updatedDependencies,
|
|
20
|
+
[dependencyName]: updatedVersion,
|
|
21
|
+
};
|
|
22
|
+
},
|
|
23
|
+
{}
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
function updatePackageJson(
|
|
27
|
+
options: TCliTaskOptions,
|
|
28
|
+
releaseVersion: string
|
|
29
|
+
): ListrTask {
|
|
9
30
|
return {
|
|
10
31
|
title: 'Updating package.json',
|
|
11
32
|
task: () => {
|
|
@@ -25,6 +46,15 @@ function updatePackageJson(options: TCliTaskOptions): ListrTask {
|
|
|
25
46
|
// as a result the package name potentially needs to be altered when derived.
|
|
26
47
|
name: slugify(options.projectDirectoryName),
|
|
27
48
|
description: '',
|
|
49
|
+
// Replace the package versions with the `workspace:` syntax to the real version.
|
|
50
|
+
dependencies: replaceApplicationKitPackageVersionWith(
|
|
51
|
+
releaseVersion,
|
|
52
|
+
appPackageJson.dependencies
|
|
53
|
+
),
|
|
54
|
+
devDependencies: replaceApplicationKitPackageVersionWith(
|
|
55
|
+
releaseVersion,
|
|
56
|
+
appPackageJson.devDependencies
|
|
57
|
+
),
|
|
28
58
|
});
|
|
29
59
|
|
|
30
60
|
fs.writeFileSync(
|