File tree Expand file tree Collapse file tree 5 files changed +10
-37
lines changed Expand file tree Collapse file tree 5 files changed +10
-37
lines changed Original file line number Diff line number Diff line change 1- import * as lodash from 'lodash' ;
21import * as util from 'util' ;
32
43import { ValidationError } from './definitions' ;
@@ -10,25 +9,11 @@ export const ERROR_IPC_UNKNOWN_PROCEDURE = 'ERR_ICF_IPC_UNKNOWN_PROCEDURE';
109
1110export abstract class BaseError extends Error {
1211 abstract readonly name : string ;
13- message : string ;
14- stack : string ;
1512 code ?: string ;
16- error ?: Error ;
1713 exitCode ?: number ;
1814
19- constructor ( message : string ) {
20- super ( message ) ;
21- this . message = message ;
22- this . stack = ( new Error ( ) ) . stack || '' ;
23- }
24-
2515 toString ( ) : string {
26- const repr = lodash . pick ( this , lodash . pull ( lodash . keys ( this ) , 'error' ) ) ;
27-
28- return (
29- `${ this . name } : ${ this . message } ${ util . inspect ( repr , { breakLength : Infinity } ) } ${ this . stack } ` +
30- `${ this . error ? `\nWrapped: ${ this . error . stack ? this . error . stack : this . error } ` : '' } `
31- ) ;
16+ return util . inspect ( this ) ;
3217 }
3318
3419 inspect ( ) : string {
Original file line number Diff line number Diff line change @@ -3,6 +3,7 @@ import { readPackageJsonFile } from '@ionic/cli-framework/utils/node';
33import { processExit } from '@ionic/utils-process' ;
44import * as Debug from 'debug' ;
55import * as path from 'path' ;
6+ import * as util from 'util' ;
67
78import { IonicNamespace } from './commands' ;
89import { IPCMessage , IonicContext , IonicEnvironment } from './definitions' ;
@@ -171,11 +172,7 @@ export async function run(pargv: string[]): Promise<void> {
171172 } else if ( err instanceof BaseError ) {
172173 ienv . log . error ( err . message ) ;
173174 } else {
174- ienv . log . msg ( failure ( String ( err . stack ? err . stack : err ) ) ) ;
175-
176- if ( err . stack ) {
177- debug ( failure ( String ( err . stack ) ) ) ;
178- }
175+ ienv . log . rawmsg ( failure ( util . inspect ( err ) ) ) ;
179176 }
180177 }
181178}
Original file line number Diff line number Diff line change @@ -55,9 +55,9 @@ export class ProjectDetailsError extends BaseException {
5555 /**
5656 * The underlying error that caused this error.
5757 */
58- readonly error ?: Error
58+ cause ?: Error
5959 ) {
60- super ( msg ) ;
60+ super ( msg , { cause } ) ;
6161 }
6262}
6363
@@ -193,7 +193,7 @@ export class ProjectDetails {
193193 if ( e1 ) {
194194 log . error (
195195 `Error while loading config (project config: ${ strong ( prettyPath ( result . configPath ) ) } )\n` +
196- `${ e1 . error ? `${ e1 . message } : ${ failure ( e1 . error . toString ( ) ) } ` : failure ( e1 . message ) } . ` +
196+ `${ e1 . cause ? `${ e1 . message } : ${ failure ( e1 . cause . toString ( ) ) } ` : failure ( e1 . message ) } . ` +
197197 `Run ${ input ( 'ionic init' ) } to re-initialize your Ionic project. Without a valid project config, the CLI will not have project context.`
198198 ) ;
199199
Original file line number Diff line number Diff line change @@ -35,20 +35,11 @@ export function convertPATH(path = process.env.PATH || ''): string {
3535
3636export class SubprocessError extends Error {
3737 readonly name = 'SubprocessError' ;
38- message : string ;
39- stack : string ;
4038
4139 code ?: typeof ERROR_COMMAND_NOT_FOUND | typeof ERROR_NON_ZERO_EXIT | typeof ERROR_SIGNAL_EXIT ;
42- error ?: Error ;
4340 output ?: string ;
4441 signal ?: string ;
4542 exitCode ?: number ;
46-
47- constructor ( message : string ) {
48- super ( message ) ;
49- this . message = message ;
50- this . stack = ( new Error ( ) ) . stack || '' ;
51- }
5243}
5344
5445export interface SubprocessOptions extends SpawnOptions { }
@@ -172,13 +163,12 @@ export class Subprocess {
172163 let err : SubprocessError ;
173164
174165 if ( error . code === 'ENOENT' ) {
175- err = new SubprocessError ( 'Command not found.' ) ;
166+ err = new SubprocessError ( 'Command not found.' , { cause : error } ) ;
176167 err . code = ERROR_COMMAND_NOT_FOUND ;
177168 } else {
178- err = new SubprocessError ( 'Command error.' ) ;
169+ err = new SubprocessError ( 'Command error.' , { cause : error } ) ;
179170 }
180171
181- err . error = error ;
182172 reject ( err ) ;
183173 } ) ;
184174
Original file line number Diff line number Diff line change 1212 "target" : " ES2021" ,
1313 "types" : [],
1414 "lib" : [
15- " ES2021"
15+ " ES2021" ,
16+ " ES2022.Error"
1617 ]
1718 }
1819}
You can’t perform that action at this time.
0 commit comments