@vue-interface/utils
Version:
A utility package for Vue Interface.
23 lines (17 loc) • 629 B
JavaScript
import isBoolean from "./isBoolean";
import isObject from "./isObject";
export default function prefix(subject, prefix, delimeter = '-') {
const prefixer = (value, key) => {
const string = (key || value).toString().replace(new RegExp(`^${prefix}${delimeter}?`), '');
return [prefix, string].filter(value => !!value).join(delimeter);
};
if(isBoolean(subject)) {
return subject;
}
if(isObject(subject)) {
return Object.fromEntries(
Object.entries(subject).map(([key, value]) => [prefixer(key), value])
);
}
return subject && prefixer(subject);
}