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.
27 lines (24 loc) • 804 B
text/typescript
import { ApiClient } from 'scrivito_sdk/client';
import { LazyAsyncDataAttributeDefinitions } from 'scrivito_sdk/data_integration';
import {
DataClassSchema,
LazyAsyncDataClassTitle,
} from 'scrivito_sdk/data_integration/data_class_schema';
import { fetchSchema } from 'scrivito_sdk/data_integration/fetch_schema';
export function createRestApiSchema(
{
attributes,
title,
}: {
attributes?: LazyAsyncDataAttributeDefinitions;
title?: LazyAsyncDataClassTitle;
},
apiClient: ApiClient
): DataClassSchema {
const fetchAttributes = async () => (await fetchSchema(apiClient)).attributes;
const fetchTitle = async () => (await fetchSchema(apiClient)).title;
return {
attributes: attributes || fetchAttributes,
title: attributes ? title : title || fetchTitle,
};
}