29 lines
936 B
TypeScript
29 lines
936 B
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
|
||
|
*/
|
||
|
|
||
|
export function normalizeDebugBindingName(name: string) {
|
||
|
// Attribute names with `$` (eg `x-y$`) are valid per spec, but unsupported by some browsers
|
||
|
name = camelCaseToDashCase(name.replace(/[$@]/g, '_'));
|
||
|
return `ng-reflect-${name}`;
|
||
|
}
|
||
|
|
||
|
const CAMEL_CASE_REGEXP = /([A-Z])/g;
|
||
|
|
||
|
function camelCaseToDashCase(input: string): string {
|
||
|
return input.replace(CAMEL_CASE_REGEXP, (...m: any[]) => '-' + m[1].toLowerCase());
|
||
|
}
|
||
|
|
||
|
export function normalizeDebugBindingValue(value: any): string {
|
||
|
try {
|
||
|
// Limit the size of the value as otherwise the DOM just gets polluted.
|
||
|
return value != null ? value.toString().slice(0, 30) : value;
|
||
|
} catch (e) {
|
||
|
return '[ERROR] Exception while trying to serialize the value';
|
||
|
}
|
||
|
}
|