parent
600a010ee9
commit
99a189534b
|
|
@ -0,0 +1,67 @@
|
|||
/**
|
||||
* Entities used by the RESTful API for managing themes
|
||||
* @packageDocumentation
|
||||
*/
|
||||
|
||||
import {
|
||||
LocalizedString,
|
||||
assertProperties,
|
||||
} from "@libreccm/ccm-apiclient-commons";
|
||||
|
||||
export interface ThemeInfo {
|
||||
themeManifest: ThemeManifest;
|
||||
version: ThemeVersion;
|
||||
provider: string;
|
||||
}
|
||||
|
||||
export interface ThemeManifest {
|
||||
name: string;
|
||||
type: string;
|
||||
masterTheme: string;
|
||||
title: LocalizedString;
|
||||
description: LocalizedString;
|
||||
defaultTemplate: string;
|
||||
}
|
||||
|
||||
export enum ThemeVersion {
|
||||
DRAFT,
|
||||
LIVE,
|
||||
}
|
||||
|
||||
export function buildThemeInfoFromRecord(
|
||||
record: Record<string, unknown>
|
||||
): ThemeInfo {
|
||||
assertProperties(record, ["themeManifest", "version", "provider"]);
|
||||
|
||||
const themeManifest: ThemeManifest = buildThemeManifestFromRecord(
|
||||
record.themeManifest as Record<string, unknown>
|
||||
);
|
||||
|
||||
return {
|
||||
themeManifest,
|
||||
version: record.version as ThemeVersion,
|
||||
provider: record.provider as string,
|
||||
};
|
||||
}
|
||||
|
||||
export function buildThemeManifestFromRecord(
|
||||
record: Record<string, unknown>
|
||||
): ThemeManifest {
|
||||
assertProperties(record, [
|
||||
"name",
|
||||
"type",
|
||||
"masterTheme",
|
||||
"title",
|
||||
"description",
|
||||
"defaultTemplate",
|
||||
]);
|
||||
|
||||
return {
|
||||
name: record.name as string,
|
||||
type: record.type as string,
|
||||
masterTheme: record.masterTheme as string,
|
||||
title: record.title as LocalizedString,
|
||||
description: record.description as LocalizedString,
|
||||
defaultTemplate: record.defaultTemplate as string,
|
||||
};
|
||||
}
|
||||
Loading…
Reference in New Issue