Entities used by the RESTful API for managing themes
parent
3551dd4b6d
commit
589ca1a2c6
|
|
@ -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