scrivito
Version:
Scrivito is a professional, yet easy to use SaaS Enterprise Content Management Service, built for digital agencies and medium to large businesses. It is completely maintenance-free, cost-effective, and has unprecedented performance and security.
26 lines (19 loc) • 690 B
text/typescript
import { ArgumentError } from 'scrivito_sdk/common';
import { DataClass, DataItem } from 'scrivito_sdk/data_integration';
import { ObjClass, Schema, WidgetClass } from 'scrivito_sdk/realm';
export function getClassName(
subject: string | ObjClass | WidgetClass | DataClass | DataItem
): string {
if (typeof subject === 'string') return subject;
if (subject instanceof DataClass) {
return subject.name();
}
if (subject instanceof DataItem) {
return subject.dataClassName();
}
const className = Schema.forClass(subject)?.name();
if (typeof className !== 'string') {
throw new ArgumentError('Invalid class name, class or instance');
}
return className;
}