@enonic/js-utils
Version:
Enonic XP JavaScript Utils
47 lines (41 loc) • 1.24 kB
JavaScript
// value/isStringLiteral.ts
var isStringLiteral = (value) => typeof value === "string";
// value/isStringObject.ts
var isStringObject = (value) => value instanceof String;
// value/isString.ts
var isString = (value) => isStringLiteral(value) || isStringObject(value);
// string/endsWith.ts
function endsWith(string, suffix) {
return string.indexOf(suffix, string.length - suffix.length) !== -1;
}
// string/startsWith.ts
function startsWith(string, searchString, position = 0) {
const pos = position > 0 ? position | 0 : 0;
return string.substring(pos, pos + searchString.length) === searchString;
}
// string/cleanAnyDoubleQuoteWrap.ts
function cleanAnyDoubleQuoteWrap(val, label = "") {
if (isString(val)) {
if (startsWith(val, '"')) {
if (!endsWith(val, '"')) {
throw new Error(
`Inconsistent double-quote-wrapping on '${label}' value: ${JSON.stringify(
val
)}`
);
}
return val.substring(1, val.length - 1);
}
if (endsWith(val, '"')) {
throw new Error(
`Inconsistent double-quote-wrapping on '${label}' value: ${JSON.stringify(
val
)}`
);
}
}
return val;
}
export {
cleanAnyDoubleQuoteWrap
};