2015-09-11 13:37:05 -07:00
|
|
|
import {StringWrapper, isBlank} from 'angular2/src/core/facade/lang';
|
2015-08-25 15:36:02 -07:00
|
|
|
|
2015-08-27 16:29:02 -07:00
|
|
|
var CAMEL_CASE_REGEXP = /([A-Z])/g;
|
2015-08-25 15:36:02 -07:00
|
|
|
var DASH_CASE_REGEXP = /-([a-z])/g;
|
2015-09-11 13:37:05 -07:00
|
|
|
var SINGLE_QUOTE_ESCAPE_STRING_RE = /'|\\|\n/g;
|
|
|
|
var DOUBLE_QUOTE_ESCAPE_STRING_RE = /"|\\|\n/g;
|
2015-08-27 16:29:02 -07:00
|
|
|
|
|
|
|
export function camelCaseToDashCase(input: string): string {
|
|
|
|
return StringWrapper.replaceAllMapped(input, CAMEL_CASE_REGEXP,
|
|
|
|
(m) => { return '-' + m[1].toLowerCase(); });
|
|
|
|
}
|
|
|
|
|
2015-08-25 15:36:02 -07:00
|
|
|
export function dashCaseToCamelCase(input: string): string {
|
|
|
|
return StringWrapper.replaceAllMapped(input, DASH_CASE_REGEXP,
|
|
|
|
(m) => { return m[1].toUpperCase(); });
|
|
|
|
}
|
2015-09-11 13:37:05 -07:00
|
|
|
|
|
|
|
export function escapeSingleQuoteString(input: string): string {
|
|
|
|
if (isBlank(input)) {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
return `'${escapeString(input, SINGLE_QUOTE_ESCAPE_STRING_RE)}'`;
|
|
|
|
}
|
|
|
|
|
|
|
|
export function escapeDoubleQuoteString(input: string): string {
|
|
|
|
if (isBlank(input)) {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
return `"${escapeString(input, DOUBLE_QUOTE_ESCAPE_STRING_RE)}"`;
|
|
|
|
}
|
|
|
|
|
|
|
|
function escapeString(input: string, re: RegExp): string {
|
|
|
|
return StringWrapper.replaceAllMapped(input, re, (match) => {
|
|
|
|
if (match[0] == '\n') {
|
|
|
|
return '\\n';
|
|
|
|
} else {
|
|
|
|
return `\\${match[0]}`;
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|