The main use case for the generated source maps is to give errors a meaningful context in terms of the original source that the user wrote. Related changes that are included in this commit: * renamed virtual folders used for jit: * ng://<module type>/module.ngfactory.js * ng://<module type>/<comp type>.ngfactory.js * ng://<module type>/<comp type>.html (for inline templates) * error logging: * all errors that happen in templates are logged from the place of the nearest element. * instead of logging error messages and stacks separately, we log the actual error. This is needed so that browsers apply source maps to the stack correctly. * error type and error is logged as one log entry. Note that long-stack-trace zone has a bug that disables source maps for stack traces, see https://github.com/angular/zone.js/issues/661. BREAKING CHANGE: - DebugNode.source no more returns the source location of a node. Closes 14013
37 lines
1.0 KiB
TypeScript
37 lines
1.0 KiB
TypeScript
/**
|
|
* @license
|
|
* Copyright Google Inc. All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by an MIT-style license that can be
|
|
* found in the LICENSE file at https://angular.io/license
|
|
*/
|
|
|
|
import {DebugContext} from './view';
|
|
|
|
export const ERROR_TYPE = 'ngType';
|
|
export const ERROR_COMPONENT_TYPE = 'ngComponentType';
|
|
export const ERROR_DEBUG_CONTEXT = 'ngDebugContext';
|
|
export const ERROR_ORIGINAL_ERROR = 'ngOriginalError';
|
|
export const ERROR_LOGGER = 'ngErrorLogger';
|
|
|
|
|
|
export function getType(error: Error): Function {
|
|
return (error as any)[ERROR_TYPE];
|
|
}
|
|
|
|
export function getDebugContext(error: Error): DebugContext {
|
|
return (error as any)[ERROR_DEBUG_CONTEXT];
|
|
}
|
|
|
|
export function getOriginalError(error: Error): Error {
|
|
return (error as any)[ERROR_ORIGINAL_ERROR];
|
|
}
|
|
|
|
export function getErrorLogger(error: Error): (console: Console, ...values: any[]) => void {
|
|
return (error as any)[ERROR_LOGGER] || defaultErrorLogger;
|
|
}
|
|
|
|
|
|
function defaultErrorLogger(console: Console, ...values: any[]) {
|
|
(<any>console.error)(...values);
|
|
} |