Skip to content

CLI always discards the stack on compilation errors #4

Description

@rangelfinal

As ts-framework-cli wraps module resolution in a try/catch with a throw new BaseError, the error stack is discarded in favor of a useless stack that always points to the CLI internals on compilation errors. Errors should always be rethrown, throw new Error inside a catch is an anti-pattern.

} catch (exception) {
console.error(exception);
throw new BaseError(`Could not load Server instance: "${exception.message}"`);
}

Error example:

error: Could not load Server instance: "⨯ Unable to compile TypeScript:
api/services/CDTProviderService.ts(43,24): error TS2345: Argument of type 'CDTPhoneCreditFeature' is not assignable to parameter of type 'BaseCustodyFeature'.
  Property 'type' is missing in type 'CDTPhoneCreditFeature' but required in type 'BaseCustodyFeature'.
" (stackId: 8f953bb1-a3db-4ce7-b9f4-9c707cec500c) {
  "stack": "BaseError: Could not load Server instance: \"⨯ Unable to compile TypeScript:\napi/services/CDTProviderService.ts(43,24): error TS2345: Argument of type 'CDTPhoneCreditFeature' is not assignable to parameter of type 'BaseCustodyFeature'.\n  Property 'type' is missing in type 'CDTPhoneCreditFeature' but required in type 'BaseCustodyFeature'.\n\" (stackId: 8f953bb1-a3db-4ce7-b9f4-9c707cec500c)\n    at ListenCommand.<anonymous> (/home/rangel/Workspace/nxtep/bitcapital/bitcapital-cards/node_modules/ts-framework-cli/lib/BaseCommand.ts:111:13)\n    at Generator.next (<anonymous>)\n    at fulfilled (/home/rangel/Workspace/nxtep/bitcapital/bitcapital-cards/node_modules/ts-framework-cli/dist/BaseCommand.js:4:58)\n    at process._tickCallback (internal/process/next_tick.js:68:7)\n    at Function.Module.runMain (internal/modules/cjs/loader.js:745:11)\n    at startup (internal/bootstrap/node.js:266:19)\n    at bootstrapNodeJSCore (internal/bootstrap/node.js:596:3)",
  "stackId": "8f953bb1-a3db-4ce7-b9f4-9c707cec500c",
  "originalMessage": "Could not load Server instance: \"⨯ Unable to compile TypeScript:\napi/services/CDTProviderService.ts(43,24): error TS2345: Argument of type 'CDTPhoneCreditFeature' is not assignable to parameter of type 'BaseCustodyFeature'.\n  Property 'type' is missing in type 'CDTPhoneCreditFeature' but required in type 'BaseCustodyFeature'.\n\"",
  "name": "BaseError",
  "details": {}
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinggood first issueGood for newcomers

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions