@hubspot/cli 7.10.0 → 7.11.0-experimental.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/cli.js +5 -4
- package/commands/__tests__/getStarted.test.js +10 -0
- package/commands/__tests__/project.test.js +3 -0
- package/commands/account/__tests__/rename.test.js +10 -3
- package/commands/account/auth.js +10 -14
- package/commands/account/clean.js +11 -19
- package/commands/account/createOverride.js +15 -11
- package/commands/account/info.js +8 -5
- package/commands/account/list.js +15 -19
- package/commands/account/remove.js +23 -22
- package/commands/account/removeOverride.js +6 -6
- package/commands/account/rename.js +2 -2
- package/commands/account/use.js +19 -8
- package/commands/app/__tests__/migrate.test.js +8 -4
- package/commands/app/migrate.js +2 -2
- package/commands/auth.js +18 -14
- package/commands/config/migrate.js +5 -5
- package/commands/customObject/createSchema.js +2 -3
- package/commands/customObject/updateSchema.js +2 -3
- package/commands/getStarted.js +2 -3
- package/commands/hubdb/__tests__/list.test.js +1 -0
- package/commands/hubdb/list.js +2 -2
- package/commands/init.js +36 -32
- package/commands/project/__tests__/deploy.test.js +15 -10
- package/commands/project/__tests__/devUnifiedFlow.test.js +6 -4
- package/commands/project/__tests__/lint.test.js +709 -0
- package/commands/project/__tests__/logs.test.js +4 -0
- package/commands/project/__tests__/validate.test.js +2 -2
- package/commands/project/cloneApp.js +2 -2
- package/commands/project/create.js +20 -14
- package/commands/project/deploy.js +2 -2
- package/commands/project/dev/deprecatedFlow.js +4 -5
- package/commands/project/dev/index.js +6 -3
- package/commands/project/dev/unifiedFlow.js +11 -6
- package/commands/project/lint.d.ts +6 -0
- package/commands/project/lint.js +178 -0
- package/commands/project/logs.js +2 -3
- package/commands/project/migrate.js +4 -13
- package/commands/project/profile/add.js +6 -7
- package/commands/project/profile/delete.js +2 -2
- package/commands/project/upload.js +2 -2
- package/commands/project/validate.js +2 -2
- package/commands/project.js +2 -0
- package/commands/sandbox/__tests__/create.test.js +14 -5
- package/commands/sandbox/create.js +4 -5
- package/commands/sandbox/delete.js +23 -20
- package/commands/testAccount/create.js +2 -2
- package/commands/testAccount/delete.js +9 -8
- package/lang/en.d.ts +53 -12
- package/lang/en.js +63 -16
- package/lib/__tests__/buildAccount.test.js +22 -30
- package/lib/__tests__/commonOpts.test.js +9 -13
- package/lib/__tests__/developerTestAccounts.test.js +29 -17
- package/lib/__tests__/importData.test.js +20 -10
- package/lib/__tests__/oauth.test.js +19 -8
- package/lib/__tests__/sandboxSync.test.js +33 -11
- package/lib/__tests__/sandboxes.test.js +30 -19
- package/lib/__tests__/usageTracking.test.js +10 -10
- package/lib/__tests__/validation.test.js +32 -32
- package/lib/accountTypes.d.ts +9 -9
- package/lib/accountTypes.js +2 -4
- package/lib/app/__tests__/migrate.test.js +15 -0
- package/lib/app/__tests__/migrate_legacy.test.js +9 -0
- package/lib/app/migrate_legacy.d.ts +2 -2
- package/lib/buildAccount.d.ts +4 -4
- package/lib/buildAccount.js +7 -14
- package/lib/commonOpts.js +3 -3
- package/lib/configMigrate.d.ts +2 -2
- package/lib/configMigrate.js +42 -18
- package/lib/configOptions.js +3 -2
- package/lib/developerTestAccounts.d.ts +3 -3
- package/lib/developerTestAccounts.js +4 -7
- package/lib/doctor/DiagnosticInfoBuilder.d.ts +1 -1
- package/lib/doctor/DiagnosticInfoBuilder.js +9 -6
- package/lib/doctor/Doctor.js +4 -3
- package/lib/doctor/__tests__/Diagnosis.test.js +4 -3
- package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.js +17 -9
- package/lib/doctor/__tests__/Doctor.test.js +14 -0
- package/lib/errorHandlers/index.js +8 -3
- package/lib/importData.js +8 -7
- package/lib/links.js +5 -5
- package/lib/middleware/{__test__ → __tests__}/commandTargetingUtils.test.js +3 -3
- package/lib/middleware/{__test__ → __tests__}/configMiddleware.test.js +23 -22
- package/lib/middleware/{__test__ → __tests__}/gitMiddleware.test.js +9 -7
- package/lib/middleware/autoUpdateMiddleware.js +34 -23
- package/lib/middleware/commandTargetingUtils.js +3 -2
- package/lib/middleware/configMiddleware.d.ts +6 -1
- package/lib/middleware/configMiddleware.js +36 -15
- package/lib/middleware/fireAlarmMiddleware.js +4 -15
- package/lib/middleware/gitMiddleware.js +8 -4
- package/lib/oauth.d.ts +2 -2
- package/lib/oauth.js +8 -10
- package/lib/projects/__tests__/AppDevModeInterface.test.js +17 -6
- package/lib/projects/__tests__/DevServerManager.test.js +1 -0
- package/lib/projects/__tests__/LocalDevProcess.test.js +1 -0
- package/lib/projects/__tests__/components.test.js +2 -22
- package/lib/projects/__tests__/deploy.test.js +16 -13
- package/lib/projects/__tests__/uieLinting.test.js +640 -0
- package/lib/projects/add/__tests__/legacyAddComponent.test.js +1 -1
- package/lib/projects/add/__tests__/v2AddComponent.test.js +30 -4
- package/lib/projects/add/legacyAddComponent.js +1 -1
- package/lib/projects/add/v2AddComponent.js +16 -5
- package/lib/projects/components.d.ts +8 -1
- package/lib/projects/components.js +91 -8
- package/lib/projects/create/__tests__/v2.test.js +11 -0
- package/lib/projects/deploy.js +21 -8
- package/lib/projects/localDev/AppDevModeInterface.js +2 -2
- package/lib/projects/localDev/DevServerManager_DEPRECATED.js +11 -3
- package/lib/projects/localDev/LocalDevLogger.js +4 -4
- package/lib/projects/localDev/LocalDevManager_DEPRECATED.js +3 -3
- package/lib/projects/localDev/helpers/account.d.ts +10 -10
- package/lib/projects/localDev/helpers/account.js +6 -11
- package/lib/projects/localDev/helpers/process.js +5 -3
- package/lib/projects/uieLinting.d.ts +33 -0
- package/lib/projects/uieLinting.js +222 -0
- package/lib/projects/urls.js +5 -6
- package/lib/prompts/__tests__/downloadProjectPrompt.test.js +7 -5
- package/lib/prompts/accountNamePrompt.js +3 -3
- package/lib/prompts/accountsPrompt.d.ts +1 -1
- package/lib/prompts/accountsPrompt.js +6 -7
- package/lib/prompts/confirmImportDataPrompt.js +2 -2
- package/lib/prompts/downloadProjectPrompt.d.ts +1 -0
- package/lib/prompts/downloadProjectPrompt.js +5 -2
- package/lib/prompts/importDataTestAccountSelectPrompt.js +4 -5
- package/lib/prompts/personalAccessKeyPrompt.js +2 -2
- package/lib/prompts/projectDevTargetAccountPrompt.d.ts +3 -3
- package/lib/prompts/projectDevTargetAccountPrompt.js +5 -7
- package/lib/prompts/sandboxesPrompt.js +7 -8
- package/lib/prompts/setAsDefaultAccountPrompt.js +7 -6
- package/lib/sandboxSync.d.ts +2 -2
- package/lib/sandboxSync.js +3 -9
- package/lib/sandboxes.d.ts +4 -4
- package/lib/sandboxes.js +6 -11
- package/lib/serverlessLogs.js +2 -2
- package/lib/theme/__tests__/migrate.test.js +15 -0
- package/lib/ui/SpinniesManager.d.ts +5 -7
- package/lib/ui/SpinniesManager.js +9 -12
- package/lib/ui/__tests__/SpinniesManager.test.d.ts +1 -0
- package/lib/ui/__tests__/SpinniesManager.test.js +489 -0
- package/lib/ui/index.js +6 -3
- package/lib/usageTracking.js +15 -8
- package/lib/validation.js +13 -11
- package/mcp-server/tools/cms/HsCreateFunctionTool.js +4 -2
- package/mcp-server/tools/cms/HsCreateModuleTool.js +4 -2
- package/mcp-server/tools/cms/HsCreateTemplateTool.js +4 -2
- package/mcp-server/tools/cms/HsFunctionLogsTool.js +4 -2
- package/mcp-server/tools/cms/HsListFunctionsTool.js +3 -1
- package/mcp-server/tools/cms/HsListTool.js +3 -1
- package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.js +1 -0
- package/mcp-server/tools/index.js +4 -0
- package/mcp-server/tools/project/AddFeatureToProjectTool.js +4 -2
- package/mcp-server/tools/project/CreateProjectTool.js +4 -2
- package/mcp-server/tools/project/CreateTestAccountTool.js +17 -7
- package/mcp-server/tools/project/DeployProjectTool.js +3 -1
- package/mcp-server/tools/project/DocFetchTool.js +6 -4
- package/mcp-server/tools/project/DocsSearchTool.d.ts +1 -1
- package/mcp-server/tools/project/DocsSearchTool.js +10 -8
- package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.d.ts +1 -1
- package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.js +9 -7
- package/mcp-server/tools/project/GetApplicationInfoTool.js +8 -6
- package/mcp-server/tools/project/GetBuildLogsTool.d.ts +26 -0
- package/mcp-server/tools/project/GetBuildLogsTool.js +125 -0
- package/mcp-server/tools/project/GetBuildStatusTool.d.ts +26 -0
- package/mcp-server/tools/project/GetBuildStatusTool.js +166 -0
- package/mcp-server/tools/project/GetConfigValuesTool.d.ts +1 -1
- package/mcp-server/tools/project/GetConfigValuesTool.js +9 -7
- package/mcp-server/tools/project/GuidedWalkthroughTool.d.ts +1 -1
- package/mcp-server/tools/project/GuidedWalkthroughTool.js +5 -3
- package/mcp-server/tools/project/UploadProjectTools.js +3 -1
- package/mcp-server/tools/project/ValidateProjectTool.js +4 -2
- package/mcp-server/tools/project/__tests__/CreateTestAccountTool.test.js +12 -2
- package/mcp-server/tools/project/__tests__/DocFetchTool.test.js +5 -1
- package/mcp-server/tools/project/__tests__/DocsSearchTool.test.js +23 -11
- package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.js +7 -5
- package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.js +7 -5
- package/mcp-server/tools/project/__tests__/GetBuildLogsTool.test.d.ts +1 -0
- package/mcp-server/tools/project/__tests__/GetBuildLogsTool.test.js +305 -0
- package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.d.ts +1 -0
- package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.js +240 -0
- package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.js +8 -6
- package/mcp-server/utils/__tests__/content.test.js +21 -20
- package/mcp-server/utils/__tests__/feedbackTracking.test.js +34 -28
- package/mcp-server/utils/config.d.ts +1 -0
- package/mcp-server/utils/config.js +10 -0
- package/mcp-server/utils/content.d.ts +1 -1
- package/mcp-server/utils/content.js +2 -2
- package/mcp-server/utils/feedbackTracking.d.ts +1 -1
- package/mcp-server/utils/feedbackTracking.js +3 -3
- package/mcp-server/utils/toolUsageTracking.js +4 -3
- package/package.json +9 -9
- package/ui/components/BoxWithTitle.d.ts +2 -1
- package/ui/components/BoxWithTitle.js +2 -2
- package/ui/components/StatusMessageBoxes.d.ts +5 -4
- package/ui/components/StatusMessageBoxes.js +8 -8
- package/lib/middleware/__test__/notificationsMiddleware.test.js +0 -8
- package/lib/middleware/notificationsMiddleware.d.ts +0 -1
- package/lib/middleware/notificationsMiddleware.js +0 -28
- package/lib/ui/boxen.d.ts +0 -5
- package/lib/ui/boxen.js +0 -26
- package/mcp-server/utils/__tests__/cliConfig.test.js +0 -110
- package/mcp-server/utils/cliConfig.d.ts +0 -1
- package/mcp-server/utils/cliConfig.js +0 -12
- /package/{lib/middleware/__test__/commandTargetingUtils.test.d.ts → commands/project/__tests__/lint.test.d.ts} +0 -0
- /package/lib/middleware/{__test__/configMiddleware.test.d.ts → __tests__/commandTargetingUtils.test.d.ts} +0 -0
- /package/lib/middleware/{__test__/gitMiddleware.test.d.ts → __tests__/configMiddleware.test.d.ts} +0 -0
- /package/lib/middleware/{__test__/notificationsMiddleware.test.d.ts → __tests__/gitMiddleware.test.d.ts} +0 -0
- /package/lib/middleware/{__test__ → __tests__}/requestMiddleware.test.d.ts +0 -0
- /package/lib/middleware/{__test__ → __tests__}/requestMiddleware.test.js +0 -0
- /package/lib/middleware/{__test__ → __tests__}/yargsChecksMiddleware.test.d.ts +0 -0
- /package/lib/middleware/{__test__ → __tests__}/yargsChecksMiddleware.test.js +0 -0
- /package/{mcp-server/utils/__tests__/cliConfig.test.d.ts → lib/projects/__tests__/uieLinting.test.d.ts} +0 -0
package/lib/sandboxes.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { getSandboxUsageLimits } from '@hubspot/local-dev-lib/api/sandboxHubs';
|
|
2
2
|
import { fetchTypes } from '@hubspot/local-dev-lib/api/sandboxSync';
|
|
3
|
-
import {
|
|
3
|
+
import { getAllConfigAccounts } from '@hubspot/local-dev-lib/config';
|
|
4
4
|
import { getHubSpotWebsiteOrigin } from '@hubspot/local-dev-lib/urls';
|
|
5
5
|
import { HUBSPOT_ACCOUNT_TYPES } from '@hubspot/local-dev-lib/constants/config';
|
|
6
|
-
import { getAccountIdentifier } from '@hubspot/local-dev-lib/config/getAccountIdentifier';
|
|
7
6
|
import { isMissingScopeError, isSpecifiedError, } from '@hubspot/local-dev-lib/errors/index';
|
|
8
7
|
import { uiLogger } from './ui/logger.js';
|
|
9
8
|
import { lib } from '../lang/en.js';
|
|
@@ -33,9 +32,8 @@ export function getSandboxTypeAsString(accountType) {
|
|
|
33
32
|
return 'standard';
|
|
34
33
|
}
|
|
35
34
|
export function getHasSandboxesByType(parentAccountConfig, type) {
|
|
36
|
-
const
|
|
37
|
-
const
|
|
38
|
-
const accountsList = getConfigAccounts() || [];
|
|
35
|
+
const parentPortalId = parentAccountConfig.accountId;
|
|
36
|
+
const accountsList = getAllConfigAccounts();
|
|
39
37
|
for (const portal of accountsList) {
|
|
40
38
|
if ((portal.parentAccountId !== null ||
|
|
41
39
|
portal.parentAccountId !== undefined) &&
|
|
@@ -49,10 +47,8 @@ export function getHasSandboxesByType(parentAccountConfig, type) {
|
|
|
49
47
|
}
|
|
50
48
|
// Fetches available sync types for a given sandbox portal
|
|
51
49
|
export async function getAvailableSyncTypes(parentAccountConfig, config) {
|
|
52
|
-
const
|
|
53
|
-
const
|
|
54
|
-
const id = getAccountIdentifier(config);
|
|
55
|
-
const portalId = getAccountId(id);
|
|
50
|
+
const parentPortalId = parentAccountConfig.accountId;
|
|
51
|
+
const portalId = config.accountId;
|
|
56
52
|
if (!parentPortalId || !portalId) {
|
|
57
53
|
throw new Error(lib.sandbox.sync.failure.syncTypeFetch);
|
|
58
54
|
}
|
|
@@ -63,8 +59,7 @@ export async function getAvailableSyncTypes(parentAccountConfig, config) {
|
|
|
63
59
|
return syncTypes.map(t => ({ type: t.name }));
|
|
64
60
|
}
|
|
65
61
|
export async function validateSandboxUsageLimits(accountConfig, sandboxType, env) {
|
|
66
|
-
const
|
|
67
|
-
const accountId = getAccountId(id);
|
|
62
|
+
const accountId = accountConfig.accountId;
|
|
68
63
|
if (!accountId) {
|
|
69
64
|
throw new Error(lib.sandbox.create.failure.usageLimitsFetch);
|
|
70
65
|
}
|
package/lib/serverlessLogs.js
CHANGED
|
@@ -3,7 +3,7 @@ import chalk from 'chalk';
|
|
|
3
3
|
import { uiLogger } from './ui/logger.js';
|
|
4
4
|
import { isHubSpotHttpError, isMissingScopeError, } from '@hubspot/local-dev-lib/errors/index';
|
|
5
5
|
import { SCOPE_GROUPS, PERSONAL_ACCESS_KEY_AUTH_METHOD, } from '@hubspot/local-dev-lib/constants/auth';
|
|
6
|
-
import {
|
|
6
|
+
import { getConfigAccountById } from '@hubspot/local-dev-lib/config';
|
|
7
7
|
import { fetchScopeData } from '@hubspot/local-dev-lib/api/localDevAuth';
|
|
8
8
|
import { outputLogs } from './ui/serverlessFunctionLogs.js';
|
|
9
9
|
import { logError, ApiErrorContext } from './errorHandlers/index.js';
|
|
@@ -33,7 +33,7 @@ function handleUserInput() {
|
|
|
33
33
|
});
|
|
34
34
|
}
|
|
35
35
|
async function verifyAccessKeyAndUserAccess(accountId, scopeGroup) {
|
|
36
|
-
const accountConfig =
|
|
36
|
+
const accountConfig = getConfigAccountById(accountId);
|
|
37
37
|
if (!accountConfig) {
|
|
38
38
|
return;
|
|
39
39
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { getProjectThemeDetails, migrateThemes, } from '@hubspot/project-parsing-lib';
|
|
2
|
+
import { getConfigAccountById } from '@hubspot/local-dev-lib/config';
|
|
2
3
|
import { confirmPrompt } from '../../prompts/promptUtils.js';
|
|
3
4
|
import { writeProjectConfig, } from '../../projects/config.js';
|
|
4
5
|
import { ensureProjectExists } from '../../projects/ensureProjectExists.js';
|
|
@@ -13,6 +14,7 @@ vi.mock('../../projects/config');
|
|
|
13
14
|
vi.mock('../../projects/ensureProjectExists');
|
|
14
15
|
vi.mock('../../projects/platformVersion');
|
|
15
16
|
vi.mock('../../app/migrate');
|
|
17
|
+
vi.mock('@hubspot/local-dev-lib/config');
|
|
16
18
|
const mockedGetProjectThemeDetails = getProjectThemeDetails;
|
|
17
19
|
const mockedMigrateThemes = migrateThemes;
|
|
18
20
|
const mockedConfirmPrompt = confirmPrompt;
|
|
@@ -20,6 +22,7 @@ const mockedWriteProjectConfig = writeProjectConfig;
|
|
|
20
22
|
const mockedEnsureProjectExists = ensureProjectExists;
|
|
21
23
|
const mockedUseV2Api = isV2Project;
|
|
22
24
|
const mockedFetchMigrationApps = fetchMigrationApps;
|
|
25
|
+
const mockedGetConfigAccountById = getConfigAccountById;
|
|
23
26
|
const ACCOUNT_ID = 123;
|
|
24
27
|
const PROJECT_NAME = 'Test Project';
|
|
25
28
|
const PLATFORM_VERSION = '2025.2';
|
|
@@ -31,6 +34,18 @@ const createLoadedProjectConfig = (name) => ({
|
|
|
31
34
|
describe('lib/theme/migrate', () => {
|
|
32
35
|
beforeEach(() => {
|
|
33
36
|
mockedUseV2Api.mockReturnValue(false);
|
|
37
|
+
// Mock account config for the test account ID
|
|
38
|
+
mockedGetConfigAccountById.mockReturnValue({
|
|
39
|
+
accountId: ACCOUNT_ID,
|
|
40
|
+
name: 'Test Account',
|
|
41
|
+
authType: 'personalaccesskey',
|
|
42
|
+
auth: {
|
|
43
|
+
tokenInfo: {
|
|
44
|
+
accessToken: 'test-token',
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
env: 'prod',
|
|
48
|
+
});
|
|
34
49
|
});
|
|
35
50
|
describe('getHasMigratableThemes', () => {
|
|
36
51
|
it('should return false when no projectConfig is provided', async () => {
|
|
@@ -17,13 +17,11 @@ declare class SpinniesManager {
|
|
|
17
17
|
private resetState;
|
|
18
18
|
setDisableOutput(disableOutput: boolean): void;
|
|
19
19
|
pick(name: string): SpinnerState | undefined;
|
|
20
|
-
add(name: string, options?: Partial<SpinnerState>):
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
fail(name: string, options?: Partial<SpinnerState>): SpinnerState;
|
|
26
|
-
remove(name: string): SpinnerState;
|
|
20
|
+
add(name: string, options?: Partial<SpinnerState>): void;
|
|
21
|
+
update(name: string, options?: Partial<SpinnerState>): void;
|
|
22
|
+
succeed(name: string, options?: Partial<SpinnerState>): void;
|
|
23
|
+
fail(name: string, options?: Partial<SpinnerState>): void;
|
|
24
|
+
remove(name: string): void;
|
|
27
25
|
stopAll(newStatus?: (typeof VALID_STATUSES)[number]): {
|
|
28
26
|
[key: string]: SpinnerState;
|
|
29
27
|
};
|
|
@@ -10,7 +10,8 @@ The above copyright notice and this permission notice shall be included in all c
|
|
|
10
10
|
import readline from 'readline';
|
|
11
11
|
import chalk from 'chalk';
|
|
12
12
|
import cliCursor from 'cli-cursor';
|
|
13
|
-
import { breakText, cleanStream, colorOptions, getLinesLength, purgeSpinnerOptions, purgeSpinnersOptions, SPINNERS, terminalSupportsUnicode, writeStream,
|
|
13
|
+
import { breakText, cleanStream, colorOptions, getLinesLength, prefixOptions, purgeSpinnerOptions, purgeSpinnersOptions, SPINNERS, terminalSupportsUnicode, writeStream, } from './spinniesUtils.js';
|
|
14
|
+
import { uiLogger } from './logger.js';
|
|
14
15
|
function safeColor(text, color) {
|
|
15
16
|
const chalkFn = chalk[color];
|
|
16
17
|
if (typeof chalkFn === 'function') {
|
|
@@ -74,40 +75,34 @@ class SpinniesManager {
|
|
|
74
75
|
if (!options.text) {
|
|
75
76
|
options.text = resolvedName;
|
|
76
77
|
}
|
|
77
|
-
|
|
78
|
+
this.spinners[resolvedName] = {
|
|
78
79
|
...colorOptions(this.options),
|
|
79
80
|
succeedPrefix: this.options.succeedPrefix,
|
|
80
81
|
failPrefix: this.options.failPrefix,
|
|
81
82
|
status: 'spinning',
|
|
82
83
|
...purgeSpinnerOptions(options),
|
|
83
84
|
};
|
|
84
|
-
this.spinners[resolvedName] = spinnerProperties;
|
|
85
85
|
this.updateSpinnerState();
|
|
86
|
-
return { name: resolvedName, ...spinnerProperties };
|
|
87
86
|
}
|
|
88
87
|
update(name, options = {}) {
|
|
89
88
|
const { status } = options;
|
|
90
89
|
this.setSpinnerProperties(name, options, status);
|
|
91
90
|
this.updateSpinnerState();
|
|
92
|
-
return this.spinners[name];
|
|
93
91
|
}
|
|
94
92
|
succeed(name, options = {}) {
|
|
95
93
|
this.setSpinnerProperties(name, options, 'succeed');
|
|
96
94
|
this.updateSpinnerState();
|
|
97
|
-
return this.spinners[name];
|
|
98
95
|
}
|
|
99
96
|
fail(name, options = {}) {
|
|
100
97
|
this.setSpinnerProperties(name, options, 'fail');
|
|
101
98
|
this.updateSpinnerState();
|
|
102
|
-
return this.spinners[name];
|
|
103
99
|
}
|
|
104
100
|
remove(name) {
|
|
105
101
|
if (typeof name !== 'string') {
|
|
106
|
-
|
|
102
|
+
uiLogger.debug('A spinner reference name must be specified');
|
|
103
|
+
return;
|
|
107
104
|
}
|
|
108
|
-
const spinner = this.spinners[name];
|
|
109
105
|
delete this.spinners[name];
|
|
110
|
-
return spinner;
|
|
111
106
|
}
|
|
112
107
|
stopAll(newStatus = 'stopped') {
|
|
113
108
|
Object.keys(this.spinners).forEach(name => {
|
|
@@ -136,10 +131,12 @@ class SpinniesManager {
|
|
|
136
131
|
}
|
|
137
132
|
setSpinnerProperties(name, options, status) {
|
|
138
133
|
if (typeof name !== 'string') {
|
|
139
|
-
|
|
134
|
+
uiLogger.debug('A spinner reference name must be specified');
|
|
135
|
+
return;
|
|
140
136
|
}
|
|
141
137
|
if (!this.spinners[name]) {
|
|
142
|
-
|
|
138
|
+
uiLogger.debug(`No spinner initialized with name ${name}`);
|
|
139
|
+
return;
|
|
143
140
|
}
|
|
144
141
|
options = purgeSpinnerOptions(options);
|
|
145
142
|
status = status || 'spinning';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|