Angular Build Architect builder for ng-packagr library packaging (deprecated)
89
{
"context": "This criteria evaluates how well an engineer uses @angular-devkit/architect and rxjs packages to implement proper error handling patterns in an Angular Architect builder. The focus is on using BuilderOutput return format, Observable error operators, and Angular Architect conventions for non-throwing error propagation.",
"type": "weighted_checklist",
"checklist": [
{
"name": "BuilderOutput return type",
"description": "Uses the BuilderOutput interface from @angular-devkit/architect with proper success boolean field and optional error string field in return values",
"max_score": 15
},
{
"name": "Observable return type",
"description": "Returns Observable<BuilderOutput> from rxjs as the function return type, properly integrating with Angular Architect's reactive build system",
"max_score": 15
},
{
"name": "catchError operator",
"description": "Uses rxjs catchError operator to handle errors and convert them into failed BuilderOutput objects without throwing exceptions",
"max_score": 25
},
{
"name": "of operator",
"description": "Uses rxjs of() function to create Observable instances for error return values within catchError handlers",
"max_score": 10
},
{
"name": "Missing module detection",
"description": "Checks for MODULE_NOT_FOUND or similar error codes when dynamically importing external packages to detect missing dependencies",
"max_score": 20
},
{
"name": "Error message extraction",
"description": "Extracts the error message string from caught error objects (e.g., err.message or similar) to include in the BuilderOutput error field",
"max_score": 10
},
{
"name": "Non-throwing error handling",
"description": "Implements error handling that returns failed build results rather than throwing exceptions, ensuring all error paths return Observable<BuilderOutput>",
"max_score": 5
}
]
}Install with Tessl CLI
npx tessl i tessl/npm-angular-devkit--build-ng-packagrdocs
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10