Skip to content

Commit 74846bd

Browse files
authored
top-level error handling (#865)
1 parent c885ff2 commit 74846bd

22 files changed

+304
-208
lines changed

.changeset/good-seals-fix.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@aws-amplify/backend-cli': patch
3+
---
4+
5+
gracefully handle errors that occur during a process event handler

packages/cli/src/amplify.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
#!/usr/bin/env node
22

33
import { hideBin } from 'yargs/helpers';
4-
import * as process from 'process';
54
import { createMainParser } from './main_parser_factory.js';
5+
import { attachUnhandledExceptionListeners } from './error_handler.js';
6+
7+
attachUnhandledExceptionListeners();
68

79
const parser = createMainParser();
810

packages/cli/src/command_failure_handler.test.ts

Lines changed: 0 additions & 70 deletions
This file was deleted.

packages/cli/src/command_failure_handler.ts

Lines changed: 0 additions & 33 deletions
This file was deleted.

packages/cli/src/commands/configure/configure_command.ts

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { Argv, CommandModule } from 'yargs';
2-
import { handleCommandFailure } from '../../command_failure_handler.js';
32

43
/**
54
* Root command to configure Amplify.
@@ -35,13 +34,6 @@ export class ConfigureCommand implements CommandModule<object> {
3534
* @inheritDoc
3635
*/
3736
builder = (yargs: Argv): Argv => {
38-
return yargs
39-
.version(false)
40-
.command(this.configureSubCommands)
41-
.help()
42-
.fail((msg, err) => {
43-
handleCommandFailure(msg, err, yargs);
44-
yargs.exit(1, err);
45-
});
37+
return yargs.version(false).command(this.configureSubCommands).help();
4638
};
4739
}

packages/cli/src/commands/configure/telemetry/configure_telemetry_command.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import {
44
USAGE_DATA_TRACKING_ENABLED,
55
} from '@aws-amplify/platform-core';
66
import { Argv, CommandModule } from 'yargs';
7-
import { handleCommandFailure } from '../../../command_failure_handler.js';
87
/**
98
* Command to configure AWS Amplify profile.
109
*/
@@ -54,10 +53,6 @@ export class ConfigureTelemetryCommand implements CommandModule<object> {
5453
})
5554
.demandCommand()
5655
.strictCommands()
57-
.recommendCommands()
58-
.fail((msg, err) => {
59-
handleCommandFailure(msg, err, yargs);
60-
yargs.exit(1, err);
61-
});
56+
.recommendCommands();
6257
};
6358
}

packages/cli/src/commands/generate/config/generate_config_command.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import { ClientConfigFormat } from '@aws-amplify/client-config';
33
import { BackendIdentifierResolver } from '../../../backend-identifier/backend_identifier_resolver.js';
44
import { ClientConfigGeneratorAdapter } from '../../../client-config/client_config_generator_adapter.js';
55
import { ArgumentsKebabCase } from '../../../kebab_case.js';
6-
import { handleCommandFailure } from '../../../command_failure_handler.js';
76

87
export type GenerateConfigCommandOptions =
98
ArgumentsKebabCase<GenerateConfigCommandOptionsCamelCase>;
@@ -100,10 +99,6 @@ export class GenerateConfigCommand
10099
'A path to directory where config is written. If not provided defaults to current process working directory.',
101100
type: 'string',
102101
array: false,
103-
})
104-
.fail((msg, err) => {
105-
handleCommandFailure(msg, err, yargs);
106-
yargs.exit(1, err);
107102
});
108103
};
109104
}

packages/cli/src/commands/generate/forms/generate_forms_command.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import { BackendIdentifierResolver } from '../../../backend-identifier/backend_i
66
import { DEFAULT_UI_PATH } from '../../../form-generation/default_form_generation_output_paths.js';
77
import { FormGenerationHandler } from '../../../form-generation/form_generation_handler.js';
88
import { ArgumentsKebabCase } from '../../../kebab_case.js';
9-
import { handleCommandFailure } from '../../../command_failure_handler.js';
109

1110
export type GenerateFormsCommandOptions =
1211
ArgumentsKebabCase<GenerateFormsCommandOptionsCamelCase>;
@@ -128,10 +127,6 @@ export class GenerateFormsCommand
128127
type: 'string',
129128
array: true,
130129
group: 'Form Generation',
131-
})
132-
.fail((msg, err) => {
133-
handleCommandFailure(msg, err, yargs);
134-
yargs.exit(1, err);
135130
});
136131
};
137132
}

packages/cli/src/commands/generate/generate_command.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import { Argv, CommandModule } from 'yargs';
22
import { GenerateConfigCommand } from './config/generate_config_command.js';
33
import { GenerateFormsCommand } from './forms/generate_forms_command.js';
44
import { GenerateGraphqlClientCodeCommand } from './graphql-client-code/generate_graphql_client_code_command.js';
5-
import { handleCommandFailure } from '../../command_failure_handler.js';
65
import { CommandMiddleware } from '../../command_middleware.js';
76

87
/**
@@ -61,10 +60,6 @@ export class GenerateCommand implements CommandModule {
6160
array: false,
6261
})
6362
.middleware([this.commandMiddleware.ensureAwsCredentialAndRegion])
64-
.fail((msg, err) => {
65-
handleCommandFailure(msg, err, yargs);
66-
yargs.exit(1, err);
67-
})
6863
);
6964
};
7065
}

packages/cli/src/commands/generate/graphql-client-code/generate_graphql_client_code_command.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ import {
1515
GenerateModelsOptions,
1616
} from '@aws-amplify/model-generator';
1717
import { ArgumentsKebabCase } from '../../../kebab_case.js';
18-
import { handleCommandFailure } from '../../../command_failure_handler.js';
1918

2019
type GenerateOptions =
2120
| GenerateGraphqlCodegenOptions
@@ -321,10 +320,6 @@ export class GenerateGraphqlClientCodeCommand
321320
array: false,
322321
hidden: true,
323322
})
324-
.showHidden('all')
325-
.fail((msg, err) => {
326-
handleCommandFailure(msg, err, yargs);
327-
yargs.exit(1, err);
328-
});
323+
.showHidden('all');
329324
};
330325
}

0 commit comments

Comments
 (0)