nativescript 8.9.0-dev.2 → 8.9.0-dev.4
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/config/test-deps-versions-generated.json +1 -1
- package/docs/man_pages/project/configuration/widget-ios.md +24 -0
- package/docs/man_pages/project/configuration/widget.md +24 -0
- package/docs/man_pages/start.md +1 -1
- package/lib/android-tools-info.js +11 -22
- package/lib/base-package-manager.js +53 -70
- package/lib/bun-package-manager.js +75 -98
- package/lib/color.js +4 -4
- package/lib/commands/add-platform.js +14 -30
- package/lib/commands/apple-login.js +18 -29
- package/lib/commands/appstore-list.js +34 -45
- package/lib/commands/appstore-upload.js +54 -67
- package/lib/commands/build.js +55 -87
- package/lib/commands/clean.js +169 -184
- package/lib/commands/command-base.js +14 -27
- package/lib/commands/config.js +49 -68
- package/lib/commands/create-project.js +215 -234
- package/lib/commands/debug.js +66 -88
- package/lib/commands/deploy.js +28 -44
- package/lib/commands/embedding/embed.js +37 -56
- package/lib/commands/extensibility/install-extension.js +5 -16
- package/lib/commands/extensibility/list-extensions.js +13 -24
- package/lib/commands/extensibility/uninstall-extension.js +4 -15
- package/lib/commands/fonts.js +30 -41
- package/lib/commands/generate-assets.js +13 -28
- package/lib/commands/generate-help.js +2 -13
- package/lib/commands/generate.js +49 -60
- package/lib/commands/info.js +2 -13
- package/lib/commands/install.js +34 -49
- package/lib/commands/list-platforms.js +14 -25
- package/lib/commands/migrate.js +15 -26
- package/lib/commands/native-add.js +23 -46
- package/lib/commands/platform-clean.js +19 -32
- package/lib/commands/plugin/add-plugin.js +12 -25
- package/lib/commands/plugin/build-plugin.js +31 -44
- package/lib/commands/plugin/create-plugin.js +114 -137
- package/lib/commands/plugin/list-plugins.js +22 -33
- package/lib/commands/plugin/remove-plugin.js +21 -34
- package/lib/commands/plugin/update-plugin.js +20 -33
- package/lib/commands/post-install.js +25 -38
- package/lib/commands/prepare.js +19 -35
- package/lib/commands/preview.js +50 -63
- package/lib/commands/remove-platform.js +7 -18
- package/lib/commands/resources/resources-update.js +14 -27
- package/lib/commands/run.js +55 -76
- package/lib/commands/start.js +6 -19
- package/lib/commands/test-init.js +126 -137
- package/lib/commands/test.js +72 -95
- package/lib/commands/typings.js +126 -142
- package/lib/commands/update-platform.js +26 -39
- package/lib/commands/update.js +31 -44
- package/lib/commands/widget.js +408 -357
- package/lib/common/child-process.js +53 -72
- package/lib/common/codeGeneration/code-entity.js +1 -1
- package/lib/common/codeGeneration/code-printer.js +1 -1
- package/lib/common/command-params.js +7 -18
- package/lib/common/commands/analytics.js +29 -42
- package/lib/common/commands/autocompletion.js +41 -58
- package/lib/common/commands/device/device-log-stream.js +12 -23
- package/lib/common/commands/device/get-file.js +23 -34
- package/lib/common/commands/device/list-applications.js +12 -23
- package/lib/common/commands/device/list-devices.js +72 -87
- package/lib/common/commands/device/list-files.js +24 -35
- package/lib/common/commands/device/put-file.js +23 -34
- package/lib/common/commands/device/run-application.js +12 -25
- package/lib/common/commands/device/stop-application.js +11 -22
- package/lib/common/commands/device/uninstall-application.js +6 -17
- package/lib/common/commands/generate-messages.js +17 -28
- package/lib/common/commands/help.js +20 -33
- package/lib/common/commands/package-manager-get.js +6 -17
- package/lib/common/commands/package-manager-set.js +9 -20
- package/lib/common/commands/post-install.js +2 -13
- package/lib/common/commands/preuninstall.js +27 -42
- package/lib/common/commands/proxy/proxy-base.js +11 -22
- package/lib/common/commands/proxy/proxy-clear.js +4 -15
- package/lib/common/commands/proxy/proxy-get.js +3 -14
- package/lib/common/commands/proxy/proxy-set.js +87 -100
- package/lib/common/constants.js +11 -11
- package/lib/common/decorators.js +10 -22
- package/lib/common/dispatchers.js +84 -101
- package/lib/common/errors.js +92 -107
- package/lib/common/file-system.js +110 -132
- package/lib/common/header.js +1 -2
- package/lib/common/helpers.js +149 -178
- package/lib/common/host-info.js +40 -53
- package/lib/common/http-client.js +104 -119
- package/lib/common/logger/appenders/cli-appender.js +1 -2
- package/lib/common/logger/appenders/emit-appender.js +1 -2
- package/lib/common/logger/layouts/cli-layout.js +1 -2
- package/lib/common/logger/logger.js +4 -4
- package/lib/common/mobile/android/android-application-manager.js +138 -159
- package/lib/common/mobile/android/android-debug-bridge-result-handler.js +1 -1
- package/lib/common/mobile/android/android-debug-bridge.js +92 -117
- package/lib/common/mobile/android/android-device-file-system.js +101 -134
- package/lib/common/mobile/android/android-device-hash-service.js +52 -77
- package/lib/common/mobile/android/android-device.js +73 -90
- package/lib/common/mobile/android/android-emulator-services.js +105 -130
- package/lib/common/mobile/android/android-log-filter.js +1 -1
- package/lib/common/mobile/android/android-virtual-device-service.js +78 -99
- package/lib/common/mobile/android/device-android-debug-bridge.js +13 -29
- package/lib/common/mobile/android/genymotion/genymotion-service.js +94 -121
- package/lib/common/mobile/android/genymotion/virtualbox-service.js +74 -91
- package/lib/common/mobile/android/logcat-helper.js +114 -133
- package/lib/common/mobile/application-manager-base.js +89 -112
- package/lib/common/mobile/device-log-provider-base.js +7 -18
- package/lib/common/mobile/ios/device/ios-application-manager.js +79 -108
- package/lib/common/mobile/ios/device/ios-device-file-system.js +78 -105
- package/lib/common/mobile/ios/device/ios-device-operations.js +106 -143
- package/lib/common/mobile/ios/device/ios-device.js +20 -36
- package/lib/common/mobile/ios/ios-device-base.js +58 -81
- package/lib/common/mobile/ios/simulator/ios-emulator-services.js +66 -95
- package/lib/common/mobile/ios/simulator/ios-sim-resolver.js +1 -1
- package/lib/common/mobile/ios/simulator/ios-simulator-application-manager.js +61 -90
- package/lib/common/mobile/ios/simulator/ios-simulator-device.js +31 -47
- package/lib/common/mobile/ios/simulator/ios-simulator-file-system.js +37 -62
- package/lib/common/mobile/ios/simulator/ios-simulator-log-provider.js +24 -35
- package/lib/common/mobile/mobile-core/android-device-discovery.js +44 -63
- package/lib/common/mobile/mobile-core/android-emulator-discovery.js +23 -34
- package/lib/common/mobile/mobile-core/android-process-service.js +174 -213
- package/lib/common/mobile/mobile-core/device-discovery.js +2 -13
- package/lib/common/mobile/mobile-core/devices-service.js +400 -450
- package/lib/common/mobile/mobile-core/ios-device-discovery.js +25 -36
- package/lib/common/mobile/mobile-core/ios-simulator-discovery.js +49 -64
- package/lib/common/mobile/mobile-helper.js +15 -26
- package/lib/common/mobile/wp8/wp8-emulator-services.js +25 -52
- package/lib/common/opener.js +2 -2
- package/lib/common/prompter.js +91 -106
- package/lib/common/queue.js +9 -20
- package/lib/common/services/auto-completion-service.js +40 -53
- package/lib/common/services/cancellation.js +17 -28
- package/lib/common/services/commands-service.js +156 -179
- package/lib/common/services/help-service.js +130 -155
- package/lib/common/services/hooks-service.js +99 -114
- package/lib/common/services/ios-notification-service.js +21 -34
- package/lib/common/services/json-file-settings-service.js +56 -75
- package/lib/common/services/lock-service.js +35 -52
- package/lib/common/services/message-contract-generator.js +35 -46
- package/lib/common/services/micro-templating-service.js +6 -17
- package/lib/common/services/net-service.js +92 -109
- package/lib/common/services/project-files-manager.js +10 -23
- package/lib/common/services/proxy-service.js +13 -24
- package/lib/common/services/qr.js +13 -24
- package/lib/common/services/settings-service.js +1 -1
- package/lib/common/services/xcode-select-service.js +20 -35
- package/lib/common/utils.js +2 -2
- package/lib/common/validators/project-name-validator.js +1 -1
- package/lib/common/validators/validation-result.js +1 -1
- package/lib/common/verify-node-version.js +2 -3
- package/lib/common/yok.js +25 -38
- package/lib/config.js +41 -56
- package/lib/constants.js +24 -24
- package/lib/controllers/build-controller.js +82 -99
- package/lib/controllers/debug-controller.js +111 -132
- package/lib/controllers/deploy-controller.js +15 -23
- package/lib/controllers/migrate-controller.js +780 -853
- package/lib/controllers/platform-controller.js +74 -89
- package/lib/controllers/prepare-controller.js +241 -270
- package/lib/controllers/run-controller.js +411 -425
- package/lib/controllers/update-controller-base.js +16 -29
- package/lib/controllers/update-controller.js +101 -126
- package/lib/data/prepare-data.js +4 -1
- package/lib/definitions/project.d.ts +24 -24
- package/lib/detached-processes/cleanup-js-subprocess.js +3 -12
- package/lib/detached-processes/cleanup-process.js +16 -25
- package/lib/device-path-provider.js +23 -34
- package/lib/device-sockets/ios/app-debug-socket-proxy-factory.js +155 -170
- package/lib/device-sockets/ios/notification.js +1 -1
- package/lib/device-sockets/ios/socket-request-executor.js +26 -41
- package/lib/helpers/android-bundle-validator-helper.js +1 -1
- package/lib/helpers/deploy-command-helper.js +44 -49
- package/lib/helpers/key-command-helper.js +4 -13
- package/lib/helpers/livesync-command-helper.js +138 -153
- package/lib/helpers/network-connectivity-validator.js +6 -17
- package/lib/helpers/options-track-helper.js +6 -17
- package/lib/helpers/platform-command-helper.js +103 -124
- package/lib/key-commands/index.js +150 -200
- package/lib/nativescript-cli.js +5 -14
- package/lib/node-package-manager.js +90 -113
- package/lib/options.js +4 -13
- package/lib/package-installation-manager.js +132 -167
- package/lib/package-manager.js +64 -87
- package/lib/platform-command-param.js +4 -15
- package/lib/pnpm-package-manager.js +60 -79
- package/lib/project-data.js +1 -1
- package/lib/providers/project-files-provider.js +1 -1
- package/lib/services/analytics/analytics-broker-process.js +13 -22
- package/lib/services/analytics/analytics-broker.js +17 -30
- package/lib/services/analytics/analytics-service.js +165 -201
- package/lib/services/analytics/google-analytics-provider.js +41 -56
- package/lib/services/analytics-settings-service.js +15 -32
- package/lib/services/android/android-bundle-tool-service.js +43 -60
- package/lib/services/android/gradle-build-args-service.js +10 -21
- package/lib/services/android/gradle-build-service.js +22 -35
- package/lib/services/android/gradle-command-service.js +22 -35
- package/lib/services/android-device-debug-service.js +92 -119
- package/lib/services/android-plugin-build-service.js +219 -245
- package/lib/services/android-project-service.js +134 -179
- package/lib/services/android-resources-migration-service.js +57 -70
- package/lib/services/apple-portal/apple-portal-application-service.js +46 -63
- package/lib/services/apple-portal/apple-portal-session-service.js +196 -215
- package/lib/services/apple-portal/srp/srp-wrapper.js +45 -60
- package/lib/services/assets-generation/assets-generation-service.js +114 -128
- package/lib/services/build-artifacts-service.js +9 -20
- package/lib/services/build-info-file-service.js +20 -35
- package/lib/services/cleanup-service.js +47 -76
- package/lib/services/cocoapods-service.js +124 -145
- package/lib/services/device/device-install-app-service.js +54 -71
- package/lib/services/doctor-service.js +106 -125
- package/lib/services/extensibility-service.js +87 -106
- package/lib/services/files-hash-service.js +26 -43
- package/lib/services/hmr-status-service.js +1 -1
- package/lib/services/initialize-service.js +38 -51
- package/lib/services/ios/export-options-plist-service.js +41 -54
- package/lib/services/ios/ios-signing-service.js +171 -190
- package/lib/services/ios/spm-service.js +52 -65
- package/lib/services/ios/xcodebuild-args-service.js +77 -94
- package/lib/services/ios/xcodebuild-command-service.js +14 -25
- package/lib/services/ios/xcodebuild-service.js +52 -71
- package/lib/services/ios-debugger-port-service.js +24 -37
- package/lib/services/ios-device-debug-service.js +75 -102
- package/lib/services/ios-entitlements-service.js +31 -42
- package/lib/services/ios-extensions-service.js +18 -29
- package/lib/services/ios-project-service.js +530 -591
- package/lib/services/ios-provision-service.js +110 -131
- package/lib/services/ios-watch-app-service.js +21 -32
- package/lib/services/ip-service.js +39 -54
- package/lib/services/itmstransporter-service.js +129 -152
- package/lib/services/livesync/android-device-livesync-service-base.js +31 -48
- package/lib/services/livesync/android-device-livesync-service.js +121 -150
- package/lib/services/livesync/android-device-livesync-sockets-service.js +123 -154
- package/lib/services/livesync/android-livesync-service.js +14 -35
- package/lib/services/livesync/android-livesync-tool.js +90 -113
- package/lib/services/livesync/device-livesync-service-base.js +16 -29
- package/lib/services/livesync/ios-device-livesync-service.js +120 -149
- package/lib/services/livesync/ios-livesync-service.js +43 -59
- package/lib/services/livesync/platform-livesync-service-base.js +98 -123
- package/lib/services/log-parser-service.js +1 -1
- package/lib/services/log-source-map-service.js +31 -42
- package/lib/services/marking-mode-service.js +17 -30
- package/lib/services/npm-config-service.js +1 -1
- package/lib/services/pacote-service.js +54 -69
- package/lib/services/performance-service.js +1 -1
- package/lib/services/platform/add-platform-service.js +57 -78
- package/lib/services/platform/platform-validation-service.js +22 -33
- package/lib/services/platform/prepare-native-platform-service.js +51 -64
- package/lib/services/platform-environment-requirements.js +27 -38
- package/lib/services/plugins-service.js +126 -151
- package/lib/services/project-backup-service.js +1 -1
- package/lib/services/project-changes-service.js +126 -143
- package/lib/services/project-cleanup-service.js +65 -78
- package/lib/services/project-config-service.js +78 -88
- package/lib/services/project-data-service.js +112 -129
- package/lib/services/project-name-service.js +28 -43
- package/lib/services/project-service.js +90 -109
- package/lib/services/project-templates-service.js +52 -67
- package/lib/services/start-service.js +41 -59
- package/lib/services/temp-service.js +8 -21
- package/lib/services/terminal-spinner-service.js +15 -26
- package/lib/services/test-execution-service.js +64 -77
- package/lib/services/test-initialization-service.js +2 -2
- package/lib/services/timeline-profiler-service.js +1 -1
- package/lib/services/versions-service.js +120 -139
- package/lib/services/webpack/webpack-compiler-service.js +228 -251
- package/lib/services/xcconfig-service.js +8 -19
- package/lib/sys-info.js +45 -62
- package/lib/tools/node-modules/node-modules-builder.js +16 -27
- package/lib/yarn-package-manager.js +59 -78
- package/lib/yarn2-package-manager.js +62 -81
- package/package.json +67 -82
- package/node_modules/@npmcli/move-file/LICENSE.md +0 -22
- package/node_modules/@npmcli/move-file/README.md +0 -69
- package/node_modules/@npmcli/move-file/lib/index.js +0 -185
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/LICENSE +0 -21
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/bin/cmd.js +0 -68
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/index.js +0 -31
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/find-made.js +0 -29
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-manual.js +0 -64
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-native.js +0 -39
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/opts-arg.js +0 -23
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/path-arg.js +0 -29
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/use-native.js +0 -10
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/package.json +0 -44
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/readme.markdown +0 -266
- package/node_modules/@npmcli/move-file/package.json +0 -47
- package/node_modules/balanced-match/.github/FUNDING.yml +0 -2
- package/node_modules/balanced-match/LICENSE.md +0 -21
- package/node_modules/balanced-match/README.md +0 -97
- package/node_modules/balanced-match/index.js +0 -62
- package/node_modules/balanced-match/package.json +0 -48
- package/node_modules/concat-map/.travis.yml +0 -4
- package/node_modules/concat-map/LICENSE +0 -18
- package/node_modules/concat-map/README.markdown +0 -62
- package/node_modules/concat-map/example/map.js +0 -6
- package/node_modules/concat-map/index.js +0 -13
- package/node_modules/concat-map/package.json +0 -43
- package/node_modules/concat-map/test/map.js +0 -39
- package/node_modules/fs.realpath/LICENSE +0 -43
- package/node_modules/fs.realpath/README.md +0 -33
- package/node_modules/fs.realpath/index.js +0 -66
- package/node_modules/fs.realpath/old.js +0 -303
- package/node_modules/fs.realpath/package.json +0 -26
- package/node_modules/inflight/LICENSE +0 -15
- package/node_modules/inflight/README.md +0 -37
- package/node_modules/inflight/inflight.js +0 -54
- package/node_modules/inflight/package.json +0 -29
- package/node_modules/inherits/LICENSE +0 -16
- package/node_modules/inherits/README.md +0 -42
- package/node_modules/inherits/inherits.js +0 -9
- package/node_modules/inherits/inherits_browser.js +0 -27
- package/node_modules/inherits/package.json +0 -29
- package/node_modules/once/LICENSE +0 -15
- package/node_modules/once/README.md +0 -79
- package/node_modules/once/once.js +0 -42
- package/node_modules/once/package.json +0 -33
- package/node_modules/path-is-absolute/index.js +0 -20
- package/node_modules/path-is-absolute/license +0 -21
- package/node_modules/path-is-absolute/package.json +0 -43
- package/node_modules/path-is-absolute/readme.md +0 -59
- package/node_modules/rimraf/LICENSE +0 -15
- package/node_modules/rimraf/README.md +0 -101
- package/node_modules/rimraf/bin.js +0 -68
- package/node_modules/rimraf/node_modules/brace-expansion/LICENSE +0 -21
- package/node_modules/rimraf/node_modules/brace-expansion/README.md +0 -129
- package/node_modules/rimraf/node_modules/brace-expansion/index.js +0 -201
- package/node_modules/rimraf/node_modules/brace-expansion/package.json +0 -47
- package/node_modules/rimraf/node_modules/glob/LICENSE +0 -21
- package/node_modules/rimraf/node_modules/glob/README.md +0 -378
- package/node_modules/rimraf/node_modules/glob/common.js +0 -238
- package/node_modules/rimraf/node_modules/glob/glob.js +0 -790
- package/node_modules/rimraf/node_modules/glob/package.json +0 -55
- package/node_modules/rimraf/node_modules/glob/sync.js +0 -486
- package/node_modules/rimraf/node_modules/minimatch/LICENSE +0 -15
- package/node_modules/rimraf/node_modules/minimatch/README.md +0 -230
- package/node_modules/rimraf/node_modules/minimatch/minimatch.js +0 -947
- package/node_modules/rimraf/node_modules/minimatch/package.json +0 -33
- package/node_modules/rimraf/package.json +0 -32
- package/node_modules/rimraf/rimraf.js +0 -360
- package/node_modules/stringify-package/LICENSE +0 -13
- package/node_modules/stringify-package/README.md +0 -55
- package/node_modules/stringify-package/index.js +0 -18
- package/node_modules/stringify-package/package.json +0 -38
- package/node_modules/wrappy/LICENSE +0 -15
- package/node_modules/wrappy/README.md +0 -36
- package/node_modules/wrappy/package.json +0 -29
- package/node_modules/wrappy/wrappy.js +0 -33
package/lib/commands/clean.js
CHANGED
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.CleanCommand = void 0;
|
|
13
4
|
const color_1 = require("../color");
|
|
@@ -75,197 +66,191 @@ class CleanCommand {
|
|
|
75
66
|
this.$staticConfig = $staticConfig;
|
|
76
67
|
this.allowedParameters = [];
|
|
77
68
|
}
|
|
78
|
-
execute(args) {
|
|
69
|
+
async execute(args) {
|
|
79
70
|
var _a, _b;
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
pathsToClean = overridePathsToClean;
|
|
102
|
-
}
|
|
103
|
-
if (Array.isArray(additionalPaths)) {
|
|
104
|
-
pathsToClean.push(...additionalPaths);
|
|
105
|
-
}
|
|
71
|
+
const isDryRun = (_a = this.$options.dryRun) !== null && _a !== void 0 ? _a : false;
|
|
72
|
+
const isJSON = (_b = this.$options.json) !== null && _b !== void 0 ? _b : false;
|
|
73
|
+
const spinner = this.$terminalSpinnerService.createSpinner({
|
|
74
|
+
isSilent: isJSON,
|
|
75
|
+
});
|
|
76
|
+
if (!this.$projectService.isValidNativeScriptProject()) {
|
|
77
|
+
return this.cleanMultipleProjects(spinner);
|
|
78
|
+
}
|
|
79
|
+
spinner.start("Cleaning project...\n");
|
|
80
|
+
let pathsToClean = [
|
|
81
|
+
constants.HOOKS_DIR_NAME,
|
|
82
|
+
constants.PLATFORMS_DIR_NAME,
|
|
83
|
+
constants.NODE_MODULES_FOLDER_NAME,
|
|
84
|
+
constants.PACKAGE_LOCK_JSON_FILE_NAME,
|
|
85
|
+
];
|
|
86
|
+
try {
|
|
87
|
+
const overridePathsToClean = this.$projectConfigService.getValue("cli.pathsToClean");
|
|
88
|
+
const additionalPaths = this.$projectConfigService.getValue("cli.additionalPathsToClean");
|
|
89
|
+
// allow overriding default paths to clean
|
|
90
|
+
if (Array.isArray(overridePathsToClean)) {
|
|
91
|
+
pathsToClean = overridePathsToClean;
|
|
106
92
|
}
|
|
107
|
-
|
|
108
|
-
|
|
93
|
+
if (Array.isArray(additionalPaths)) {
|
|
94
|
+
pathsToClean.push(...additionalPaths);
|
|
109
95
|
}
|
|
110
|
-
|
|
96
|
+
}
|
|
97
|
+
catch (err) {
|
|
98
|
+
// ignore
|
|
99
|
+
}
|
|
100
|
+
const res = await this.$projectCleanupService.clean(pathsToClean, {
|
|
101
|
+
dryRun: isDryRun,
|
|
102
|
+
silent: isJSON,
|
|
103
|
+
stats: isJSON,
|
|
104
|
+
});
|
|
105
|
+
if (res.stats && isJSON) {
|
|
106
|
+
console.log(JSON.stringify({
|
|
107
|
+
ok: res.ok,
|
|
111
108
|
dryRun: isDryRun,
|
|
112
|
-
|
|
113
|
-
|
|
109
|
+
stats: Object.fromEntries(res.stats.entries()),
|
|
110
|
+
}, null, 2));
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
if (res.ok) {
|
|
114
|
+
spinner.succeed("Project successfully cleaned.");
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
spinner.fail(color_1.color.red("Project unsuccessfully cleaned."));
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
async cleanMultipleProjects(spinner) {
|
|
121
|
+
if (!(0, helpers_1.isInteractive)() || this.$options.json) {
|
|
122
|
+
// interactive terminal is required, and we can't output json in an interactive command.
|
|
123
|
+
this.$logger.warn("No project found in the current directory.");
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
const shouldScan = await this.$prompter.confirm("No project found in the current directory. Would you like to scan for all projects in sub-directories instead?");
|
|
127
|
+
if (!shouldScan) {
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
spinner.start("Scanning for projects... Please wait.");
|
|
131
|
+
const paths = await this.getNSProjectPathsInDirectory();
|
|
132
|
+
spinner.succeed(`Found ${paths.length} projects.`);
|
|
133
|
+
let computed = 0;
|
|
134
|
+
const updateProgress = () => {
|
|
135
|
+
const current = color_1.color.grey(`${computed}/${paths.length}`);
|
|
136
|
+
spinner.start(`Gathering cleanable sizes. This may take a while... ${current}`);
|
|
137
|
+
};
|
|
138
|
+
// update the progress initially
|
|
139
|
+
updateProgress();
|
|
140
|
+
const projects = new Map();
|
|
141
|
+
await promiseMap(paths, (p) => {
|
|
142
|
+
return this.$childProcess
|
|
143
|
+
.exec(`node ${this.$staticConfig.cliBinPath} clean --dry-run --json --disable-analytics`, {
|
|
144
|
+
cwd: p,
|
|
145
|
+
})
|
|
146
|
+
.then((res) => {
|
|
147
|
+
const paths = JSON.parse(res).stats;
|
|
148
|
+
return Object.values(paths).reduce((a, b) => a + b, 0);
|
|
149
|
+
})
|
|
150
|
+
.catch((err) => {
|
|
151
|
+
this.$logger.trace("Failed to get project size for %s, Error is:", p, err);
|
|
152
|
+
return -1;
|
|
153
|
+
})
|
|
154
|
+
.then((size) => {
|
|
155
|
+
if (size > 0 || size === -1) {
|
|
156
|
+
// only store size if it's larger than 0 or -1 (error while getting size)
|
|
157
|
+
projects.set(p, size);
|
|
158
|
+
}
|
|
159
|
+
// update the progress after each processed project
|
|
160
|
+
computed++;
|
|
161
|
+
updateProgress();
|
|
114
162
|
});
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
163
|
+
}, os.cpus().length);
|
|
164
|
+
spinner.clear();
|
|
165
|
+
spinner.stop();
|
|
166
|
+
this.$logger.clearScreen();
|
|
167
|
+
const totalSize = Array.from(projects.values())
|
|
168
|
+
.filter((s) => s > 0)
|
|
169
|
+
.reduce((a, b) => a + b, 0);
|
|
170
|
+
const pathsToClean = await this.$prompter.promptForChoice(`Found ${projects.size} cleanable project(s) with a total size of: ${color_1.color.green(bytesToHumanReadable(totalSize))}. Select projects to clean`, Array.from(projects.keys()).map((p) => {
|
|
171
|
+
const size = projects.get(p);
|
|
172
|
+
let description;
|
|
173
|
+
if (size === -1) {
|
|
174
|
+
description = " - could not get size";
|
|
125
175
|
}
|
|
126
176
|
else {
|
|
127
|
-
|
|
177
|
+
description = ` - ${bytesToHumanReadable(size)}`;
|
|
128
178
|
}
|
|
179
|
+
return {
|
|
180
|
+
title: `${p}${color_1.color.grey(description)}`,
|
|
181
|
+
value: p,
|
|
182
|
+
};
|
|
183
|
+
}), true, {
|
|
184
|
+
optionsPerPage: process.stdout.rows - 6, // 6 lines are taken up by the instructions
|
|
129
185
|
});
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
186
|
+
this.$logger.clearScreen();
|
|
187
|
+
spinner.warn(`This will run "${color_1.color.yellow(`ns clean`)}" in all the selected projects and ${color_1.color.red.bold("delete files from your system")}!`);
|
|
188
|
+
spinner.warn(`This action cannot be undone!`);
|
|
189
|
+
let confirmed = await this.$prompter.confirm("Are you sure you want to clean the selected projects?");
|
|
190
|
+
if (!confirmed) {
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
spinner.info("Cleaning... This might take a while...");
|
|
194
|
+
let totalSizeCleaned = 0;
|
|
195
|
+
for (let i = 0; i < pathsToClean.length; i++) {
|
|
196
|
+
const currentPath = pathsToClean[i];
|
|
197
|
+
spinner.start(`Cleaning ${color_1.color.cyan(currentPath)}... ${i + 1}/${pathsToClean.length}`);
|
|
198
|
+
const ok = await this.$childProcess
|
|
199
|
+
.exec(`node ${this.$staticConfig.cliBinPath} clean ${this.$options.dryRun ? "--dry-run" : ""} --json --disable-analytics`, {
|
|
200
|
+
cwd: currentPath,
|
|
201
|
+
})
|
|
202
|
+
.then((res) => {
|
|
203
|
+
const cleanupRes = JSON.parse(res);
|
|
204
|
+
return cleanupRes.ok;
|
|
205
|
+
})
|
|
206
|
+
.catch((err) => {
|
|
207
|
+
this.$logger.trace('Failed to clean project "%s"', currentPath, err);
|
|
208
|
+
return false;
|
|
209
|
+
});
|
|
210
|
+
if (ok) {
|
|
211
|
+
const cleanedSize = projects.get(currentPath);
|
|
212
|
+
const cleanedSizeStr = color_1.color.grey(`- ${bytesToHumanReadable(cleanedSize)}`);
|
|
213
|
+
spinner.succeed(`Cleaned ${color_1.color.cyan(currentPath)} ${cleanedSizeStr}`);
|
|
214
|
+
totalSizeCleaned += cleanedSize;
|
|
215
|
+
}
|
|
216
|
+
else {
|
|
217
|
+
spinner.fail(`Failed to clean ${color_1.color.cyan(currentPath)} - skipped`);
|
|
137
218
|
}
|
|
138
|
-
|
|
139
|
-
|
|
219
|
+
}
|
|
220
|
+
spinner.clear();
|
|
221
|
+
spinner.stop();
|
|
222
|
+
spinner.succeed(`Done! We've just freed up ${color_1.color.green(bytesToHumanReadable(totalSizeCleaned))}! Woohoo! 🎉`);
|
|
223
|
+
if (this.$options.dryRun) {
|
|
224
|
+
spinner.info('Note: the "--dry-run" flag was used, so no files were actually deleted.');
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
async getNSProjectPathsInDirectory(dir = process.cwd()) {
|
|
228
|
+
let nsDirs = [];
|
|
229
|
+
const getFiles = async (dir) => {
|
|
230
|
+
if (dir.includes("node_modules")) {
|
|
231
|
+
// skip traversing node_modules
|
|
140
232
|
return;
|
|
141
233
|
}
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
let computed = 0;
|
|
146
|
-
const updateProgress = () => {
|
|
147
|
-
const current = color_1.color.grey(`${computed}/${paths.length}`);
|
|
148
|
-
spinner.start(`Gathering cleanable sizes. This may take a while... ${current}`);
|
|
149
|
-
};
|
|
150
|
-
// update the progress initially
|
|
151
|
-
updateProgress();
|
|
152
|
-
const projects = new Map();
|
|
153
|
-
yield promiseMap(paths, (p) => {
|
|
154
|
-
return this.$childProcess
|
|
155
|
-
.exec(`node ${this.$staticConfig.cliBinPath} clean --dry-run --json --disable-analytics`, {
|
|
156
|
-
cwd: p,
|
|
157
|
-
})
|
|
158
|
-
.then((res) => {
|
|
159
|
-
const paths = JSON.parse(res).stats;
|
|
160
|
-
return Object.values(paths).reduce((a, b) => a + b, 0);
|
|
161
|
-
})
|
|
162
|
-
.catch((err) => {
|
|
163
|
-
this.$logger.trace("Failed to get project size for %s, Error is:", p, err);
|
|
164
|
-
return -1;
|
|
165
|
-
})
|
|
166
|
-
.then((size) => {
|
|
167
|
-
if (size > 0 || size === -1) {
|
|
168
|
-
// only store size if it's larger than 0 or -1 (error while getting size)
|
|
169
|
-
projects.set(p, size);
|
|
170
|
-
}
|
|
171
|
-
// update the progress after each processed project
|
|
172
|
-
computed++;
|
|
173
|
-
updateProgress();
|
|
174
|
-
});
|
|
175
|
-
}, os.cpus().length);
|
|
176
|
-
spinner.clear();
|
|
177
|
-
spinner.stop();
|
|
178
|
-
this.$logger.clearScreen();
|
|
179
|
-
const totalSize = Array.from(projects.values())
|
|
180
|
-
.filter((s) => s > 0)
|
|
181
|
-
.reduce((a, b) => a + b, 0);
|
|
182
|
-
const pathsToClean = yield this.$prompter.promptForChoice(`Found ${projects.size} cleanable project(s) with a total size of: ${color_1.color.green(bytesToHumanReadable(totalSize))}. Select projects to clean`, Array.from(projects.keys()).map((p) => {
|
|
183
|
-
const size = projects.get(p);
|
|
184
|
-
let description;
|
|
185
|
-
if (size === -1) {
|
|
186
|
-
description = " - could not get size";
|
|
187
|
-
}
|
|
188
|
-
else {
|
|
189
|
-
description = ` - ${bytesToHumanReadable(size)}`;
|
|
190
|
-
}
|
|
191
|
-
return {
|
|
192
|
-
title: `${p}${color_1.color.grey(description)}`,
|
|
193
|
-
value: p,
|
|
194
|
-
};
|
|
195
|
-
}), true, {
|
|
196
|
-
optionsPerPage: process.stdout.rows - 6, // 6 lines are taken up by the instructions
|
|
234
|
+
const dirents = await (0, promises_1.readdir)(dir, { withFileTypes: true }).catch((err) => {
|
|
235
|
+
this.$logger.trace('Failed to read directory "%s". Error is:', dir, err);
|
|
236
|
+
return [];
|
|
197
237
|
});
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
238
|
+
const hasNSConfig = dirents.some((ent) => ent.name.includes("nativescript.config.ts") ||
|
|
239
|
+
ent.name.includes("nativescript.config.js"));
|
|
240
|
+
if (hasNSConfig) {
|
|
241
|
+
nsDirs.push(dir);
|
|
242
|
+
// found a NativeScript project, stop traversing
|
|
203
243
|
return;
|
|
204
244
|
}
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
spinner.start(`Cleaning ${color_1.color.cyan(currentPath)}... ${i + 1}/${pathsToClean.length}`);
|
|
210
|
-
const ok = yield this.$childProcess
|
|
211
|
-
.exec(`node ${this.$staticConfig.cliBinPath} clean ${this.$options.dryRun ? "--dry-run" : ""} --json --disable-analytics`, {
|
|
212
|
-
cwd: currentPath,
|
|
213
|
-
})
|
|
214
|
-
.then((res) => {
|
|
215
|
-
const cleanupRes = JSON.parse(res);
|
|
216
|
-
return cleanupRes.ok;
|
|
217
|
-
})
|
|
218
|
-
.catch((err) => {
|
|
219
|
-
this.$logger.trace('Failed to clean project "%s"', currentPath, err);
|
|
220
|
-
return false;
|
|
221
|
-
});
|
|
222
|
-
if (ok) {
|
|
223
|
-
const cleanedSize = projects.get(currentPath);
|
|
224
|
-
const cleanedSizeStr = color_1.color.grey(`- ${bytesToHumanReadable(cleanedSize)}`);
|
|
225
|
-
spinner.succeed(`Cleaned ${color_1.color.cyan(currentPath)} ${cleanedSizeStr}`);
|
|
226
|
-
totalSizeCleaned += cleanedSize;
|
|
227
|
-
}
|
|
228
|
-
else {
|
|
229
|
-
spinner.fail(`Failed to clean ${color_1.color.cyan(currentPath)} - skipped`);
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
spinner.clear();
|
|
233
|
-
spinner.stop();
|
|
234
|
-
spinner.succeed(`Done! We've just freed up ${color_1.color.green(bytesToHumanReadable(totalSizeCleaned))}! Woohoo! 🎉`);
|
|
235
|
-
if (this.$options.dryRun) {
|
|
236
|
-
spinner.info('Note: the "--dry-run" flag was used, so no files were actually deleted.');
|
|
237
|
-
}
|
|
238
|
-
});
|
|
239
|
-
}
|
|
240
|
-
getNSProjectPathsInDirectory(dir = process.cwd()) {
|
|
241
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
242
|
-
let nsDirs = [];
|
|
243
|
-
const getFiles = (dir) => __awaiter(this, void 0, void 0, function* () {
|
|
244
|
-
if (dir.includes("node_modules")) {
|
|
245
|
-
// skip traversing node_modules
|
|
246
|
-
return;
|
|
245
|
+
await Promise.all(dirents.map((dirent) => {
|
|
246
|
+
const res = (0, path_1.resolve)(dir, dirent.name);
|
|
247
|
+
if (dirent.isDirectory()) {
|
|
248
|
+
return getFiles(res);
|
|
247
249
|
}
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
const hasNSConfig = dirents.some((ent) => ent.name.includes("nativescript.config.ts") ||
|
|
253
|
-
ent.name.includes("nativescript.config.js"));
|
|
254
|
-
if (hasNSConfig) {
|
|
255
|
-
nsDirs.push(dir);
|
|
256
|
-
// found a NativeScript project, stop traversing
|
|
257
|
-
return;
|
|
258
|
-
}
|
|
259
|
-
yield Promise.all(dirents.map((dirent) => {
|
|
260
|
-
const res = (0, path_1.resolve)(dir, dirent.name);
|
|
261
|
-
if (dirent.isDirectory()) {
|
|
262
|
-
return getFiles(res);
|
|
263
|
-
}
|
|
264
|
-
}));
|
|
265
|
-
});
|
|
266
|
-
yield getFiles(dir);
|
|
267
|
-
return nsDirs;
|
|
268
|
-
});
|
|
250
|
+
}));
|
|
251
|
+
};
|
|
252
|
+
await getFiles(dir);
|
|
253
|
+
return nsDirs;
|
|
269
254
|
}
|
|
270
255
|
}
|
|
271
256
|
exports.CleanCommand = CleanCommand;
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.ValidatePlatformCommandBase = void 0;
|
|
13
4
|
class ValidatePlatformCommandBase {
|
|
@@ -17,25 +8,21 @@ class ValidatePlatformCommandBase {
|
|
|
17
8
|
this.$platformValidationService = $platformValidationService;
|
|
18
9
|
this.$projectData = $projectData;
|
|
19
10
|
}
|
|
20
|
-
canExecuteCommandBase(platform, options) {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
return result;
|
|
30
|
-
});
|
|
11
|
+
async canExecuteCommandBase(platform, options) {
|
|
12
|
+
options = options || {};
|
|
13
|
+
const validatePlatformOutput = await this.validatePlatformBase(platform, options.notConfiguredEnvOptions);
|
|
14
|
+
const canExecute = this.canExecuteCommand(validatePlatformOutput);
|
|
15
|
+
let result = canExecute;
|
|
16
|
+
if (canExecute && options.validateOptions) {
|
|
17
|
+
result = await this.$platformValidationService.validateOptions(this.$options.provision, this.$options.teamId, this.$projectData, platform);
|
|
18
|
+
}
|
|
19
|
+
return result;
|
|
31
20
|
}
|
|
32
|
-
validatePlatformBase(platform, notConfiguredEnvOptions) {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
return result;
|
|
38
|
-
});
|
|
21
|
+
async validatePlatformBase(platform, notConfiguredEnvOptions) {
|
|
22
|
+
const platformData = this.$platformsDataService.getPlatformData(platform, this.$projectData);
|
|
23
|
+
const platformProjectService = platformData.platformProjectService;
|
|
24
|
+
const result = await platformProjectService.validate(this.$projectData, this.$options, notConfiguredEnvOptions);
|
|
25
|
+
return result;
|
|
39
26
|
}
|
|
40
27
|
canExecuteCommand(validatePlatformOutput) {
|
|
41
28
|
return (validatePlatformOutput &&
|
package/lib/commands/config.js
CHANGED
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.ConfigSetCommand = exports.ConfigGetCommand = exports.ConfigListCommand = void 0;
|
|
13
4
|
const yok_1 = require("../common/yok");
|
|
@@ -18,16 +9,14 @@ class ConfigListCommand {
|
|
|
18
9
|
this.$logger = $logger;
|
|
19
10
|
this.allowedParameters = [];
|
|
20
11
|
}
|
|
21
|
-
execute(args) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
});
|
|
12
|
+
async execute(args) {
|
|
13
|
+
try {
|
|
14
|
+
const config = this.$projectConfigService.readConfig();
|
|
15
|
+
this.$logger.info(this.getValueString(config));
|
|
16
|
+
}
|
|
17
|
+
catch (error) {
|
|
18
|
+
this.$logger.info("Failed to read config. Error is: ", error);
|
|
19
|
+
}
|
|
31
20
|
}
|
|
32
21
|
getValueString(value, depth = 0) {
|
|
33
22
|
const indent = () => " ".repeat(depth);
|
|
@@ -54,25 +43,21 @@ class ConfigGetCommand {
|
|
|
54
43
|
this.$errors = $errors;
|
|
55
44
|
this.allowedParameters = [];
|
|
56
45
|
}
|
|
57
|
-
execute(args) {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}
|
|
67
|
-
});
|
|
46
|
+
async execute(args) {
|
|
47
|
+
try {
|
|
48
|
+
const [key] = args;
|
|
49
|
+
const current = this.$projectConfigService.getValue(key);
|
|
50
|
+
this.$logger.info(current);
|
|
51
|
+
}
|
|
52
|
+
catch (err) {
|
|
53
|
+
// ignore
|
|
54
|
+
}
|
|
68
55
|
}
|
|
69
|
-
canExecute(args) {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
return true;
|
|
75
|
-
});
|
|
56
|
+
async canExecute(args) {
|
|
57
|
+
if (!args[0]) {
|
|
58
|
+
this.$errors.failWithHelp("You must specify a key. Eg: ios.id");
|
|
59
|
+
}
|
|
60
|
+
return true;
|
|
76
61
|
}
|
|
77
62
|
}
|
|
78
63
|
exports.ConfigGetCommand = ConfigGetCommand;
|
|
@@ -83,38 +68,34 @@ class ConfigSetCommand {
|
|
|
83
68
|
this.$errors = $errors;
|
|
84
69
|
this.allowedParameters = [];
|
|
85
70
|
}
|
|
86
|
-
execute(args) {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
}
|
|
106
|
-
});
|
|
71
|
+
async execute(args) {
|
|
72
|
+
const [key, value] = args;
|
|
73
|
+
const current = this.$projectConfigService.getValue(key);
|
|
74
|
+
if (current && typeof current === "object") {
|
|
75
|
+
this.$errors.fail(`Unable to change object values. Please update individual values instead.\nEg: ns config set android.codeCache true`);
|
|
76
|
+
}
|
|
77
|
+
const convertedValue = this.getConvertedValue(value);
|
|
78
|
+
const existingKey = current !== undefined;
|
|
79
|
+
const keyDisplay = color_1.color.green(key);
|
|
80
|
+
const currentDisplay = color_1.color.yellow(current);
|
|
81
|
+
const updatedDisplay = color_1.color.cyan(convertedValue);
|
|
82
|
+
this.$logger.info(`${existingKey ? "Updating" : "Setting"} ${keyDisplay}${existingKey ? ` from ${currentDisplay} ` : " "}to ${updatedDisplay}`);
|
|
83
|
+
try {
|
|
84
|
+
await this.$projectConfigService.setValue(key, convertedValue);
|
|
85
|
+
this.$logger.info("Done");
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
this.$logger.info("Could not update conifg. Error is: ", error);
|
|
89
|
+
}
|
|
107
90
|
}
|
|
108
|
-
canExecute(args) {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
return true;
|
|
117
|
-
});
|
|
91
|
+
async canExecute(args) {
|
|
92
|
+
if (!args[0]) {
|
|
93
|
+
this.$errors.failWithHelp("You must specify a key. Eg: ios.id");
|
|
94
|
+
}
|
|
95
|
+
if (!args[1]) {
|
|
96
|
+
this.$errors.failWithHelp("You must specify a value.");
|
|
97
|
+
}
|
|
98
|
+
return true;
|
|
118
99
|
}
|
|
119
100
|
getConvertedValue(v) {
|
|
120
101
|
try {
|